首页 文章

Jmeter - POST API不起作用

提问于
浏览
2

我是Jmeter的新手,并一直在努力让它来测试我的POST API . 它适用于GET API调用,我通过参数选项卡传递参数 .

详细信息:

服务器名称:localhost端口:8080路径/ registerMobileUsingCode

在请求正文中,我发送以下信息:

{“clientName”:“DemoOrg”,“code”:“9880007615”,“languageId”:“1”}

我的Jmeter设置如下所示:

1

我的HTTP请求标头看起来像这样:

Request Header details

API正在 生产环境 中,并且可以与邮递员一起使用 .

我只是无法让它通过JMeter工作 . 很明显,我做错了什么但是无法弄清楚尽管花了相当多的时间用谷歌搜索解决方案 .

任何帮助将非常感激 .

更新 - 1 - 根据建议更新为jmeter日志

线程名称:线程组1-1示例开始时间:2017-08-09 17:03:41 IST加载时间:1604连接时间:1525延迟:1604大小字节:399发送字节:251标头大小(字节):213 Body size in bytes:186样本计数:1错误计数:1数据类型(“text”|“bin”|“”):text响应代码:500响应消息:遇到服务器级别异常响应头:HTTP / 1.1 500服务器级别异常遇到日期:2017年8月9日星期三11:33:43 GMT Access-Control-Allow-Origin:* Content-Type:application / json Transfer-Encoding:chunked Server:Jetty(9.2.16.v20160414)HTTPSampleResult字段:ContentType: application / json DataEncoding:null

UPDATE-2 - 使用Postman和JMeter Recorder

正如@Dimitri T所建议的那样,我下载了Postman的Linux版本并使用--proxy-server = localhost:8888启动它 .

我现在能够发出Postman请求并在JMeter中捕获请求 . 这是请求的样子:

Jmeter capture of a Postman Request

正如你所看到的,没有什么与我所做的完全不同 . 但是,这个DOES工作!欢呼!

2 回答

  • 0

    如果您的应用程序与Postman一起正常工作,那么构建JMeter测试计划的最快和最简单的方法就是使用JMeter的HTTP(S) Test Script Recorder来记录它 .

    从JMeter的主菜单

    • 选择 File -> Templates -> Recording 并单击"Create"

    • 展开 Workbench - HTTP(S) Test Script Recorder 并单击"Start"

    • 准备邮差进行录音

    • 为了"tell"邮递员使用JMeter作为代理,你需要提供 --proxy-server 参数,如:

    C:\Users\YOUR_USER_NAME\AppData\Local\Postman\app-x.x.x\Postman.exe --proxy-server=localhost:8888
    
    • 在邮差中执行您的请求

    • JMeter将捕获请求,将它们转换为HTTP Request采样器并将其存储在 Test Plan -> Thread Group -> Recording Controller

    参考文献:

  • 0

    您需要 uncheck 使用multipart / form-data在HTTP请求中发布 .

    multipart 覆盖Content-Type Headers 请参阅HTTP Request .

    使用multipart / form-data时,这会抑制Content-Type和Content-Transfer-Encoding标头;仅发送Content-Disposition标头 .

相关问题