k6chaijs
注意
此库的源代码可在 grafana/k6-jslib-k6chaijs GitHub 仓库中找到。
k6chaijs
是一个基于 ChaiJS 在 k6 中提供 BDD 断言的库。您可以将 k6chaijs
用作 check 和 group 的替代方案。
使用此库,您可以获得以下特性:
- BDD 风格的断言,语言更具表现力
- 可链式断言
- 更强大的断言函数,例如:
deep
,nested
,ordered
等。 - 自动断言消息
- 异常处理,提升测试稳定性
安装
此库托管在 jslib 上,可以直接在您的 k6 脚本中导入。
import { describe, expect } from 'https://jslib.k6.io/k6chaijs/4.5.0.1/index.js';
或者,您也可以使用本地存储的此文件副本。源代码可在 GitHub 上获取。
示例
以下示例测试了一个假设的 HTTP API,该 API 返回一个 JSON 对象数组。复制以下代码,并将其保存为 script.js
import http from 'k6/http';
import { describe, expect } from 'https://jslib.k6.io/k6chaijs/4.3.4.3/index.js';
export default function testSuite() {
describe('Fetch a list of pizza names', () => {
const response = http.get('https://quickpizza.grafana.com/api/names');
expect(response.status, 'response status').to.equal(200);
expect(response).to.have.validJsonBody();
expect(response.json('names').length, 'number of names').to.be.above(1);
});
}
当您使用 k6 run script.js
运行此测试时,测试结束时的输出显示
█ Fetch a list of public crocodiles
✓ expected response status to equal 200
✓ has valid json body
✓ expected number of crocs to be above 4
如果您熟悉 k6,其结果与使用 check 和 group 相同。请注意,expect 可能会添加或扩展断言消息。
API
API | 描述 |
---|---|
config | 更改 k6chaijs 行为的选项。 |
describe | group 的一个包装器,它捕获异常以允许测试执行继续进行。它返回一个布尔值来指示其所有 k6chaijs 断言的成功。 |
expect | check 的一个包装器,提供 BDD 风格的断言。 |
插件
可以使用 Chai 插件扩展默认功能。要使用插件或构建带有插件的 Chai 版本,请遵循此示例中的说明。