在Jmeter中,只执行一次样本请求,而不考虑线程数

时间:2017-06-13 10:35:22

标签: jmeter performance-testing database-performance jmeter-plugins

我正在压力测试应用程序数据库。 我已成功设置JDBC连接配置并能够执行查询。 要求是: 在customer_table中将新客户插入数据库中。客户ID(列名称)应该是唯一的并且按顺序排列。例如,在customer_table中,如果已存在100个客户,则添加其他客户的customer_id应以101开头。 因此,在我的测试计划中,我需要首先使用Select查询获取现有客户的数量,然后执行要进行压力测试的实际插入查询。 所以,我在测试计划中添加了以下内容。

  1. 带有select查询的jdbc请求以获取现有客户的数量。(在整个测试计划中只有一次)并以变量名称保存客户数量。
  2. 一个Counter元素,其中起始值将是来自第一个jdbc请求的变量名,并将其递增一个。
  3. 带插入查询的实际JDBC请求。
  4. 这种方法的问题是我需要只执行一次First请求,而不管线程数是多少。 我试过的替代方法: 我还尝试创建两个线程组,并使用Jmeter属性将客户数从第一个线程组传递到第二个线程组。但是第二个线程组无法从我设置为Jmeter属性的第一个线程组访问客户计数。 感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

将请求置于If Controller下并使用以下条件:

${__threadNum} == 1

这样JMeter只会为第一个线程执行采样器。

如果在线程组级别上使用多个循环,则可能需要将条件修改为仅在第一个循环中运行,如:

${__threadNum} == 1 && ${__groovy(vars.getIteration() == 1,)}

参考文献: