我通过命令行运行jmeter测试计划,功能上它的工作正常,但我想从jmeter返回两个值:一个布尔字段,指示执行中的任何步骤是否抛出错误(实质上是通过/失败指示符),以及在jMeter中生成并存储在用户定义变量中的值。是否可以这样做,如果是这样的话?
答案 0 :(得分:1)
您可以查看jmeter maven插件如何提取数据以用于maven报告。
答案 1 :(得分:1)
您可以添加Beanshell Sampler作为测试的一部分(最后一步)。在此测试步骤中,您可以将这些值写入文件。测试完成后,您可以将这些值存储在文件中。
如果您需要进一步的解释/示例,请告诉我们
答案 2 :(得分:1)
如果您希望控制台退出代码与JMeter测试的测试结果相匹配,请执行以下步骤。
您需要在JMeter测试中使用Generate Summary Results listener
。这个监听器通过分析控制台输出来检查错误。我找到了这种方法here。
如果发生任何错误,您基本上会分析Summery Results并相应地设置控制台退出代码。
grep方法
使用grep
直接使用jmeter调用,描述为here
#!/bin/bash
if java -jar ./apache-jmeter-2.9/bin/ApacheJMeter.jar -n -t x.jmx | grep "0
(0.00%)$"
then
echo Success
exit 0
else
echo Failure
exit 1
fi
Python方法
或使用Python
#!/usr/bin/bash
jmeter -n -t script.jmx | process_results.py
if [ $? -ne 0 ]; then
echo '[TEST FAILED]'
else
echo '[TEST SUCCESSFUL]'
fi
process_results.py
- 已修改,因此仅在错误计数>时发出警告0
#!/usr/bin/python
import re
import sys
for line in sys.stdin:
print line,
match = re.search('summary =[\s].*Err:[ ]{0,10}([1-9]\d{0,10})[ ].*',line)
print 'Check in line if Err: > 0 -> if so Error occured -> Test fails: '
print match
if match :
print "exit 1"
sys.exit(1)
print "nothing found - exit 0"
sys.exit(0)
答案 3 :(得分:0)
最后,我扩展了一个BeanShell Listener脚本,我必须将任何错误的状态写入txt文件,以及我需要的变量。然后我能够在我的批处理文件中解析这个txt文件来提取变量,并根据文件中存在的“错误”检查通过/失败。我在每次执行后删除了txt文件,以允许每次执行生成一个新文件。