首页 文章

在JMeter中使用JSON搜索查询和GET请求

提问于
浏览
2

我的组织正在尝试使用JMeter作为测试自动化套件的一部分来测试一些后端REST API . 目前,其中一个支持使用JSON查询作为从GET请求获取过滤结果的方法 .

我们正在使用JMeter UI来创建这些测试,因为所有其他API调用都在HttpClient3.1 HTTP请求实现下工作,这是我目前用来实现此功能的实现 . 通过这个实现,我在查看结果树中的失败时得到以下结果(响应数据部分)我使错误略微更通用以保护一些IP:

java.lang.IllegalArgumentException:无效的uri'https:// server:port / restservice / v1 / users?firstname_query = {“in”:[“User1FirstName”,“User2FirstName”]}':org.apache中的查询无效 . commons.httpclient.HttpMethodBase . (HttpMethodBase.java:222)org.apache.commons.httpclient.methods.GetMethod . (GetMethod.java:89)at org.apache.jmeter.protocol.http.sampler.HTTPHC3Impl.sample( HTTPC3Impl.java:229)org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:74)atg.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java: 1146)org.apache.jot.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1135)位于org.apache.jmeter的org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:434) java.lang.Thread.run中的.threads.JMeterThread.run(JMeterThread.java:261)(未知来源)

我也使用Java实现尝试了相同的请求并获得了类似的结果 .

如果有任何想法或您需要更多信息,请告诉我,并提前再次感谢您提供的任何帮助 .

1 回答

  • 1

    您的HTTP请求配置有点不正确 . JSON实体包含大括号 {} ,这些大括号在URL中不允许,因此您需要对它们进行编码 .

    配置您的HTTP Request采样器,如:

    HTTP Request JSON

    确保勾选“编码”框 .

    这样您就可以使用HTTP GET请求发送JSON . 您可以使用View Results Tree listener来检查请求和响应详细信息:

    View Results Tree

    您可能还需要将HTTP Header Manager添加到测试计划中,并将其配置为发送 Content-Type 标头,其值为 application/json . 有关正确配置JMeter以测试REST API的更多详细信息,请参阅Testing SOAP/REST Web Services Using JMeter文章 .

相关问题