哪个时间是log timeStamp

时间:2015-11-17 13:31:27

标签: jmeter

我有来自负载测试的以下测试结果 -

steady_clocks

显式地,对API2的调用失败,两次调用之间有1个延迟。 我知道标签timeStamp是epoch的时间,但它是从客户端发出请求的时间还是收到最后一个响应字节的时间? 如果是后者,那么如何找到从客户端发出请求的时间?

2 个答案:

答案 0 :(得分:2)

第一个timestamp是请求开始时间。 latency是从收到第一个响应字节的时间戳开始的时间。 elapsed是从收到完整回复的时间戳开始的时间。所以在你的情况下,

444:API1请求消失了。 9毫秒后,在 453:接收到API1响应的第一个字节和最后一个字节 - 因为延迟与已过去相同 454:API2请求已经发出

如果您在JMeter中使用常规线程组和两个采样器,则在完全接收到对第一个采样器的响应之前,不会发送第二个请求。您的问题似乎不是纯粹的调用序列。

==

澄清@Mike所说的“请求是在两行或三行代码后发送的。”:

时间戳是JMeter采样器代码标记请求启动事件并创建日志条目的时间。之后,JVM必须执行几行代码才能使用Apache HTTPClient对象创建TCP连接,组装HTTP请求,然后通过可能的几个TCP数据包发送HTTP数据包。在任何现代系统中,时间戳和实际请求之间的差异将小于几毫秒。如果这个时间对你来说很重要,那么JMeter并不是真正合适的工具,你应该使用像Wireshark这样的网络嗅探器来查找实际传输第一个数据包的时间戳。

答案 1 :(得分:1)

正如您所说,时间戳是API启动时间,也许请求是在两行或三行代码后面发送的。发送请求时,您无法获得准确的时间戳。据我所知,它不会影响你的表现。 如果您只想测试请求发送和返回响应之间的时间长度,则需要创建另一个API。