使用JMeter执行查询的响应时间与在不同源上执行相同查询时的响应时间不同

时间:2017-04-04 08:48:41

标签: jmeter

我正在使用JMeter来验证MySql查询的性能(响应时间)。 在测试时我发现了以下内容:

  1. 当我从“puTTY command”执行“Mysql Query”(在我的情况下,查询是一个select语句)时,响应时间是0.09s。 请参考下面的截图: enter image description here

  2. 当我使用JDBC Request Sampler执行“same Query”时,响应时间为4974 ms(即4.974 s) 请参考下面的截图: enter image description here

  3. 响应时间有所不同。 我无法理解为什么? 我想到的一件事是:

    要获取实际的查询执行时间,我应该执行以下操作 采样时间(ms) - 连接时间(ms)

    我是对的,我是JMeter的新手,请提供建议。

2 个答案:

答案 0 :(得分:1)

这是因为在MySQL命令行客户端的情况下,已经连接到数据库,并且在JMeter的情况下,查询执行时间包括设置数据库连接所需的时间。

您可以使用相同的"变量名称"添加JDBC PreProcessor来解决这个问题。并执行某种形式的验证查询,即SELECT 1作为主JDBC请求采样器的子代。

默认情况下,JMeter不包括前/后处理器和定时器进入主样本所花费的时间,因此使用此变通方法,您将能够从负载测试结果中排除建立连接所需的时间。

请参阅The Real Secret to Building a Database Test Plan With JMeter文章,了解有关使用JMeter进行数据库负载测试的概念的更多信息

答案 1 :(得分:0)

示例时间表示发送请求和完整收到回复之间的时间,但您应该考虑连接时间。 因此,查询的响应时间为:采样时间 - 连接时间