gitlab-ci - 在 GiLab CI 上执行 K6 脚本的建议配置
问题描述
我一直在 GitLab CI 上进行 K6 性能测试,我想知道最好的和推荐的设置方法是什么。
根据K6 文档和示例项目,它定义.gitlab-ci.yml
如下:
before_script:
- mkdir -p .k6-bin
- |
if [[ ! -f .k6-bin/k6 ]]; then
curl -O -L https://github.com/loadimpact/k6/releases/download/v0.21.1/k6-v0.21.1-linux64.tar.gz;
tar -xvzf k6-v0.21.1-linux64.tar.gz;
mv k6-v0.21.1-linux64/k6 .k6-bin/k6;
fi
cache:
key: k6-bin
paths:
- .k6-bin
loadtest:
stage: test
script: .k6-bin/k6 run -o cloud loadtests/main.js
我发现这非常冗长,尤其是当您考虑提供预构建的 docker 映像时。这种方法在新版本发布时需要手动更新,并且看起来不像我目前使用的以下配置那样干净:
loadtest:
stage: test
image:
name: loadimpact/k6:latest
entrypoint: [""]
script: k6 run ./loadtests/main.js
两者都按预期工作,这就是为什么我想知道 K6 团队是否知道一些事情并且不推荐使用他们的 docker 镜像?
解决方案
啊,我是 k6 团队中的一员,在这种情况下你是绝对正确的 - docker 方法是更好的方法。我们将修复文档和示例 repo - https://github.com/loadimpact/k6/issues/1196。我不知道他们为什么提倡另一种方法——它可能是来自另一个 CI 系统的旧复制粘贴,它不能像 GitLab CI 那样与容器一起工作。举个例子,实际使用的 k6 版本非常旧 - v0.21.1 于 2018 年 6 月 4 日发布。感谢您指出这一点,我们将在未来几天修复文档和示例,所以现在坚持你的直觉我们过时的文档!
推荐阅读
- javascript - Javascript 获取 API 返回不透明响应
- c# - 这个异步代码可以乱序完成吗?
- python - 为动态称重应用设计过滤器
- cypress-cucumber-preprocessor - 具有相同功能但 click() 仅适用于一个的 2 个场景
- assembly - 为什么在 VFP 的 S0-31 寄存器组视图中只能访问一半的寄存器组?
- javascript - 当我保存文件时,fileReader onLoad 不起作用
- sql - 将十进制查询结果保存为变量 - 必须声明标量变量(INNER JOINS、2 DECIMAL PLACES、PRECISION AND SCALE SET)
- bioinformatics - 用于 Nanopore cDNA-seq 比对的 Minimap2 参考:找不到命令,为什么?
- python - Python中的联立微分方程
- python - 如何统一列名以使用熊猫附加数据框?