Rest JMeter中的JSON Post数据请求
我有一个rest web服务,它接受JSON post数据,但要请求任何API url,我们需要传递Rest JMeter中的JSON Post数据请求,rest,jmeter,load-testing,Rest,Jmeter,Load Testing,我有一个rest web服务,它接受JSON post数据,但要请求任何API url,我们需要传递access\u token 因此,我的post数据是一个JSON数据,access\u token作为查询字符串传递 问题: 根据我的探索,我还没有找到任何发送请求的方法,这些请求可以包含JSON post数据,也可以接受来自JMeter中HTTP-URL重写的查询字符串 实际请求: POST http://<domain>/webapp/service/document/save
access\u token
因此,我的post数据是一个JSON数据,
access\u token
作为查询字符串传递
- 问题: 根据我的探索,我还没有找到任何发送请求的方法,这些请求可以包含JSON post数据,也可以接受来自JMeter中HTTP-URL重写的查询字符串
- 实际请求:
POST http://<domain>/webapp/service/document/save POST data: { node = '1'}token_XXXXXX [no cookies] Request Headers: Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 980 Host: localhost User-Agent: Apache-HttpClient/4.2.3 (java 1.5)
POSThttp:///webapp/service/document/save 发布数据:{node='1'}令牌\uxxxxxx [没有饼干] 请求头:连接:保持活动内容类型:application/x-www-form-urlencoded内容长度:980主机:localhost用户代理:Apache HttpClient/4.2.3(java 1.5)
- 预期请求:
POST http://<domain>/webapp/service/document/save?access_token=token_XXXXXX POST data: { node = '1'} [no cookies] Request Headers: Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 980 Host: localhost User-Agent: Apache-HttpClient/4.2.3 (java 1.5)
POSThttp:///webapp/service/document/save?access_token=token_XXXXXX 发布数据:{node='1'} [没有饼干] 请求头:连接:保持活动内容类型:application/x-www-form-urlencoded内容长度:980主机:localhost用户代理:Apache HttpClient/4.2.3(java 1.5)
我应该如何在JMeter中配置它?在路径字段中,添加如下访问令牌:
- path?access_token=${regexp提取的值}
并将原始帖子正文用于JSON内容。在路径字段中,添加如下访问令牌:
- path?access_token=${regexp提取的值}
并将原始帖子正文用于JSON内容。我刚刚找到了解决方案 我没有使用头管理器,而是使用了BeanShell预处理器,我只是从BeanShell预处理器中可用的aeguments中删除了参数,并使用BeanShell预处理器中可用的setPath()方法将查询字符串添加到请求的路径
Arguments arguments = sampler.getArguments();
String access_token = sampler.getArguments().getArgumentsAsMap().get("access_token");
arguments.removeArgument("access_token");
String path = sampler.getUrl() + "?access_token=" + access_token;
sampler.setPath(path);
这个代码解决了我的问题。
候补是校长兼经理。@PMD UBIK-INGENIERIE已经回答了这个问题,我刚刚找到了解决方案 我没有使用头管理器,而是使用了BeanShell预处理器,我只是从BeanShell预处理器中可用的aeguments中删除了参数,并使用BeanShell预处理器中可用的setPath()方法将查询字符串添加到请求的路径
Arguments arguments = sampler.getArguments();
String access_token = sampler.getArguments().getArgumentsAsMap().get("access_token");
arguments.removeArgument("access_token");
String path = sampler.getUrl() + "?access_token=" + access_token;
sampler.setPath(path);
这个代码解决了我的问题。
候补是校长兼经理。已由@PMD UBIK-INGENIERIE回答是。。但是如果我刚刚使用HeaderManger修改了帖子数据内容,那么。。。我仍然需要将我的访问令牌附加到url。。这就是为什么我希望删除论点并在URL中添加查询字符串。似乎我误解了你的问题,我更新了我的andweryes。。但是如果我刚刚使用HeaderManger修改了帖子数据内容,那么。。。我仍然需要将我的访问令牌附加到url。。这就是为什么我希望删除论点并在URL中添加查询字符串。似乎我误解了你的问题,我更新了我的答案