使用 k6 测试 graphql 订阅

2024-05-09

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


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

您也可以参考订阅文档here https://github.com/enisdenjo/graphql-ws/blob/master/PROTOCOL.md。 您还可以使用开发人员工具中的 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,
            },
          })
        );
      });
    }
  );
}
  

希望这可以帮助! ????

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 k6 测试 graphql 订阅 的相关文章

  • 如何为 Visual Studio 云测试的每个核心代理使用不同的 .csv?

    我正在尝试使用 Visual Studio Cloud Test 执行简单的 REST API 负载测试 https www visualstudio com en us docs test performance testing gett
  • 使用 Locust 每秒预定义请求数

    在查看负载测试工具时 我发现了 Locust 并立即发现它对于 Python 爱好者来说很有吸引力 但我不完全确定我是否可以用它实现以下场景 我的任务是使用真实流量对 REST API 进行负载测试 我从生产 Apache 日志中提取了 5
  • MSTest - 运行“LoadTests”并将结果写入 SQL Server 数据库

    如果您想配置 VS 负载测试 以将结果写入数据库服务器 您可以使用遵循指示 如果您想通过 powershell 在单独的计算机上运行 负载测试 想想TFS 2018发布步骤 你使用遵循指示 我想在多台机器上以自动化的方式执行这两项操作 但是
  • JMeter - 进行负载测试时主从配置相对于所有主设备的优势

    关于 JMeter 用于负载测试的分布式配置 不在云中 我可以在不同的机器上设置 X JMeter master 并使用共享文件夹通过共享文件执行它们 好处是 每个主机都不会注意到其他主机 并且可以在需要时使用动态 不同的属性关闭和启动 每
  • Node.js 服务的压力测试[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我正在使用node js
  • 我可以将 NUnit 3 测试添加到 Visual Studio 2015 负载测试中吗?

    我有一个用 C 编写的测试自动化框架 其中单元测试用NUnit 不是MS测试 我创建了一个新的Visual Studio 负载测试配置 我希望能够将这些 NUnit 测试添加到负载测试中 但是 Visual Studio 2015 没有列出
  • 使用 k6 时如何向 influxdb 进行身份验证

    我使用 k6 作为负载测试工具 我想将数据写入 influxdb 一切正常 除了我不知道如何发送 influxdb 的用户凭据 Example k6 exe run out influxdb http localhost 8086 stre
  • Web服务器负载测试工具[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 您能否推荐一个软件工具 具有 GPLv 许可证 来执行 Web 服务器的负载测试 Curl 将允许您轻
  • 无需浏览器的 Selen 测试

    我使用 Selenium RC 进行测试 现在要执行负载测试 我想运行并行测试用例 有没有什么方法可以在不打开浏览器的情况下运行它们 Chrome 现在有无头模式 op webdriver ChromeOptions op add argu
  • 我可以为我的 RDS 实例使用 Amazon ELB 来实现负载均衡吗?

    我有两个问题 我可以在 RDS 实例上使用 ELB 来实现负载均衡吗 我可以在 EC2 实例上安装多个服务器并为所有服务器运行单个 ELB 实例吗 1 如果您的意思是只有一个 RDS 实例 那么在它前面的负载均衡请求就没有意义 如果您的意思
  • 如何使用 --header 选项通过 Siege 发送 cookie?

    我刚刚开始使用 Siege 在新的 Web 服务器上进行负载 压力测试 我正在尝试测试我的资源 性能最重的脚本 但该脚本需要cookie 在 siege 中使用 header 选项的正确格式是什么 我尝试过这个但没有运气 siege hea
  • 测试 Windows Azure Web 应用程序的最大用户负载

    我正在对新兴 Web 技术进行一些研究 并创建了一个非常简单的 Azure 网站 该网站使用 Web 套接字和 mongo db 作为数据库 我已经设法让所有组件一起工作 现在必须对应用程序执行负载测试 主要标准是应用程序可以支持的最大用户
  • Locust:如何让 Locust 运行特定的时间

    官方的蝗虫文档 http docs locust io en latest 讲述如何编写无限期运行的简单 Locust 任务 无法找到如何运行持续特定时间的负载 以便测试在指定的时间间隔后自动停止 我不需要从网络界面获得它 命令行 代码选项
  • 在 Apache JMeter 中配置响应超时

    我试图检查特定 HTTP 请求的响应时间是否超过 30 秒 如果是 则将其标记为失败并停止线程 有时我可以看到响应时间接近 80 秒 没有浏览器等待服务器响应那么长时间 我发现了以下三种在 JMeter 中设置超时值的方法 但这让我很困惑
  • 负载测试 ZeroMQ (ZMQ_STREAM) 以查找它可以处理的最大并发用户数

    有没有人有任何实际场景对 ZMQ 套接字进行负载测试以获得最大数量 他们可以处理的 并发用户 不是吞吐量 看起来 ZeroMQ 在 FD 限制方面存在一些严重问题 场景是 有许多 Web 服务器框架吹嘘它们可以处理数百万个并发用户 现在 如
  • Azure AppInsights - Http 结果代码故障

    我们已经在Azure中配置了API WebApp 然后连接了App Insights Log以获取失败时的详细信息 我们正在 APIM 上进行负载测试 有一次 我们开始收到 500 错误代码 这意味着应用程序级别存在问题 当我们查看详细信息
  • X-RequestDigest:运行共享点页面记录的 Web 测试时出现错误

    我已成功记录并重播我的 sharepoint webtest 但一两周后 当我在 Visual Studio 中重播它时 我收到 403 FORBIDDEN 错误 我了解 X RequestDigest 的证书 令牌详细信息已过期 需要在我
  • 如何使用 JMeter 发送动态 URL 参数

    我想将 URL PATH 发送为 controller 1 1 controller 2 2 start 但是参数 2controller 2是动态的 如何发送该参数 使参数成为变量 controller 2 controller2 par
  • 使用 Postman REST/RESTFUL 工具进行负载测试

    我已将插件 Postman 添加到 Chrome 浏览器以对我的 API 进行负载测试 但我对如何使用 Postman 工具进行负载测试一无所知 我的疑问是如何在此工具中模拟 虚拟用户 Postman has a Collection Ru
  • Rest 服务器(Play Framework)在负载测试期间出现“Read Timed out”异常

    我们正在使用 Play Framework 在 REST 服务器上运行重负载测试 jmeter 350 个线程 35M 总请求 并在大约 2 小时后遇到以下错误 我们删除了其他组件 以便 request 只是接受请求而不执行任何操作 任何人

随机推荐