gpt4 book ai didi

load-testing - 使用 k6 测试 graphql 订阅

转载 作者:行者123 更新时间:2023-12-02 18:54:12 25 4
gpt4 key购买 nike

是否可以使用 k6 框架测试 graphql 订阅?我尝试这样做,但没有取得多大成功。也尝试用 k6 websockets 来做,但没有帮助。谢谢

最佳答案

Grapqhql Subscription 基于 Websockets 所以理论上可以使用 k6 WebSocket 实现。

订阅也可以引用文档here .您还可以使用开发人员工具中的 playground 和 Networks 选项卡来确定发送到服务器的消息/请求。

我是这样实现的:

import ws from "k6/ws";

export default function(){
const url = "ws://localhost:4000/graphql" // replace with your url
const token = null; // replace with your auth token
const operation = `
subscription PostFeed {
postCreated {
author
comment
}
}` // replace with your subscription
const headers = {
"Sec-WebSocket-Protocol": "graphql-ws",
};

if (token != null) Object.assign(headers,{ Authorization: `Bearer ${token}`});

ws.connect(
url,
{
headers,
},
(socket) => {
socket.on("message", (msg) => {
const message = JSON.parse(msg);
if (message.type == "connection_ack")
console.log("Connection Established with WebSocket");
if (message.type == "data") console.log(`Message Received: ${message}`)
});
socket.on("open", () => {
socket.send(
JSON.stringify({
type: "connection_init",
payload: headers,
})
);
socket.send(
JSON.stringify({
type: "start",
payload: {
query: operation,
},
})
);
});
}
);
}

希望对您有所帮助! 🍻

关于load-testing - 使用 k6 测试 graphql 订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66410400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com