JMeter - 使用服务器计时可视化响应时间 API
JMeter - Visualize response time using Server Timing API
我正在使用 jmeter 进行一些负载测试。我对这两个指标都感兴趣:
- 总响应时间。
- 数据库查询时间。
像往常一样,我的请求执行以下操作:访问服务器,进行一些计算,查询数据库,进行更多计算,然后 return 响应。我对测量解决查询并在 JMeter 上可视化它所花费的时间很感兴趣。
为此,我使用了服务器计时响应 API,也就是说,我在我的响应中设置了一个 header 来注释那个时间。像这样:
Server-Timing: miss, db;dur=53, app;dur=47.2
有关详细信息,请查看 official documentation。现在,我的问题是,如果 JMeter 甚至可以做到这一点,我也不会这样做。我认为也许在 JSR223 侦听器上我可以做到这一点,但我不确定。知道如何获取这些值并以某种方式表示它们吗?
您可以使用合适的 Post-Processor 提取它,例如 Regular Expression Extractor 配置如下:
它将从响应中提取值 53
并将其存储到 dbdur
JMeter Variable
下一步是将此 dbdur
声明为 Sample Variable,这可以通过将下一行添加到 user.properties 来完成 文件:
sample_variables=dbdur
最后,您可以在 HTML 报告仪表板中将变量值绘制为自定义图表,就像在 Generating customs graphs over time 章节中描述的那样,只需更改示例 ts-hit
将变量值采样到您的 dbdur
并相应地修改 axis/chart 标题。
我正在使用 jmeter 进行一些负载测试。我对这两个指标都感兴趣:
- 总响应时间。
- 数据库查询时间。
像往常一样,我的请求执行以下操作:访问服务器,进行一些计算,查询数据库,进行更多计算,然后 return 响应。我对测量解决查询并在 JMeter 上可视化它所花费的时间很感兴趣。
为此,我使用了服务器计时响应 API,也就是说,我在我的响应中设置了一个 header 来注释那个时间。像这样:
Server-Timing: miss, db;dur=53, app;dur=47.2
有关详细信息,请查看 official documentation。现在,我的问题是,如果 JMeter 甚至可以做到这一点,我也不会这样做。我认为也许在 JSR223 侦听器上我可以做到这一点,但我不确定。知道如何获取这些值并以某种方式表示它们吗?
您可以使用合适的 Post-Processor 提取它,例如 Regular Expression Extractor 配置如下:
它将从响应中提取值
53
并将其存储到dbdur
JMeter Variable下一步是将此
dbdur
声明为 Sample Variable,这可以通过将下一行添加到 user.properties 来完成 文件:sample_variables=dbdur
最后,您可以在 HTML 报告仪表板中将变量值绘制为自定义图表,就像在 Generating customs graphs over time 章节中描述的那样,只需更改示例
ts-hit
将变量值采样到您的dbdur
并相应地修改 axis/chart 标题。