我是Jmeter的新手,并一直在努力让它来测试我的POST API . 它适用于GET API调用,我通过参数选项卡传递参数 .
详细信息:
服务器名称:localhost端口:8080路径/ registerMobileUsingCode
在请求正文中,我发送以下信息:
{“clientName”:“DemoOrg”,“code”:“9880007615”,“languageId”:“1”}
我的Jmeter设置如下所示:
我的HTTP请求标头看起来像这样:
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 回答
如果您的应用程序与Postman一起正常工作,那么构建JMeter测试计划的最快和最简单的方法就是使用JMeter的HTTP(S) Test Script Recorder来记录它 .
从JMeter的主菜单
选择
File -> Templates -> Recording
并单击"Create"展开
Workbench - HTTP(S) Test Script Recorder
并单击"Start"准备邮差进行录音
为了"tell"邮递员使用JMeter作为代理,你需要提供 --proxy-server 参数,如:
在邮差中执行您的请求
JMeter将捕获请求,将它们转换为HTTP Request采样器并将其存储在
Test Plan -> Thread Group -> Recording Controller
下参考文献:
JMeter Proxy Step by Step
How to configure Postman Native Client App to use an external proxy
您需要 uncheck 使用multipart / form-data在HTTP请求中发布 .
multipart
覆盖Content-Type Headers 请参阅HTTP Request .