当项目需要你的时候,开发人员可能充当不同的角色。比如身边的测试人员说,我不会压力测试。但是现在客户又需要压力测试,那怎么办呢?到底怎么办呢?做为就技术人员的你,这个时候就的勇敢的站出来- 开始研究loadrunner,对框架进行压力测试。
Loadrunner 简介:
LoadRunner,是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。通过使用 LoadRunner,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。 LoadRunner是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。(摘自:百度知道)
LoadRunner 在网络上以及HP已经提供了相当多的的技术资料。网络上也有很多这方面的资料。至于详细的使用说明本文将不再一一阐述。
本文重点只是给大家分享我在使用loadrunner过程中曾经被困扰过的环节。
一、安装:
loadrunner 的安装需要注意:如你您是XP系统可以安装 loadrunner9.5如果想录制IE8脚本,您需要安装IE8插件。注:这个我自己没试
过,只是有安装过XP的同事有提及。具体的插件安装包,百度一下很容易找到。需要着重强调的是,如果您是win7操作系统,我亲身经历的感受就是装了loadrunner9.5 再装IE8插件,loadrunner 依然还存在各种问题、各种不稳定。网络上有文章指出将Loadrunner9.50升级至
9.5.1或者9.5.2然后在装HP的IE8补丁。最后google了下发现loadrunner最新版本是11。且可以支持WIN7。最后就没在折腾9.5.0版本。直接装上了11版本.
二、网络环境:
当我们使用Loadrunner录制脚本的时候,特别是通过IE录制脚本,要密切注意。安装loadrunner的机器的IE是否开启了代理设置
如果开启,Loadrunner11 在录制脚本的时候会出现各种不稳定。这个问题当时困扰了我很久。
三、录制脚本:
录制脚本属loadrunner 重要环节之一。这里挑出几条个人认为比较重要的来和大家分享:
1、参数设定
我们第一次录制脚本成功后生成C脚本内中的参数都是由web表单客户实际操作的业务数据,但是这些数据都是“硬编码”。简单的说我们把这脚本运行时,会将之前录入的内容插入到数据库内(假设数据校验都是合法)。可是我们的实际压力测试时不可能将录制的脚本只运行一次。实际会根据各种场景各种场合进行策略性的执行已录制脚本。同时我们也需要准备充分的数据集(比如File Parameter)让脚本来执行。这些都可以在脚本内使用Parameter 来替换,比如以下脚本:
web_submit_data("GetProvinceAutoInputData", "Action=http://192.168.0.1:8080/MasterData/GetProvinceAutoInputData", "Method=POST", "RecContentType=application/json", "Referer=http://192.168.0.1:8080/MasterData/BasCity", "Snapshot=t14.inf", "Mode=HTML", ITEMDATA, "Name=assemblyName", "Value=", ENDITEM, "Name=sortFields", "Value=", ENDITEM, "Name=displayFields", "Value=ProvinceCode;ProvinceName", ENDITEM, "Name=displayLabels", "Value=鐪佷唤缂栫爜;鐪佷唤鍚嶇О", ENDITEM, "Name=queryFieldName", "Value=ProvinceName", ENDITEM, "Name=recordsPerPage", "Value=5", ENDITEM, "Name=filter", "Value=", ENDITEM, "Name=parentFieldName", "Value=", ENDITEM, |
其中第14行中“Value=5”这里的5 是由UI段传入的。我们可以通过LoadRunner的参数将其替换,选中5点击右键选择Replace whith a parameter 输入parameter name、parameter type. name值可以取一个容易识别业务的名词。type的选项有13种,其中包括随机参数、自增长参数、文件参数等,这里不做一一介绍,具体的请查看相关文档。通过设置参数,我们就可以在脚本多次运行时候使用不同的业务数据模拟真实的用户操作和并发。
2、loadrunner file parameter 列之间互相依赖
这里提一下file parameter ,试想如果我们有20个用户去录入用户订单(order)。同时维护好订单明细(orderDetails)。假设
订单号是由用户自己输入的且是不能重复的。那么我们需要为这个场景准备录入数据。同时假设20人在某一段时间内录入20个订单
每人录入一个。这里以file parameter来处理录入数据。数据结构如下
OrderCode OrderPrice Operator 0001 100 user1 0002 200 user3 0003 300 user4 0004 400 user5 0005 600 user6 ..... |