如何快速编写 K6 性能测试脚本

我们除了可以使用 JavaScript 编写 K6 性能测试脚本外,K6 还提供了多种快捷的方式来编写性能测试脚本。

  • 1.使用 K6 提供的 Test builder 测试生成器工具来编写脚本
  • 2.使用 K6 Recorder 录制器录制脚本
  • 3.使用 浏览器开发者工具获取 HAR 文件后使用 har-to-k6 工具将 HAR 文件转换为 K6 脚本

下面将分别介绍这三种方式。

使用 K6 提供的 Test builder 测试生成器工具来编写脚本

k6 的 Test builder 测试生成器提供了一个图形界面,可根据您的输入生成 k6 测试脚本。然后,您可以复制测试脚本并从 CLI 运行测试。

Test builder 测试生成器目前还是一个实验性的功能,可能会在未来的版本中发生变化。大家可以查看官方文档:https://k6.io/docs/using-k6/test-builder/获取更多信息

安装 Test builder 测试生成器

Test builder 不需要安装,它是 Grafana Cloud k6 提供的一个功能,可以在浏览器中使用。

需要注册一个 Grafana Cloud k6 账号,然后登录 Grafana Cloud。

如何进入 Test builder 测试生成器界面:

  • 登录进入 Grafana Cloud 首页

  • 依次点击左侧菜单栏上的 Testing & synthetics—>Performance—>Projects
  • 然后选择 default project 或者新建一个 project,进入到项目的详情页面
  • 点击页面上的 Start testing 按钮,然后再选择页面下的 Test builder,进入到 Test builder 测试生成器界面

提醒:由于 Test builder 测试生成器是 Grafana Cloud 上登录进行使用,可能 Grafana Cloud 存储一些敏感数据,所以建议大家不要在生产环境中使用 Test builder 测试生成器。

如何使用 Test builder 测试生成器

  • 1.在 Test builder 测试生成器界面,点击 Scenario_1 下的 Options 按钮进入到配置页面,配置测试场景的基本信息,如下图所示:

可以看到场景配置页面提供了多种配置选项,可以根据自己的需求进行配置场景名称,执行器类型和不同的 UV 配置。

  • 2.在 Test builder 测试生成器界面,点击 Scenario_1 下的 Requests 按钮进入到 Requests 管理页面,如下图所示:

  • 3.点击页面下的 Request 按钮进入添加请求页面,如下图所示:

  • 4.在添加请求页面,输入请求的 URL 地址,再根据实际情况添加请求的 headers 或请求的 body 或检查点等参数,然后点击页面上的 Create 按钮,完成性能场景的配置,如下图所示:

获取 Test builder 测试生成器生成的脚本

在 Test builder 测试生成器界面,点击页面上的 Script 按钮,页面就会展示出 Test builder 测试生成器生成的脚本,如下图所示:

可以看到 Test builder 测试生成器生成的脚本,是一个完整的 K6 测试脚本,可以直接复制到本地,然后使用 k6 运行该脚本。

运行 Test builder 测试生成器生成的脚本

在 Test builder 测试生成器界面,点击页面上的 Run Test 按钮,页面就会展示出 Test builder 测试生成器生成的脚本的运行结果,如下图所示:

可以看到 Test builder 测试生成器生成的脚本运行的很详细的测试结果信息。

其他 Test builder 测试生成器的功能

  • 也支持导入 HAR 文件生成测试脚本
  • 也支持多个 scenario 场景的配置和一个 scenario 场景的多个请求的配置

更多关于 Test builder 测试生成器的内容,请参考官方文档:https://grafana.com/docs/grafana-cloud/k6/author-run/test-builder/

使用 K6 Recorder 录制器录制脚本

K6 Recorder 录制器是 K6 提供的一个浏览器扩展程序,可以在浏览器中录制用户与 Web 应用程序的交互,并将其转换为 k6 测试脚本。

安装 K6 Recorder 录制器

K6 Recorder 录制器是一个浏览器扩展程序,可以在 Chrome 或 Firefox 中使用。您可以从 Chrome Web Store 或 Firefox Add-ons 页面安装它。

安装完成后,就可以在浏览器中使用 K6 Recorder 录制器了。

如何使用 K6 Recorder 录制器

    1. 在浏览器上点击打开 k6 Recorder 录制器扩展。
    1. 选择保存自动生成的脚本的位置。
    • 要将其保存在本地计算机上,请选择"我不想在云中保存测试"(后面的例子我选择的这个选项)。
    • 要将其保存到任何 Grafana Cloud k6 项目中,请选择“登录”。
    1. 选择保存脚本位置后,在当前浏览器选项卡输入测试网站地址,点击选择开始录制按钮以开始录制当前浏览器选项卡。

图中我打开了谷歌的首页并点击了搜索框,输入了 123,然后点击了搜索按钮,

    1. 点击了 k6 Recorder 录制器的停止录制按钮停止录制。
    1. 将录制的文件取名保存在本地(我这里取名为 record-demo.har)。
    1. 使用 har-to-k6 工具将 HAR 文件转换为 K6 脚本。

har-to-k6 工具是一个命令行工具,可以将 HAR 文件转换为 k6 脚本。需要先通过 npm install -g har-to-k6安装 har-to-k6 工具,然后通过 har-to-k6 record-demo.har -O record-demo.js命令将 HAR 文件转换为 K6 脚本。

    1. 转换后的 K6 脚本部分截图如下所示:
    1. 大家可以根据自己的需求对转换后的 K6 脚本进行修改,然后使用 k6 运行该脚本。
    1. 使用 k6 运行转换后的 K6 脚本,查看运行结果。

更多关于 K6 Recorder 录制器的内容,请参考官方文档:https://grafana.com/docs/k6/latest/using-k6/test-authoring/create-tests-from-recordings/using-the-browser-recorder/

使用浏览器开发者工具和 har-to-k6 工具生成 K6 脚本

除了我们可以使用 K6 Recorder 录制器来录制脚本外,我们还可以使用浏览器开发者工具获取测试请求的 HAR 文件,然后使用 har-to-k6 工具转换 HAR 文件来生成 K6 脚本。

可以获取 HAR 文件的浏览器和工具

我们可以根据实际情况选择一个工具来记录 HAR 文件。市面上的很多浏览器和工具可以以 HAR 格式导出 HTTP 流量。大家常用的是:

  • Chrome 浏览器
  • Firefox 浏览器
  • Microsoft Edge 浏览器
  • Charles 代理抓包工具 (HTTP proxy/recorder)
  • Fiddler 代理抓包工具 (HTTP proxy/recorder)

如何使用浏览器开发者工具获取 HAR 文件

下面是使用 Chrome 浏览器开发者工具获取测试请求 HAR 文件例子:

  • 在 Chrome 中打开新的隐身窗口。 (可以排除登录 cookies 等干扰信息)。

  • 打开 Chrome 开发者工具(按 F12)。

  • 选择网络选项卡 Network。

  • 检查和确认录音按钮(圆形按钮)是否已激活(红色)。

  • 如果想要记录多个连续的页面加载,请选中“保留日志”复选框。

  • 输入测试网站的 URL(如 https://www.google.com/),然后开始执行和后续模拟用户执行的操作(如输入 123 进行搜索)。

  • 完成后,在 Chrome 开发人员工具中,右键单击 URL 并选择“将内容另存为 HAR”。

  • 选择保存 HAR 文件的位置并重命名(如 har-demo),然后点击保存按钮,完成 HAR 文件的保存。

使用 har-to-k6 进行转换 HAR 文件

    1. 安装 har-to-k6 工具
    • 通过 npm install -g har-to-k6命令安装 har-to-k6 工具。
    1. 使用 har-to-k6 工具将 HAR 文件转换为 K6 脚本
    • 通过 har-to-k6 har-demo.har -O har-demo.js命令将 HAR 文件转换为 K6 脚本。
    1. 转换后的 K6 脚本部分截图如下所示:
    1. 大家可以根据自己的需求对转换后的 K6 脚本进行修改,然后使用 k6 运行该脚本。
    1. 使用 k6 运行转换后的 K6 脚本,查看运行结果。

更多关于 HAR 文件的内容,请参考官方文档:https://grafana.com/docs/k6/latest/using-k6/test-authoring/create-tests-from-recordings/using-the-har-converter/

参考文档


欢迎关注软件测试同学的公众号“软件测试同学”,原创 QA 技术文章第一时间推送。