【问题标题】:JMeter: Performance testing of two different Thread Pools and their comparisonJMeter:两个不同线程池的性能测试及其比较
【发布时间】:2021-07-28 10:40:46
【问题描述】:

我的问题与this 不同,因为它太旧了,可能有新的 JMeter 插件。
我有两个 Java 类 Server1Server2
Server1 类扩展 ThreadPoolExecutor
Server2 类扩展 WaterMarkExecutor
用户可以通过 Socket 连接到这些服务器中的任何一个并提交 Runnable Objects(计算一些随机数)。这些 Runnable 对象被发送作为响应返回给客户。 对于每个可运行对象,我正在计算它的响应时间和它在线程池队列中所做的等待时间。 每台服务器每秒都会向我展示其池大小和吞吐量。我想在图表中显示和比较这两个服务器的性能统计数据。
我不想为此开发自己的库,而是想使用 JMeter。
我想要 JMeter
1) 连接到 Server1
2) 以特定速率发送 Runnable 对象
3) 从 Server1 接收已执行的 Runnable 对象(作为响应)。
4) 在 Charts 上显示每个接收到的 Runnable 对象的响应时间和等待(队列中)。
5) 在单独的图表上显示服务器 1 的吞吐量和池大小。
6)然后我想在服务器 2 上使用相同的实验(工作负载等)并希望 JMeter 比较两台服务器的性能。
现在我的任务是 (1) 这种场景使用JMeter方便吗?或者我应该切换到某个测试平台(或任何其他工具)?
(2)建议我一些有用的JMeter链接,可以指导我这样做。

【问题讨论】:

  • 为什么有人给-1?
  • 请评论!我的问题需要帮助。我的问题有什么问题?为什么它投票 -1 而不是帮助 n 指导我?

标签: java jmeter performance-testing threadpool testbed


【解决方案1】:

从您的问题陈述来看 - 看起来您有一个服务器应用程序,客户端可以通过使用序列化二进制协议发送 java 对象来与之交互。 Jmeter 通常不用于此类测试,因为它通常迎合其他众所周知的协议,如 http、jms、ftp 等。有现成的采样器可用于这些测试。但是,如果您想使用 java 序列化,最好的办法是使用 java sampler 编写自己的请求发送/响应接收代码或使用商业插件(可供试用),如 this

另一种选择可能是编写您自己的测试应用程序并使用那里的统计数据来创建可视化。

【讨论】:

  • 我阅读了一些关于 Beanshell 脚本的教程,该脚本允许 jmeter 与类交互。那么Beanshell脚本有什么用呢?我认为它能让我做到这一点?
  • 你的意思是说JMeter在应用层进行测试。由于 ThreadPoolExecutor 在中间件级别工作,因此 JMeter 无法在没有一些插件的情况下对其进行测试(如您所建议的)。 ???
  • 是的 - 在非常高的层次上,您可以将 JMeter 视为浏览器(功能有限)发送大量 http 请求并接收响应
  • 我上面问题第一行的链接是关于 JMX 插件,如果我的服务器通过 JMX 公开信息,它可以帮助我。我可以使用 JMX 插件来解决我的问题吗?
猜你喜欢
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多