我如何在 jmeter 中将动态值传递给 url
how can i pass dynamic values to url in jmeter
我必须给 url 动态值,它需要用户数量和他们的年龄,可以通过网页选择。但我想使用 BeanShell PostProcessor
在 Jmeter
中给出它。
帮助我,因为我是 Jmeter
.
的新手
这是路径:
/destinations/packages?airports%5B%5D=LGW&units%5B%5D=000577%3ADESTINATION&when=29-05-2016&until=&flexibility=true&flexibleDays=3&noOfAdults=2&noOfSeniors=0&noOfChildren=1&childrenAge=3&duration=7114&first=0&searchType=search&searchRequestType=ins&sp=true&multiSelect=true
据我所知,您可以使用 CSV 数据集配置。
- 使用要用于测试的数据创建 .txt 文件;
- 将上面的.txt文件放到你的.jmx文件所在的文件夹中;
- 在您的测试计划中:在您的请求采样器下 - 放置 CSV 数据集配置;
然后,如果您需要在一个线程组中使用动态值 => 将这些数据引用为 ${quanity}、${age}在你url.
如果您需要跨线程组传递这些值 => 添加 BeanShell 断言
然后(在另一个 Tread 组中)将它们称为 ${__property(_quantity)},${__property (_age)}.
希望对您有帮助。
- 首先你需要Beanshell PreProcessor,而不是Beanshell PostProcessor。
所有这些参数基本上都是name/value对,可以通过HTTPSamplerBaseclass来定义。 HTTPSamplerBase class 实例作为 sampler
预定义变量可用于 Beanshell 预处理器,因此如果您将以下代码添加到 Beanshell 预处理器 "Script" 区域
sampler.addEncodedArgument("airports[]","LGW");
sampler.addEncodedArgument("units[]","000577:DESTINATION");
sampler.addEncodedArgument("when","29-05-2016");
sampler.addEncodedArgument("until","");
sampler.addEncodedArgument("flexibility", "true");
sampler.addEncodedArgument("flexibleDays","3");
sampler.addEncodedArgument("noOfAdults","2");
//etc
您的 HTTP 请求将填充您通过 Beanshell 设置的值。
JMeter 变量可以通过 vars
shorthand 访问,它代表 JMeterVariables class 实例。
String airport = vars.get("airport");
sampler.addEncodedArgument("airports[]", airport);
//etc
有关如何在 Jmeter 中使用 Beanshell 测试元素的全面信息,请参阅 How to Use BeanShell: JMeter's Favorite Built-in Component 文章。
请记住,建议尽可能避免编写脚本,因此如果有其他方法可以实现您的任务 - 那就去做吧。
我必须给 url 动态值,它需要用户数量和他们的年龄,可以通过网页选择。但我想使用 BeanShell PostProcessor
在 Jmeter
中给出它。
帮助我,因为我是 Jmeter
.
这是路径:
/destinations/packages?airports%5B%5D=LGW&units%5B%5D=000577%3ADESTINATION&when=29-05-2016&until=&flexibility=true&flexibleDays=3&noOfAdults=2&noOfSeniors=0&noOfChildren=1&childrenAge=3&duration=7114&first=0&searchType=search&searchRequestType=ins&sp=true&multiSelect=true
据我所知,您可以使用 CSV 数据集配置。
- 使用要用于测试的数据创建 .txt 文件;
- 将上面的.txt文件放到你的.jmx文件所在的文件夹中;
- 在您的测试计划中:在您的请求采样器下 - 放置 CSV 数据集配置;
然后,如果您需要在一个线程组中使用动态值 => 将这些数据引用为 ${quanity}、${age}在你url.
如果您需要跨线程组传递这些值 => 添加 BeanShell 断言
然后(在另一个 Tread 组中)将它们称为 ${__property(_quantity)},${__property (_age)}.
希望对您有帮助。
- 首先你需要Beanshell PreProcessor,而不是Beanshell PostProcessor。
所有这些参数基本上都是name/value对,可以通过HTTPSamplerBaseclass来定义。 HTTPSamplerBase class 实例作为
sampler
预定义变量可用于 Beanshell 预处理器,因此如果您将以下代码添加到 Beanshell 预处理器 "Script" 区域sampler.addEncodedArgument("airports[]","LGW"); sampler.addEncodedArgument("units[]","000577:DESTINATION"); sampler.addEncodedArgument("when","29-05-2016"); sampler.addEncodedArgument("until",""); sampler.addEncodedArgument("flexibility", "true"); sampler.addEncodedArgument("flexibleDays","3"); sampler.addEncodedArgument("noOfAdults","2"); //etc
您的 HTTP 请求将填充您通过 Beanshell 设置的值。
JMeter 变量可以通过 vars
shorthand 访问,它代表 JMeterVariables class 实例。
String airport = vars.get("airport");
sampler.addEncodedArgument("airports[]", airport);
//etc
有关如何在 Jmeter 中使用 Beanshell 测试元素的全面信息,请参阅 How to Use BeanShell: JMeter's Favorite Built-in Component 文章。
请记住,建议尽可能避免编写脚本,因此如果有其他方法可以实现您的任务 - 那就去做吧。