1

我正在通过命令行运行 jmeter 测试计划,并且功能上一切正常,但我想从 jmeter 返回两个值:一个布尔字段,指示执行中的任何步骤是否引发错误(本质上是通过/失败指示器) ,以及在 jMeter 中生成并存储在用户定义变量中的值。是否有可能做到这一点,如果可以,怎么做?

4

4 回答 4

1

您可以查看 jmeter maven 插件如何提取数据以用于 maven 报告。

https://github.com/Ronnie76er/jmeter-maven-plugin/wiki

于 2012-10-09T09:30:28.320 回答
1

您可以添加一个Beanshell 采样器作为测试的一部分(最后一步)。在此测试步骤中,您可以将这些值写入文件。测试完成后,您会将这些值存储在文件中。

如果您需要进一步的解释/示例,请告诉我

于 2012-10-09T10:01:41.243 回答
1

如果您希望控制台退出代码与 JMeter 测试的测试结果相匹配,请按照以下步骤操作。

您需要Generate Summary Results listener在 JMeter 测试中使用。这个监听器可以通过分析控制台输出来检查错误。我在这里找到了这种方法。

如果发生任何错误,您基本上会分析总结结果并相应地设置控制台退出代码。

grep 方法

直接使用 jmeter 调用grep在此处描述

#!/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)
于 2016-11-25T08:58:24.943 回答
0

最后,我扩展了一个 BeanShell 侦听器脚本,我必须将任何错误的状态以及我需要的变量写入 txt 文件。然后我能够在我的批处理文件中解析这个 txt 文件以提取变量并根据文件中是否存在“错误”检查通过/失败。我在每次执行后删除了 txt 文件,以允许每次执行生成一个新文件。

于 2012-10-10T09:54:23.247 回答