我正在通过命令行运行jmeter测试计划,功能上一切正常,但我想从jmeter返回两个值:一个布尔字段,指示excovery中的任何步骤是否抛出错误(本质上是一个通过/失败指示器),以及一个在jMeter中生成并存储在用户定义变量中的值。是否可以做到这一点,如果可以,如何做到?
j91ykkif1#
你可以看看jmeter maven插件是如何提取数据用于maven报告的。https://github.com/Ronnie76er/jmeter-maven-plugin/wiki
zmeyuzjn2#
您可以添加Beanshell采样器作为测试的一部分(最后一步)。在此测试步骤中,您可以将这些值写入文件。测试完成后,您将这些值存储在文件中。如果您需要进一步的解释/示例,请告诉我
ukxgm1gy3#
如果希望控制台退出代码与JMeter测试的测试结果匹配,请执行以下步骤。你需要在JMeter测试中使用Generate Summary Results listener。这个监听器允许通过分析控制台输出来检查错误。我发现了这种方法here。如果发生任何错误,您基本上都会分析SummeryResults,并相应地设置控制台退出代码。
Generate Summary Results listener
grep方法
直接用jmeter调用grep,说明here
grep
#!/bin/bashif java -jar ./apache-jmeter-2.9/bin/ApacheJMeter.jar -n -t x.jmx | grep "0(0.00%)$"then echo Success exit 0else echo Failure exit 1fi
#!/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/bashjmeter -n -t script.jmx | process_results.pyif [ $? -ne 0 ]; then echo '[TEST FAILED]'else echo '[TEST SUCCESSFUL]'fi
#!/usr/bin/bash
jmeter -n -t script.jmx | process_results.py
if [ $? -ne 0 ]; then
echo '[TEST FAILED]'
echo '[TEST SUCCESSFUL]'
型process_results.py-已修改,因此仅在错误计数> 0时发出警报
process_results.py
#!/usr/bin/pythonimport reimport sysfor 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)
#!/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)
型
j2cgzkjk4#
最后,我扩展了一个BeanShell脚本,我必须将任何错误的状态写入一个txt文件,以及我需要的变量。然后,我能够在批处理文件中解析这个txt文件,以提取变量,并根据文件中存在的“错误”检查通过/失败。我在每次执行后删除txt文件,以便每次执行时生成一个新文件。
wko9yo5t5#
如果你用-o reports/选项运行jmeter,你会得到报告。在目标目录中,你可以找到一个名为statistics.json的文件。在那里你可以找到运行的错误总数。我建议你也使用jq cli。比如
-o reports/
statistics.json
jq
TOTAL_ERRORS=$(jq .Total.errorCount reports/statistics.json) if [[ "$TOTAL_ERRORS" -ne 0 ]]; then exit 1 fi
TOTAL_ERRORS=$(jq .Total.errorCount reports/statistics.json)
if [[ "$TOTAL_ERRORS" -ne 0 ]]; then
5条答案
按热度按时间j91ykkif1#
你可以看看jmeter maven插件是如何提取数据用于maven报告的。
https://github.com/Ronnie76er/jmeter-maven-plugin/wiki
zmeyuzjn2#
您可以添加Beanshell采样器作为测试的一部分(最后一步)。在此测试步骤中,您可以将这些值写入文件。测试完成后,您将这些值存储在文件中。
如果您需要进一步的解释/示例,请告诉我
ukxgm1gy3#
如果希望控制台退出代码与JMeter测试的测试结果匹配,请执行以下步骤。
你需要在JMeter测试中使用
Generate Summary Results listener
。这个监听器允许通过分析控制台输出来检查错误。我发现了这种方法here。如果发生任何错误,您基本上都会分析SummeryResults,并相应地设置控制台退出代码。
grep方法
直接用jmeter调用
grep
,说明here字符串
Python方法
或者使用Python
型
process_results.py
-已修改,因此仅在错误计数> 0时发出警报型
j2cgzkjk4#
最后,我扩展了一个BeanShell脚本,我必须将任何错误的状态写入一个txt文件,以及我需要的变量。然后,我能够在批处理文件中解析这个txt文件,以提取变量,并根据文件中存在的“错误”检查通过/失败。我在每次执行后删除txt文件,以便每次执行时生成一个新文件。
wko9yo5t5#
如果你用
-o reports/
选项运行jmeter,你会得到报告。在目标目录中,你可以找到一个名为statistics.json
的文件。在那里你可以找到运行的错误总数。我建议你也使用jq
cli。比如
字符串