IMLC.ME
/k6/运行 k6/

k6 常用命令

# 编辑测试用例
echo 'import http from 'k6/http';
import { sleep } from 'k6';

export default function () {
  http.get('https://test.k6.io');
  sleep(1);
}' > script.js


k6 run script.js

# 或者使用 Docker 
docker run -i loadimpact/k6 run - <script.js

常用参数

命令描述
--vusvirtual users(VUs),指定需要模拟的虚拟用户数
--duration测试时常
--insecure-skip-tls-verify跳过 TLS 安全校验

通过环境变量或者代码(配置文件)配置 k6

k6 还支持其他方式配置运行参数——环境变量和 JavaScript 代码。

通过环境变量配置 k6

环境变量大家都很熟悉了,略。

K6_NO_CONNECTION_REUSE=true K6_USER_AGENT="MyK6UserAgentString/1.0" k6 run script.js
通过代码(配置文件)配置 k6
import http from 'k6/http';

export const options = {
  hosts: { 'test.k6.io': '1.2.3.4' },
  stages: [
    { duration: '1m', target: 10 },
    { duration: '1m', target: 20 },
    { duration: '1m', target: 0 },
  ],
  thresholds: { http_req_duration: ['avg<100', 'p(95)<200'] },
  noConnectionReuse: true,
  userAgent: 'MyK6UserAgentString/1.0',
};

export default function () {
  http.get('http://test.k6.io/');
}

又或者通过配置文件:

{
  "hosts": {
    "test.k6.io": "1.2.3.4"
  },
  "stages": [
    {
      "duration": "1m",
      "target": 10
    },
    {
      "duration": "1m",
      "target": 30
    },
    {
      "duration": "1m",
      "target": 0
    }
  ],
  "thresholds": {
    "http_req_duration": ["avg<100", "p(95)<200"]
  },
  "noConnectionReuse": true,
  "userAgent": "MyK6UserAgentString/1.0"
}
k6 --config config.json script.js

你可以参考 https://k6.io/docs/using-k6/options/ 查看每个参数不同形式下对应的名称。

个人而言,环境变量更适合容器化部署(Docker/Kubernetes)的环境下使用。而 JavaScript 的话适合喜欢配置即代码的朋友。

References

Running k6

Options - k6