gpt4 book ai didi

sockets - jmeter - 异步 TCP 采样器选项?

转载 作者:行者123 更新时间:2023-11-28 21:31:36 26 4
gpt4 key购买 nike

我希望有人有一些异步测试经验以及如何使用 Jmeter 完成它。如果有人知道,但不使用 jmeter,也可以选择其他选项,但更熟悉 jmeter 并且上下文用于负载/压力测试。

定义:例如,发送原始 TCP 文本数据流,其中“ session ”id 在数据流本身中。一切都是异步的,就返回而言可能是“无序的”。

示例:因此,给定 5 个线程的 10 个数据流样本,结束信号为\n,在第一个响应之前,所有 10 个数据流都可以通过同一个 TCP 端口发送,并且响应可以在任何订单。

session00001datasenthere\n

session00002datasenthere\n

session00003differentdata\n

...

session00010moredifferentdata\n

使用 Jmeter,我确实想根据 sessionid(例如本例中流的数据字节 8-12)测量每个给定数据流返回所需的时间。目的是使用 Jmeter 来做它擅长的事情,跨多台机器进行负载/压力测试,但足够智能以理解异步 TCP 数据(与您的正常 HTTP session 请求/响应相反)。

约束是在任何给定的测试 session 期间,“sessionid”至少在返回响应流之前是唯一的(出于逻辑原因,否则无法实现 ;-)。

提前致谢,为了确保理解意图,这是为了利用 Jmeter 可用的所有现成报告/监听器/插件/分析。

编辑:被测服务器的实现是 Netty,与 Telnet 示例没有什么不同。如果有一个测试 Netty 示例 Telnet 服务器的 Jmeter 示例,也可能有帮助。

-D

最佳答案

我认为你的选择是实现 Java Request Sampler .

您可以为您的 Java Request Sampler 定义以下参数实现:

  • 服务器主机
  • 服务器端口
  • 连接标识符(见后)
  • session 标识符
  • 数据

仔细阅读 JavaSamplerClient 的文档了解生命周期。每个线程都有一个采样器实例。

然后在您的实现中,您需要注意以下事项:

  • 创建一个连接处理程序类,它为每个连接标识符打开套接字。使用相同连接标识符的测试用例将通过相同的套接字发送数据。此连接处理程序应负责以同步方式发送数据并将响应返回给正在等待它的适当实例
  • 在您的采样器中,您必须创建一个连接处理程序(或者每个服务器一个,或者每个端口一个,如您所愿)
  • 当采样器发送一些文本时,您将它交给连接处理程序,采样器等待响应到来。

通过这种方式,您可以通过实现这个在采样器实例之间共享的连接处理程序,简单地将异步问题转换为同步问题。但是要注意实现,以确保您的线程编程不会因某些测试工具方面的瓶颈而伪造结果。

关于sockets - jmeter - 异步 TCP 采样器选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19365278/

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