首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TestKichen、Serverspec和无序命令执行

TestKichen、Serverspec和无序命令执行
EN

Stack Overflow用户
提问于 2015-08-25 06:58:51
回答 1查看 121关注 0票数 1

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

在这个例子中,我调用Jmeter (使用它运行远程代理来执行off-DUT测试),然后运行它返回的结果,检查每个测试(是的,是的.虽然有点恶心,但效果不错):

代码语言:javascript
复制
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等分测试。这是我的流程:

代码语言:javascript
复制
block 1
block 2
block 3 (Jmeter1)
block 4
block 5 (Jmeter2)

不过,我得到的是:

代码语言:javascript
复制
block5
block3
block1
block2
block4

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

帮助?:D

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-03 23:58:26

我自己解决了这个问题。

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

代码语言:javascript
复制
  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

现在一切都很顺利,就像它应该做的那样,一切都很幸福。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32197437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档