Jmeter TestKichen、Serverspec和无序命令执行

Jmeter TestKichen、Serverspec和无序命令执行,jmeter,test-kitchen,serverspec,Jmeter,Test Kitchen,Serverspec,在TestKitchen描述块中,我正在运行一个命令,将其输出加载到一个变量中,然后在该输出上运行多个expect语句来验证它的不同部分。最终目标是将其作为CI构建的一部分来进行黑盒测试 在本例中,我调用Jmeter(使用它运行远程代理以执行非DUT测试),然后运行它返回的结果,检查每个测试(是的,是的……这有点讨厌,但效果不错): 测试本身运行良好,但我发现我得到了多个jmeter运行(不同的测试集),它们在测试规范中是如何定义的。我在jmeter测试周围执行了其他块。以下是我的流程: blo

在TestKitchen描述块中,我正在运行一个命令,将其输出加载到一个变量中,然后在该输出上运行多个expect语句来验证它的不同部分。最终目标是将其作为CI构建的一部分来进行黑盒测试

在本例中,我调用Jmeter(使用它运行远程代理以执行非DUT测试),然后运行它返回的结果,检查每个测试(是的,是的……这有点讨厌,但效果不错):

测试本身运行良好,但我发现我得到了多个jmeter运行(不同的测试集),它们在测试规范中是如何定义的。我在jmeter测试周围执行了其他块。以下是我的流程:

block 1
block 2
block 3 (Jmeter1)
block 4
block 5 (Jmeter2)
我想说的是:

block5
block3
block1
block2
block4
我发现的所有文档似乎都没有给我任何关于如何避免这种情况的线索。我不想把命令执行放在它自己的should/expect块中,因为我希望/需要能够判断单个测试是否失败。我还希望避免运行50多个单独的Jmeter测试(即使每次运行平均20个测试,每个测试大约5秒)


帮助?:我自己设法解决了这个问题

经过大量修补,我最终在测试中运行了该命令:

  it 'JMeter executed correctly' do
    $jmeter_run1 = command("/usr/local/apache-jmeter-2.13/bin/jmeter -n -t /root/jmx/mytest.jmx -r -Jremote_hosts=192.168.7.252 -Gdut_ip=#$internal_ip -X -l /dev/stdout 2>&1").stdout
    expect($jmeter_run1).not_to be_empty
  end
现在,一切都很好地按照预期的顺序运行,一切都很愉快

  it 'JMeter executed correctly' do
    $jmeter_run1 = command("/usr/local/apache-jmeter-2.13/bin/jmeter -n -t /root/jmx/mytest.jmx -r -Jremote_hosts=192.168.7.252 -Gdut_ip=#$internal_ip -X -l /dev/stdout 2>&1").stdout
    expect($jmeter_run1).not_to be_empty
  end