首页 > 解决方案 > Jmeter-如何捕获从请求发送到在数据库中更新的时间?

问题描述

我有一个 API https://xxxx-1-0-dev.us-e1.io/api/as3哪个文件将文件从 aws s3(基于提供的文件路径)发送到目标系统。在发送到目标系统时,还涉及到其他几个 API。API1(我们发送文件的地方)---> API2----> API3 实际发送文件到目标系统。我需要测量从我们点击第一个 API1 到 API3 将文件发送到目标所花费的时间。一旦我们点击 API1,我们会从 API1 获得 transactionID 作为响应,它将到达 API2,一旦 API3 将文件发送到目标,它会将 transactionID 的状态更新为在 DB 中提交的有效负载。我可以测量每个请求从我们发出请求到事务在数据库中更新的时间吗?

但我需要这个登录报告。你能帮我解决这个问题吗?

标签: jmeter

解决方案


听起来您需要以下内容:

  1. 执行__time() 函数以在您点击 API 1 之前(或在它之后,取决于您要测量的内容)获取时间戳并将其保存到 JMeter 变量中,即${before}
  2. 在 txn 进入数据库后再次执行 __time() 函数(或从数据库中获取时间戳)并将其存储到 JMeter 变量中,即${after}
  3. 使用__longSum 函数将结果减去并将结果存储到名为 ie 的变量${before}${after}${delta}

这应该是您正在寻找的价值,请参阅Apache JMeter Functions - An Introduction article 以熟悉 JMeter Functions 概念

展望未来,您可以:

  1. 将其声明delta示例变量,以便将其添加到 .jtl 结果文件中
  2. 在HTML 报告仪表板中绘制delta变量值

推荐阅读