我想强调使用不同参数化的JMeter测试REStful API,并根据用于REST调用的用户数和参数捕获响应时间:
| 10 User | 100 Users | 1000 Users
Parameters A |‾‾‾‾‾‾‾‾‾|‾‾‾‾‾‾‾‾‾‾‾|‾‾‾‾‾‾‾‾‾‾‾‾
Parameters B |‾‾‾‾‾‾‾‾‾|‾‾‾‾‾‾‾‾‾‾‾|‾‾‾‾‾‾‾‾‾‾‾‾
Parameters C |‾‾‾‾‾‾‾‾‾|‾‾‾‾‾‾‾‾‾‾‾|‾‾‾‾‾‾‾‾‾‾‾‾
所以我的HTTP请求总是相同的,除了参数和用户数。我当前(差)的方法是一个线程组,每个用户和参数组合都有一个硬编码的线程数。但我认为有更好的方法,利用变量。
有关清洁实施的任何建议吗?
编辑:基本上我正在尝试实现以下嵌套for loops
。
for (param in parameters) {
for (numReq in users) {
executeRequest(param, numReq)
// execute *numReq* simultaneous requests with the parameters of param
}
}
答案 0 :(得分:1)
JMeter线程组在JMeter启动期间被初始化,所以很遗憾,您将无法使用JMeter Variables,因为它们被读取并稍后应用。
但是你可以改用JMeter属性。例如,您可以使用__P() function来定义用户数量,如:
${__P(threads,)}
然后您将能够通过-J
命令行参数定义线程编号,如:
jmeter -Jthreads=100 -n -t test.jmx -l result.jtl
有关JMeter属性及其使用方法的更多信息,请参阅Apache JMeter Properties Customization Guide。
如果您使用JMeter Plugins,也可以考虑尝试Stepping Thread Group而不是