使用JMeter,我想检查只允许1次更新的锁定部分
我正在运行带有10个线程的线程组,并期望只有1个(并非总是第一个)线程返回0而其他9个线程返回1 我怎么能断言呢?
线程组(10) - HTTP采样器 - - ?断言
修改
10实际上是动态属性。所以我需要任何线程数来期望只有1个断言才能返回成功。
测试是检查记录的锁定是否正常,并且只能更新记录一次,即使在压力/负载测试中也是如此。
修改2
使用临界区控制器没有给出确切的失败结果
答案 0 :(得分:0)
我可以看到两种实现方案的方法:
通过AutoStop Listener使用JMeter Plugin,它具有AutoStop on Error Rate功能,因此如果失败采样器的百分比高于90,您就可以停止测试。您可以使用JMeter Plugins Manager安装AutoStop Listener:
使用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);