
5.4.2 测试结果分析
LoadRunner 性能测试结果分析是个复杂的过程,通常可以从结果摘要、并发数、平均
事务响应时间、每秒点击数、业务成功率、系统资源、网页细分图、Web 服务器资源、数
据库服务器资源等几个方面分析,如图 5- 1 所示。性能测试结果分析的一个重要的原则是
以性能测试的需求指标为导向。我们回顾一下本次性能测试的目的,正如错误!未找到引用
源。 所列的指标,本次测试的要求是验证在 30 分钟内完成 2000 次用户登录系统,然后进
行考勤业务,最后退出,在业务操作过程中页面的响应时间不超过 3 秒,并且服务器的 CPU
使用率、内存使用率分别不超过 75%、70%,那么按照所示的流程,我们开始分析,看看本
次测试是否达到了预期的性能指标,其中又有哪些性能隐患,该如何解决。
图 5- 1 性能测试结果分析流程图
结果摘要
LoadRunner 进行场景测试结果收集后,首先显示的该结果的一个摘要信息,如图 5- 2
所示。概要中列出了场景执行情况、“Statistics Summary(统计信息摘要)”、“Transaction
Summary(事务摘要)”以及“HTTP Responses Summary(HTTP 响应摘要)”等。以简要
的信息列出本次测试结果。
图 5- 2 性能测试结果摘要图

场景执行情况
该部分给出了本次测试场景的名称、结果存放路径及场景的持续时间,如图 5- 3 所示。
从该图我们知道,本次测试从 15:58:40 开始,到 16:29:42 结束,共历时 31 分 2 秒。与我们
场景执行计划中设计的时间基本吻合。
图 5- 3 场景执行情况描述图
Statistics Summary(统计信息摘要)
该部分给出了场景执行结束后并发数、总吞吐量、平均每秒吞吐量、总请求数、平均每
秒请求数的统计值,如图 5- 4 所示。从该图我们得知,本次测试运行的最大并发数为 7,总
吞吐量为 842,037,409 字节,平均每秒的吞吐量为 451,979 字节,总的请求数为 211,974,平
均每秒的请求为 113.781,对于吞吐量,单位时间内吞吐量越大,说明服务器的处理能越好,
而请求数仅表示客户端向服务器发出的请求数,与吞吐量一般是成正比关系。
图 5- 4 统计信息摘要图
Transaction Summary(事务摘要)
该部分给出了场景执行结束后相关 Action 的平均响应时间、通过率等情况,如图 5- 5
所示。从该图我们得到每个 Action 的平均响应时间与业务成功率。
注意:
因为在场景的“Run-time Settings”的“Miscellaneous”选项中将每一
个 Action 当成了一个事务执行,故这里的事务其实就是脚本中的 Action。
图 5- 5 事务摘要图

HTTP Responses Summary(HTTP 响应摘要)
该部分显示在场景执行过程中,每次 HTTP 请求发出去的状态,是成功还是失败,都在
这里体现,如图 5- 6 所示。从图中可以看到,在本次测试过程中 LoadRunner 共模拟发出了
211974 次请求(与“统计信息摘要”中的“Total Hits”一致),其中“HTTP 200”的是 209811
次,而“HTTP 404”则有 2163,说明在本次过程中,经过发出的请求大部分都能正确响应
了,但还是有部分失败了,但未影响测试结果,“HTTP 200”表示请求被正确响应,而“HTTP
404”表示文件或者目录未能找到。有朋友可能会问,这里出现了 404 的错误,为什么结果
还都通过了。出现这样问题的原因是脚本有些页面的请求内容并非关键点,比如可能请求先
前的 cookie 信息,如果没有就重新获取,所以不会影响最终的测试结果。
图 5- 6 HTTP 响应摘要
常用的 HTTP 状态代码如下:
400 无法解析此请求。
401.1 未经授权:访问由于凭据无效被拒绝。
401.2 未经授权: 访问由于服务器配置倾向使用替代身份验证方法而被拒绝。
401.3 未经授权:访问由于 ACL 对所请求资源的设置被拒绝。
401.4 未经授权:Web 服务器上安装的筛选器授权失败。
401.5 未经授权:ISAPI/CGI 应用程序授权失败。
401.7 未经授权:由于 Web 服务器上的 URL 授权策略而拒绝访问。
403 禁止访问:访问被拒绝。
403.1 禁止访问:执行访问被拒绝。
403.2 禁止访问:读取访问被拒绝。
403.3 禁止访问:写入访问被拒绝。
403.4 禁止访问:需要使用 SSL 查看该资源。
403.5 禁止访问:需要使用 SSL 128 查看该资源。
403.6 禁止访问:客户端的 IP 地址被拒绝。
403.7 禁止访问:需要 SSL 客户端证书。
403.8 禁止访问:客户端的 DNS 名称被拒绝。
403.9 禁止访问:太多客户端试图连接到 Web 服务器。
403.10 禁止访问:Web 服务器配置为拒绝执行访问。
403.11 禁止访问:密码已更改。
403.12 禁止访问:服务器证书映射器拒绝了客户端证书访问。
403.13 禁止访问:客户端证书已在 Web 服务器上吊销。
403.14 禁止访问:在 Web 服务器上已拒绝目录列表。
403.15 禁止访问:Web 服务器已超过客户端访问许可证限制。
403.16 禁止访问:客户端证书格式错误或未被 Web 服务器信任。
403.17 禁止访问:客户端证书已经到期或者尚未生效。
403.18 禁止访问:无法在当前应用程序池中执行请求的 URL。
403.19 禁止访问:无法在该应用程序池中为客户端执行 CGI。
403.20 禁止访问:Passport 登录失败。

404 找不到文件或目录。
404.1 文件或目录未找到:网站无法在所请求的端口访问。
需要注意的是 404.1 错误只会出现在具有多个 IP 地址的计算机上。如果在特
定 IP 地址/端口组合上收到客户端请求,而且没有将 IP 地址配置为在该特定
的端口上侦听,则 IIS 返回 404.1 HTTP 错误。例如,如果一台计算机有两个
IP 地址,而只将其中一个 IP 地址配置为在端口 80 上侦听,则另一个 IP 地址
从端口 80 收到的任何请求都将导致 IIS 返回 404.1 错误。只应在此服务级别
设置该错误,因为只有当服务器上使用多个 IP 地址时才会将它返回给客户
端。
404.2 文件或目录无法找到:锁定策略禁止该请求。
404.3 文件或目录无法找到:MIME 映射策略禁止该请求。
405 用于访问该页的 HTTP 动作未被许可。
406 客户端浏览器不接受所请求页面的 MIME 类型。
407 Web 服务器需要初始的代理验证。
410 文件已删除。
412 客户端设置的前提条件在 Web 服务器上评估时失败。
414 请求 URL 太大,因此在 Web 服务器上不接受该 URL。
500 服务器内部错误。
500.11 服务器错误:Web 服务器上的应用程序正在关闭。
500.12 服务器错误:Web 服务器上的应用程序正在重新启动。
500.13 服务器错误:Web 服务器太忙。
500.14 服务器错误:服务器上的无效应用程序配置。
500.15 服务器错误:不允许直接请求 GLOBAL.ASA。
500.16 服务器错误:UNC 授权凭据不正确。
500.17 服务器错误:URL 授权存储无法找到。
500.18 服务器错误:URL 授权存储无法打开。
500.19 服务器错误:该文件的数据在配置数据库中配置不正确。
500.20 服务器错误:URL 授权域无法找到。
500 100 内部服务器错误:ASP 错误。
501 标题值指定的配置没有执行。
502 Web 服务器作为网关或代理服务器时收到无效的响应。
并发数分析
“Running Vusers(运行的并发数)”显示了在场景执行过程中并发数的执行情况。它
们显示 Vuser 的状态、完成脚本的 Vuser 的数量以及集合统计信息,将这些图与事务图结合
使用可以确定 Vuser 的数量对事务响应时间产生的影响。图 5- 7 显示了在 OA 系统考勤业务
性能测试过程中 Vusers 运行情况,从图中我们可以看到,Vusers 的运行趋势与我们场景执
行计划中的设置是一样,表明在场景执行过程中,Vusers 是按照我们预期的设置运行的,
没有 Vuser 出现运行错误,这样从另一个侧面说明我们的参数化设置是正确的,因为使用唯
一数进行参数化设置,如果设置不正确,将会导致 Vuser 运行错误。在脚本中我们加入了这
样一段代码:

if (atoi(lr_eval_string("{num}")) > 0){
lr_output_message("登录成功,继续执行.");
}
else{
lr_error_message("登录失败,退出测试");
return -1;
}
上述代码的意思是说,如果登录失败了,就退出脚本的迭代,那么什么原因可能会导致
登录失败呢?就是我们前面参数化的设置,一旦 Vuser 分配不到正确的登录账号,就可能导
致登录失败,从而引起 Vuser 停止运行。所以,从图 5- 7 的表现,可以认为参数化是没有问
题的。
图 5- 7 运行的并发数图
测试脚本中我们还使用了集合点,那么这里还可以看看集合点在场景执行过程中的表
现,点击左边的“New Graph”,出现图 5- 8,展开“Vusers”前的加号,双击“Rendezvous”,
出现集合点的图形后,点击【Close】,关闭添加新图界面。