我一直在使用 Artillery 进行一些 HTTP 测试,并且效果惊人。现在我正在尝试使用自定义函数在 WebSocket 上运行测试。我们有一个自定义客户端来连接到 WS 服务,所以我想在函数调用之前打开客户端连接并在所有测试完成后关闭该客户端连接,所以我不需要为每个请求打开/关闭客户端. 我的测试如下:
config:
target: "ws://localhost:8888"
processor: "customTest.js"
phases:
- duration: 300
arrivalRate: 500
name: Sustained load
scenarios:
- name: "Testing WebSocket implementation"
engine: ws
flow:
- function: "wsCustomTest"
wsCustomTest 就像
module.exports = { wsCustomTest }
const { CustomClient } = require("aCustomClient");
async function wsCustomTest(context, ee, next) {
const client = new CustomClient();
try {
await client.open();
await client.send("some information");
} catch (err) {
console.log(err);
} finally {
await client.close();
}
return next();
}