Jmeter - POST API不起作用

时间:2017-08-09 10:16:11

标签: api jmeter http-post jmeter-3.2

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

详细信息:

服务器名称:localhost 港口:8080 path / registerMobileUsingCode

在请求正文中,我发送以下内容:

{     " clientName":" DemoOrg",     "代码":" 9880007615",     " languageId":" 1" }

我的Jmeter设置如下所示:

1

我的HTTP请求标头如下所示:

Request Header details

API已投入生产,并可与邮递员合作。

我无法让它通过JMeter工作。很明显,我做错了什么但是虽然花了相当多的时间用谷歌搜索解决方案,却无法弄明白。

非常感谢任何帮助。

UPDATE - 1 - 按照建议更新为jmeter日志

  
    

线程名称:线程组1-1示例开始时间:2017-08-09 17:03:41 IST加载时间:1604连接时间:1525延迟:1604大小字节:399     已发送字节数:251标头大小(字节):213主体大小(字节):186     样本计数:1错误计数:1数据类型("文本" |" bin" |""):文本     响应代码:500响应消息:服务器级别异常     遇到

  
     

响应标头:遇到HTTP / 1.1 500服务器级别异常   日期:2017年8月9日星期三11:33:43 GMT Access-Control-Allow-Origin:*   Content-Type:application / json Transfer-Encoding:chunked Server:   码头(9.2.16.v20160414)

     

HTTPSampleResult字段:ContentType:application / json DataEncoding:   空

UPDATE-2 - 使用Postman和JMeter Recorder

根据@Dimitri T的建议,我下载了Postman的Linux版本并使用--proxy-server = localhost:8888启动它。

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

Jmeter capture of a Postman Request

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

2 个答案:

答案 0 :(得分:0)

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

  1. 准备JMeter进行录制(您可以通过JMeter Templates Feature点击几下来完成)

    • 从JMeter的主菜单中选择File -> Templates -> Recording,然后点击"创建"
    • 展开Workbench - HTTP(S) Test Script Recorder,然后点击"开始"
  2. 准备邮差进行录制

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

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

  4. JMeter将捕获请求,将其转换为HTTP Request个采样器并将其存储在Test Plan -> Thread Group -> Recording Controller
  5. 参考文献:

答案 1 :(得分:0)

通过查看您附加的图片,您在路径中缺少/

路径应该是/registerMobileUsingCode

  1. 如果 POSTMAN 工作正常,那么您的端口 8080 就可以了。
  2. 您能否确认您的请求的数据类型是什么?看起来 languageId 是整数,所以你应该使用 languageId: 1,而不是 languageId: "1"。整数不应为双引号。