- 0
- 0
- 约3.2千字
- 约 2页
- 2026-02-06 发布于浙江
- 举报
用事实说话——解析事务响应时间包括的细分时间
08年春节前和zee的通话中被告知LoadRunner中的事务响应时间不包括ReceiveTime,当时甚为
惊诧,因为我一直是认为事务响应时间应该包括DNS
Resolution、Connection、First
Buffer、Receive、ClientTime等时间的。如果LoadRunner结果分析中的事务响应时间的确不包
括ReceiveTime,那也就意味着我曾写过的许多系统性能报告很多都将成为废纸。但是zee也没
有拿出足够的证据证明他的理解是绝对正确的。
为了明确事务响应时间是否包含Receivetime在内,我在网上查了很多帖子和文章,这一查吓
我一跳,因为网络上对事务响应时间以及其细分时间的理解存在很大的分歧,而且并没有统一的或
者一致的观点和说法。我罗列几种常见理解分歧:
1.
Clienttime指客户端发出请求前的延时(客户端忙碌未能及时将请求发出),还是收
到请求后的客户端延迟(客户端IE会执行一些javascipt脚本或其他页面初始化动作)
FirstBuffertime是否包括DNSResolutionTime和ConnectionTime,有人甚至认
2.
为FirstBuffertime就是事务响应时间,因为FirstBufferTime在LoadRunner中是这样解释
的:DisplaystheamountoftimethatpassesfromtheinitialHTTPrequest(usuallyGET)
untilthefirstbufferissuccessfullyreceivedbackfromtheWebserver.Thefirst
buffermeasurementisagoodindicatorofWebserverdelayaswellasnetworklatency.如
果这里的HTTPrequest理解为客户端提交HTTP请求,那么他的这种理解还真是有一定道理的。
3.
AverageTransactionResponseTime是否包括Receivetime和Clienttime
先说第一个问题,ClientTime的理解。按kernzhang的说法,这一时间指收到请求后的客户端延
迟(客户端IE会执行一些javascipt脚本或其他页面初始化动作),我自己也是这样理解的。但是
在LoadRunner中并没有找到足够的说明来解释这一点,只是说是客户端的延迟。
再说第二和第三个问题。第二和第三其实是同一类问题,我没有找到相关的足够的证据说明那个对
那个错,因此我设计了如下的一个试验。
思路:Analysis中有两张表,AverageTransactionResponseTime和PageDownloadTime
Breakdown(OverTime),而且能生成原始数据,生成AverageTransactionResponseTime中的
RawData,然后生成PageDownloadTimeBreakdown(OverTime)中的RawData,将相同时间点的
事务响应时间和事务的各种时间做一个比较。例如从开始执行起到2.035秒有一个action事务,响
应时间为3秒,然后到PageDownloadTimeBreakdown(OverTime)中找2.035秒action事务的
各个时间,包括DNSResolution、Connection、FirstBuffer、Receive、ClientTime,对比这些
数据做对比分析,主要是将细分时间累加,然后和事务响应时间做比较。
脚本:访问录制在Action中(为了分析的简便,我只保留了一个web_url,删除了另外一个
web_url)
场景:Vusers:1
RunMode:Rununtilcomplete
ThinkTime:lgnore
RunLogic:run*20action
试验一:
运行时设置中将“Simulateanewuseroneachiteration”的选项取消,执行测试。对照
AverageTransactionResponseTime和PageDownloadTimeBreakdown(OverTime)的数据。
结果:除第一个事务外,发现FirstBuffer+Receive+ClientTime=事务响应时间;
原创力文档

文档评论(0)