在TestKitchen描述块中,我正在运行一个命令,将它的输出加载到一个变量中,然后在该输出上运行多个expect语句,验证它的不同部分。最终目标是将此作为CI构建的一部分来进行黑盒测试。
在这个例子中,我调用Jmeter (使用它运行远程代理来执行off-DUT测试),然后运行它返回的结果,检查每个测试(是的,是的.虽然有点恶心,但效果不错):
describe "Test Transparent Proxy (JMeter)" do
$jmeter_run = 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
it 'test1' do
expect($jmeter_run).to match /text_to_match/
end
it 'test2' do
expect($jmeter_run).to match /more_text to match/
end
end测试本身运行良好,但我发现在测试规范中如何定义它们时,会有多个测试集(不同的测试集)无法正常运行。我还有其他块正在执行,围绕着J等分测试。这是我的流程:
block 1
block 2
block 3 (Jmeter1)
block 4
block 5 (Jmeter2)不过,我得到的是:
block5
block3
block1
block2
block4我发现的所有文档似乎都没有给我提供任何关于如何避免这种情况的线索。我不想将命令执行放入自己的应当/预期块中,因为我希望/需要能够判断单个测试是否失败。我还想避免运行50多个单独的J测测试(它们每个测试大约是5秒,即使在每次运行中平均有20个测试)。
帮助?:D
发布于 2015-09-03 23:58:26
我自己解决了这个问题。
经过大量修改后,我最终在测试中运行了该命令:
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现在一切都很顺利,就像它应该做的那样,一切都很幸福。
https://stackoverflow.com/questions/32197437
复制相似问题