docker - K6 - docker 容器中的并行测试
问题描述
我有一个关于 K6 并行测试的概念性问题。我想并行运行多个测试脚本。如果我选择使用如下所示的 docker compose 文件运行它们,我们可以说它是真正意义上的并行吗?据我了解,docker compose 中的每个 k6 容器都是一个带有自己处理器的独立单元?那是对的吗?那么这可以称为并行测试吗?
version: '3'
services:
k6_test:
image: loadimpact/k6
container_name: test_k6
volumes:
- ./:/specs
command: run /tests/test_spec.js
ports:
- "6565:6565"
k6_test2:
image: loadimpact/k6
container_name: test2_k6
volumes:
- ./:/specs
command: run /tests/test2_spec.js
ports:
- "6566:6566"
解决方案
您将拥有两个独立的容器,并且测试将能够并行运行。他们将使用正常的 Linux 内核调度机制,不一定有“自己的处理器”;即使您只有一个物理内核,此设置也可以正常工作,并且您可以并行执行。
话虽如此,一种更典型的称为“并行测试”的方法是拥有一个能够自行并行运行多个测试的测试运行器。例如,许多单元测试系统都有一个“并行测试”选项,可以在多个线程上运行测试。由于 k6 更像是一个负载测试工具,它能够启动多个并发 HTTP 请求,而无需您展示的那种手动设置;k6 文档中的负载测试和压力测试描述了一些典型设置。
推荐阅读
- c++ - C++ 查找数组中最大元素的索引,即使有多个最大元素
- express - 第一方移动应用的身份验证方法?
- c# - 从英文字母的一组字符中找到一个给定的四位数单词
- python - 为什么 python linter 检测不到不存在的方法名称?
- python - 有没有办法从类中的方法创建一个函数
- sql - 如何将列类型转换为 XML 并提取雪花上的值?
- wordpress - 当我从 WordPress 管理面板手动创建用户时,如何使电子邮件字段不需要?
- java - 为什么我不能用一种方法在 android studio 上的一个按钮中更改 2 种颜色
- javascript - 即使调用了 setState,Chart.js 也无法刷新
- javascript - 将变量值发送到其他 javascript 文件