1、loadrunnerv12 测试案例性能分析软件测试已逐渐成为软件开发过程中的必不可少的环节,随着功能测试的必要性被普遍认同,自动化测试以及性能测试也逐渐崭露头角。性能测试是指在一定的负载情况下,系统的响应时间等特性是否满足特定的性能需求。目前常用于功能测试的工具有:HP LoadRunner(简称 LR,商用软件):是一款适用于各种体系架构的自动化性能测试工具。LR 的测试对象是整个企业的系统,通过模拟实际用户的操作行为和实时性能监控,来帮助你更快地查找和发现性能瓶颈。IBM Rational Performance Tester(简称 RPT,商业软件) :也是一款性能测试工具,适用于基于
2、 Web 的应用程序的性能和可靠性测试。RPT 将易用性与深入分析功能相结合,从而简化了测试创建、负载生成和数据收集,以帮助确保应用程序具有支持数以千计并发用户并稳定运行的性能。Apache JMeter(开源软件):基于 Java 的压力测试工具。用于对软件做压力测试,它最初被设计用于 Web 应用测试但后来扩展到其他测试领域。 它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器等。相比于其他测试工具,LoadRunner 能支持更广泛的协议和技术,能测试各种 IT 基础架构,为用户的特殊环境提供特殊的解决方案。本文将以当前最
3、新的 LoadRunner12 社区版来进行阐述。相比于之前版本,LoadRunner12 社区版主要有以下新特性:支持 50 个免费虚拟用户。支持基于云平台的负载生成器。支持 HTML5 及 SPDY 协议的脚本录制。支持 IE11、Chrome 以及 Firefox 浏览器,支持 Win8.1 及Win2012 Server 操作系统。性能测试工具 Loadrunner点击下载本文将从如下几个方面阐述 LoadRunner 的优势LoadRunner 组件LoadRunner 工作原理基于 LoadRunner 的测试案例LoadRunner 组件LoadRunner 主要由以下 4 个部
4、分组成:脚本生成器(Virtual User Generator) 简称 VuGen,提供了基于录制的可视化图形开发环境,可以方便简洁地生成用于负载的性能测试脚本。负载生成器(Load Generator) 简称 LG,负责将 VuGen脚本复制成大量虚拟用户对系统形成负载。负载调度监控器(Controller) 负责对整个负载的过程进行场景设置,指定负载的运行方式和周期,同时提供了系统监控的功能。数据收集分析器(Analysis) 通过 Analysis 我们可以对负载生成后的相关数据进行整理分析,从而定位性能瓶颈。LoadRunner 工作原理首先通过 VuGen 来录制模拟用户行为的脚本
5、;然后根据性能测试目标,在 Controller 中设计场景,指定负载生成的方式(如 LG 使用数,并发用户数,执行时长等); 接着执行场景并监控被负载服务器的性能指标;待场景执行完毕,调用Analysis 来对生成的数据进行分析,最后得出性能测试报告。基于 LoadRunner 的测试案例使用 LoadRunner 进行性能测试,大体可分为 3 个步骤:1.用户行为模拟 性能测试的第一步也是最重要的一步,就是生成虚拟用户脚本(Vuser Script)。VuGen 是基于录制-回放的工具,提供了整个脚本的开发环境。当你在应用程序中执行业务流程时,VuGen 会将你的操作录制下来,自动转换成脚
6、本,作为用户行为的模拟。多数情况下,我们会在录制生成的脚本上根据需求进行修改。录制流程主要包括以下协议选择、录制选项设置、开始录制、插入命令、停止录制。对一般 B/S 架构的 Web 应用,选择 Web - HTTP/HTML 协议就可以了。如果不能确定目标系统使用了哪些协议,可以使用 Protocol Advisor 来进行协议分析。选择协议之后,进行录制选项设置,再点击红色按钮开始录制脚本。可以看到,Vuser Script 脚本由以下三部分组成:vuser_init: 虚拟用户的初始化函数,一般将用户初始化的操作放在这里,如登录操作,只会运行一次。Action: 虚拟用户要做的业务操作,
7、也就是测试内容的主体。可以迭代多次。vuser_end: 与 vuser_init 相对应的收尾工作,如退出登录操作,只会运行一次。开始录制脚本后,可以在 recording 界面进行执行插入事务、插入集合点、插入注释以及结束录制等命令。完成录制后,脚本通常会包含 web_url()等函数。Vuser Script 脚本中常用函数有:web_add_cookie():负责为 Vuser 脚本添加一个 cookie 信息。web_url():可以模拟用户的 HTTP Get 请求。web_submit_form():基于页面表单模拟用户的 HTTP Post请求。该函数会自动检测在当前页面上是否
8、存在 form 表单,然后将表单中数据进行传送。web_submit_data():无需页面 form 支持就可以模拟用户的HTTP Post 请求。web_custom_request():可以模拟用户的 HTTP Get 以及 Post请求。紧接着,点击 replay 按钮进行回放验证。我们可以把服务器返回的响应内容保存为参数,在请求时使用该参数,可实现动态数据。如常见的系统登录功能,在登录后服务器会返回 SeesionID,登录后的操作都需要提交该 SessionID 以确认身份。使用Vugen 录制脚本时,将会记录服务器返回的 SessionID 并在下一个请求中发给服务器。事务函数可
9、以标记完成该业务所需要的操作内容。通过在业务操作开始前添加一个事务开始的计数器,在业务操作结束后添加一个事务结束的计数器,VuGen 可以自动计算出函数间的时间差,即事务响应时间。添加事务主要涉及以下 2 个函数:事务开始函数:lr_start_transaction(“事务名”)事务结束函数:lr_end_transaction( “事务名” ,LR_AUTO)另外事务还支持事务嵌套:lr_start_sub_transaction(“子事务名”,“父事务名”)lr_end_sub_transaction(“子事务名”,“父事务名”)一般地,录制得到的脚本都会包含思考时间。思考时间是Load
10、Runner 提供的用于模拟用户等待的方式。在性能测试时只有启用思考时间,才能真正地按照用户的操作速度来完成请求,得到真实情况下的负载数据;否则则是全负载下的理论峰值数据。思考时间函数:lr_think_time()集合点函数能让虚拟用户集合在同一时间点上来进行操作,帮助生成有效可控的事务并发。集合点有以下三种集合策略,一般可以使用 c 策略来明确指定并发数。a.当百分之多少的用户到达集合点时继续执行脚本b.当百分之多少的运行用户到达集合点时继续执行脚本c.当多少个用户到达集合点时继续执行继续集合点函数:lr_rendezvous()当我们录制完脚本后,需要对脚本进一步改进,通过参数化来确保脚
11、本能够动态运行,从而更加真实地模拟真实用户操作。参数化的步骤主要包括:选择要参数化的内容;设置参数取值以及参数更新方式;回放脚本验证参数值等。参数更新方式有顺序取值、随机取值、唯一取值三种类型,这里就不一一介绍了。选择要参数化的内容,右键菜单选择“Replace with a Parameter”,点击“ Create New Parameter”。设置参数取值,参数类型可以是 File 类型、Table 类型、Random Number 类型、Date/Time 类型等。这里使用 Table类型,同一行中列名为 username 及 password 的记录将作为表单中用户名和密码的动态参数
12、值。除了手动添加参数值外,也可以通过 ODBC 方式从 DB 中获取参数值。参数化后,脚本中的 username 及 password 字段取值已经不是静态值了,而是由“”包围起来的动态参数值。2.场景设计与监控当 Vuser Script 开发完成后,使用 Controller 将这个执行脚本的用户从单人转化为多人,从而模拟大量用户操作以形成系统负载。场景是一种模拟大量用户操作的技术手段,通过配置和执行场景向服务器产生负载,监控系统的各项性能指标。通过对场景的设计,可以生成和用户需求相同的真实负载。场景分为目标场景和手动场景。一般地,我们使用使用自动场景来进行验收测试,使用手动场景来定位性能
13、瓶颈。通过设置一个运行目标,Controller 会自动逐渐增加负载,测试系统能否稳定达到预期目标。如果达标则说明系统的性能符合测试目标,否则提示无法达标。自动场景是定性型性能测试,我们只关心最后性能测试的结论是否符合性能需求。自动场景中提供了 5 种目标。手动场景中,可以通过增减Vuser 来模拟真实的用户请求,完成负载的生成。手动场景是定量型性能测试,通过观察在负载增加过程中系统各个组件的变化情况,来定位性能瓶颈。完成场景设计后,点击 Run 标签页切换到场景监控主界面。在左侧 Scenario Groups 中列举了所有 Vuser 的运行状态;在右侧 Scenario Status 中
14、列举了当前场景的运行情况;在下方Available Graphs 中列举了所有可监控的计数器类型,通过添加计数器实例可以让 LR 监控其性能数据(如 CPU、内存使用率等)。我们可以监控本地服务器或远程 Windows/Linux/AIX 服务器(监控 Linux/AIX 需要先安装 rstatd 组件)以及Weblogic/WebSphere 等应用服务器的性能数据。点击 Start Scenario 按钮执行场景,可以看到交互计划图开始变化,监控主界面的 Vuser 状态开始变化,Running Vuser 开始增加,Transaction Graphs 等计数器开始显示数据。点击 Vus
15、ers 按钮可以查看当前所有 Vuser 的状态,并可以在执行过程中通过 Add Vuser 及 Stop Vuser 来动态调整负载情况。选中 Vuser,右键选择 Show Vuser 可以查看该 Vuser真实的运行情况。3.数据分析待场景执行完毕后,点击 Results-Analyze Results 来启动数据收集分析器,如图 31。它会导入场景数据并生成性能测试报告。Summary Report 包括了场景统计信息、事务摘要、HTTP 响应摘要等信息;Graphs 默认只包含最基本的一些计数器数据图,可以通过右键 Add New Item-Add New Graph 来添加你需要的计数器。在 Analysis 中经常需要和各种 Graphs 打交道,这就涉及到图的设置,常用设置包括:
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。