我正在使用Docker(版本1.12.2,构建bb80604)来设置带有Gatling(负载测试工具)+ NodeJS的简单图像/容器.所以,我拉了这个Docker/Gatling基础图像并创建了我自己的Dockerfile来安装NodeJS.
但是,上面的Docker/Gatling基本图像已经定义了ENTRYPOINT,可以直接调用Gatling,然后自动退出容器.它看起来像这样:
ENTRYPOINT ["gatling.sh"]
Run Code Online (Sandbox Code Playgroud)
我想要实现的是:我想运行第二个命令(我自己的NodeJS脚本来解析测试结果),但到目前为止我找不到解决方案(我尝试重写ENTRYPOINT,ENTRYPOINT的不同组合和CMD,但没有成功).
这是我当前的Dockerfile的样子:
FROM denvazh/gatling:2.2.3
RUN apk update \
&& apk add -U bash \
&& apk add nodejs=6.7.0-r0
COPY simulations /opt/gatling/user-files/simulations
COPY trigger-test-and-parser.sh /opt/gatling/
RUN chmod +x /opt/gatling/trigger-test-and-parser.sh
ENTRYPOINT ["bash", "/opt/gatling/trigger-test-and-parser.sh"]
Run Code Online (Sandbox Code Playgroud)
这是我用来根据我的Dockerfile构建我的图像的命令:
docker build --no-cache -t gatling-nodejs:v8 .
Run Code Online (Sandbox Code Playgroud)
这是我用来运行我的容器的命令:
docker run -i -v "$PWD/results":/opt/gatling/results -v "$PWD":/opt/gatling/git.campmon.com/rodrigot/platform-hps-perf-test gatling-nodejs:v8
Run Code Online (Sandbox Code Playgroud)
这是我想在容器启动后执行的shellscript(trigger-test-and-parser.sh)(它应该触发Gatling,然后运行我的NodeJS解析器):
gatling.sh -s MicroserviceHPSPubSubRatePerfTest.scala
node publish-rate-to-team-city.js
Run Code Online (Sandbox Code Playgroud)
任何想法或调整,所以我可以在容器启动后运行这两个命令?
非常感谢!
在读取/解析文件时使用Ruby忽略某些行的最佳方法是什么?
我正在尝试从Cucumber .feature文件中解析场景,并且想要跳过不以Scenario/Given/When/Then/And/But开头的行.
下面的代码有效,但它很荒谬,所以我正在寻找一个智能的解决方案:)
File.open(file).each_line do |line|
line.chomp!
next if line.empty?
next if line.include? "#"
next if line.include? "Feature"
next if line.include? "In order"
next if line.include? "As a"
next if line.include? "I want"
Run Code Online (Sandbox Code Playgroud) 根据 TestCafe 隔离模式文档,我可以看到这是默认行为:
“最常见的结果被记录为测试结果。 ”
如果至少有 1 次成功执行(即使大多数运行失败),我想将隔离模式配置为通过。
有什么方法(或解决方法)可以实现这一目标吗?
谢谢你!