JMeter检查不同线程上的不同断言

时间:2017-04-18 13:14:52

标签: multithreading jmeter jmeter-plugins

使用JMeter,我想检查只允许1次更新的锁定部分

我正在运行带有10个线程的线程组,并期望只有1个(并非总是第一个)线程返回0而其他9个线程返回1 我怎么能断言呢?

线程组(10) - HTTP采样器 - - ?断言

修改

10实际上是动态属性。所以我需要任何线程数来期望只有1个断言才能返回成功。

测试是检查记录的锁定是否正常,并且只能更新记录一次,即使在压力/负载测试中也是如此。

修改2

使用临界区控制器没有给出确切的失败结果

2 个答案:

答案 0 :(得分:0)

我可以看到两种实现方案的方法:

  1. 通过AutoStop Listener使用JMeter Plugin,它具有AutoStop on Error Rate功能,因此如果失败采样器的百分比高于90,您就可以停止测试。您可以使用JMeter Plugins Manager安装AutoStop Listener:

    JMeter Plugins Manager Autostop

  2. 使用Taurus tool作为JMeter测试的包装器,Taurus有Pass/Fail Criteria subsystem,如果单个页面的错误率超过90,您可以将逻辑设置为有条件地使整个测试失败%。 Taurus将返回非零退出代码,您可以在以后使用它(即在连续集成服务器中触发构建失败)。

答案 1 :(得分:0)

最后我成功了,我用一个唯一的id保存每个线程的失败计数,并在最后使用 #!/bin/bash FILENAME="/home/usr/ws/images_to_process/%04d.jpeg" COUNTER=0 while true; do target=$(printf $FILENAME $COUNTER) if [ ! -f $target ]; then gnome-screenshot -w -B -f $target fi COUNTER=$(($COUNTER + 1)) done 来计算失败

请求后tearDown Thread Group检查Thread Group

的无效回复

并在其下JSR223 Sampler,它按标记的唯一ID标记失败标记:

If Controller

JSR223 Sampler将失败,除非仅存在一个成功请求

String threadNumber = String.valueOf(ctx.getThreadNum());
props.put("failures" + threadNumber, 1);