JMeter:传递关键值对不起作用

时间:2016-02-25 18:42:08

标签: api jmeter

我使用JMeters使用基本的CRUD方法自动对我们的数据库进行API测试。创建记录后,我尝试执行3种不同类型的读取(想想CRRRUD)。 :)

阅读1 - 按ID检索 HTTP(GET)基本URL附加了保存的记录ID。

http..../crud/tableName/${newRecordId}

返回

阅读2 - 按字段类型检索,没有定义的值 HTTP(POST)基本URL扩展为"搜索"作为结束。定义了一个键("名称")没有值。

http..../crud/tableName/search
Parameter Name = name
Value = {undefined}

返回表中其字段(" name")不为空的所有记录。

阅读3 - 按字段类型检索定义的值 HTTP(POST)基本URL扩展为"搜索"作为结束。使用创建请求期间生成的值定义密钥(" name")。

http..../crud/tableName/search
Parameter Name = name
Value = Metropolis

这也会返回表中的所有记录,而不仅仅是名称为Metropolis的记录。

在将Key | Value对定义为" name | Metropolis"时,使用REST客户端(例如,邮递员,高级REST客户端等)时,此第3次检索正常工作。所以我必须在JMeter中找到我想要的东西。

非常感谢任何见解!

1 个答案:

答案 0 :(得分:1)

只有一个正确的答案:使用嗅探器工具(即Wireshark)比较REST客户端和JMeter发送的内容,检测差异并相应地配置JMeter。

只是一个猜测:假设你提到“API”一个“REST”字样,你可能需要将其作为JSON传递:

{"name":"Metropolis"}

作为单个参数值

Single parameter

或以格式化方式(如果服务器检查Content-Length和/或希望请求格式正确)

Body Data

您可能还需要添加HTTP Header Manager才能发送Content-Type标头,其值为application/json。有关详细信息,请参阅Testing SOAP/REST Web Services Using JMeter指南。