Rest JMeter中的JSON Post数据请求

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

我有一个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    
    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中添加查询字符串。似乎我误解了你的问题,我更新了我的答案