Jmeter:随机从文件中提取路径
Jmeter: Pull paths from file at random
我正在为某些网页构建 load/stress 测试。我有一个具有基本服务器名称的 HTTP 请求默认设置。我想使用随机控制器和 HTTP 请求来随机检查所有页面,但我不想创建 150 个 HTTP 请求,每个请求都有一个唯一的路径。我宁愿有一个从文件中随机提取路径的 HTTP 请求。
我描述的可能吗?谁能指出我正确的方向?
我重新措辞了我的搜索,发现这是不可能的。我想我要听取另一个论坛的建议并随机化我的文件来实现这一点。似乎是最简单的解决方案。
事实上这是可能的。一切皆有可能。对于 JMeter,您需要编写一些脚本。
给定以下测试计划结构:
设置线程组
Beanshell 采样器
import org.apache.commons.io.FileUtils;
List lines = FileUtils.readLines(new File("/path/to/your/file"));
bsh.shared.lines = lines;
线程组
HTTP 请求采样器,路径:${randomline}
Beanshell 预处理器
List lines = bsh.shared.lines;
Random rnd = new Random();
vars.put("randomline", lines.get(rnd.nextInt(lines.size())));
可以使用文件中的随机 URL 作为 HTTP 请求路径。
解释:
- setUp Thread Group - 在任何其他线程组之前执行的特殊线程组类型。这个想法是只读取文件一次。
- Beanshell Sampler - uses FileUtils library to read all the lines into lines array and bsh.shared 命名空间,因此所有线程组都可以全局访问数组
- Beanshell PreProcessor - uses Random class to generate random line number, obtains random value from the lines array and stores the value into
randomline
variable via JMeterVariablesclass。
在需要时将生成的随机行引用为 ${randomline}
。
有关 JMeter 中的 Beanshell 脚本和一种 Beanshell 食谱的更多信息,请参阅 How to Use BeanShell: JMeter's Favorite Built-in Component 指南。
我正在为某些网页构建 load/stress 测试。我有一个具有基本服务器名称的 HTTP 请求默认设置。我想使用随机控制器和 HTTP 请求来随机检查所有页面,但我不想创建 150 个 HTTP 请求,每个请求都有一个唯一的路径。我宁愿有一个从文件中随机提取路径的 HTTP 请求。
我描述的可能吗?谁能指出我正确的方向?
我重新措辞了我的搜索,发现这是不可能的。我想我要听取另一个论坛的建议并随机化我的文件来实现这一点。似乎是最简单的解决方案。
事实上这是可能的。一切皆有可能。对于 JMeter,您需要编写一些脚本。
给定以下测试计划结构:
设置线程组
Beanshell 采样器
import org.apache.commons.io.FileUtils; List lines = FileUtils.readLines(new File("/path/to/your/file")); bsh.shared.lines = lines;
线程组
HTTP 请求采样器,路径:
${randomline}
Beanshell 预处理器
List lines = bsh.shared.lines; Random rnd = new Random(); vars.put("randomline", lines.get(rnd.nextInt(lines.size())));
可以使用文件中的随机 URL 作为 HTTP 请求路径。
解释:
- setUp Thread Group - 在任何其他线程组之前执行的特殊线程组类型。这个想法是只读取文件一次。
- Beanshell Sampler - uses FileUtils library to read all the lines into lines array and bsh.shared 命名空间,因此所有线程组都可以全局访问数组
- Beanshell PreProcessor - uses Random class to generate random line number, obtains random value from the lines array and stores the value into
randomline
variable via JMeterVariablesclass。
在需要时将生成的随机行引用为 ${randomline}
。
有关 JMeter 中的 Beanshell 脚本和一种 Beanshell 食谱的更多信息,请参阅 How to Use BeanShell: JMeter's Favorite Built-in Component 指南。