2016-06-10 137 views

回答

0

我用下面的代码在我的http请求中添加了一个Beanshell PostProcessor。

import org.apache.jmeter.config.Argument; 
import org.apache.jmeter.config.Arguments; 

Arguments argz = ctx.getCurrentSampler().getArguments(); 
for (int i = 0; i < argz.getArgumentCount(); i++) { 
    Argument arg = argz.getArgument(i); 
    String a = arg.getValue(); 
    vars.put("EMAIL",a); 
}  

说明:我得到我的请求作为JSON并将其放入EMAIL中。现在我可以在我的其他请求中使用EMAIL作为变量。

然后,我添加了一个jp @ gc Json路径提取器,并将其应用于Jmeter Varaible。 现在,电子邮件将被用作变量,其中包含我的json请求,我可以使用jsonPath提取器进行提取。

+0

https://kishorsharma69.wordpress.com/2016/10/03/absolute-directory-path-for-jmx-file-jmeter/了解更多详情。 –

1

不知道你为什么需要它给你送“东西”,你应该已经有一个“东西”,因此您无需将其解压,但是在这里你去:

为了节省1参数值(如果使用“Body Data”模式,则为整个发布数据):

  1. Beanshell PostProcessor添加为HTTP请求的子项。
  2. 将下面的代码到后处理的“脚本”区域:

    String request = ctx.getCurrentSampler().getArguments().getArgument(0).getValue(); 
    vars.put("request", request); 
    

你将能够在需要访问提取的值作为${request}

澄清:

有关使用JMeter的和Java How to Use BeanShell: JMeter's Favorite Built-in Component指南了解更多信息来自JMeter测试中Beanshell测试元素的API。

0

一个简单的方法是使用JSON路径提取器。

只是有 对于例如你给 { "data" : { "name" : "john_doe", } }

“变量名:YourNewVar” “JSON路径:$ .data.name” 应该工作,但是你可能需要做一些试验。

您可能需要添加一个“调试采样器”(它的一个标准采样器)并放入它的标题$ YourNewVar中,以便看到正在提取的内容。

Beanshell和“Regular Expression Extractor”当然会起作用,但如果您不熟悉它们,可能会稍微难一些。