初识LoadRunner

来源:互联网 发布:淘宝菜鸟驿站 编辑:程序博客网 时间:2024/05/22 06:07

  刚上班没几天就被公司派去出差,这也是很僵,我这次出差的任务主要是协助现场人员一起完成对WebService接口的压力测试,作为一个刚开始进行企业级开发的新人,能够一开始就接触到一个企业级项目是很幸运了,通过这次测试也学习到了很多有关这方面的知识。


1. LoadRunner简介及安装

LoadRunner,是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。企业使用LoadRunner能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。 LoadRunner可适用于各种体系架构的自动负载测试,能预测系统行为并评估系统性能。

  在这次测试过程中,我使用的loadrunner11,网上有很多破解版,自己可以在网上搜,我就不再这贴网址了,安装过程很简单,就是next,next就行,但需要注意的是:一定要安装在默认安装路径下,也就是系统盘中,如果安装在别的盘,当在执行测试中,就不能够查看输出的错误日志,会提示系统不支持操作,这个问题的原因好像是loadrunner会默认安装一些文件在C盘下,查看错误日志操作所需要的文件在C盘中,不在安装的地方,所以会提示不支持。
  安装完成后,会提示需要配置loadrunner的license,否则只能最多生成10个vuser(虚拟用户),这个license在破解包中也会有,按照提示修改文件,添加新的license就ok了。

2. LoadRunner使用方法

  1)创建编写测试脚本
  点击Create/Edit Scripts,进入HP Virtual User Generator后,点击File-》New 选择Web Services ,点击Create,就创建了一个WebService测试脚本。
这里写图片描述
  一个新的WebService测试脚本创建成果后需要对WebService服务进行管理(即需要测试的WebService),点击Manage Services后,点Import,选择URL,输入要测试的WebService地址如http://10.10.10.10/webservices?wsdl,测试地址需要加上?wsdl。点击Import导入后,点击Apply就为脚本配置了服务。
这里写图片描述
  接下来我们添加需要测试WebService服务的接口,点击Add Service Call,选择要测试的Operation,设置输入参数Input Arguments,选择value选项,先暂时为空,然后设置输出参数Outpt Arguments,选择Save returned value in para,点击ok后会loadrunner会自动写脚本。
  根据需要来修改输入参数的值,也可以设置变参,我倒是没弄过,不过网上有很多类似的,有需求可以试试。一个简单的测试脚本例子如下: 

Action(){    lr_rendezvous("run");//设置集合点,当虚拟用户达到你的设置的值后,便一起释放,相当于并发,可以在controller中对集合点的值进行设置。    //开始一个事务,一次事务算一次操作        lr_start_transaction("get");    web_service_call( "StepName=bsGetData_101",        "SOAPMethod=bsService|bsServiceHttpPort|bsGetData",        "ResponseParam=response",        "Service=bsService",        "ExpectedResponse=SoapResult",        "Snapshot=t1501226413.inf",        BEGIN_ARGUMENTS,        "in0="        // 输入参数根据WebService的入参来编辑,像我的例子        "<ORDER>"        "<servicecode>0101039</servicecode>"        "<source>02</source>"        "<target>32101</target>"        "</ORDER>",        END_ARGUMENTS,        BEGIN_RESULT,        "out=Param_out",        END_RESULT,        LAST);    //判断事务执行是否成功,如果得到的结果参数有值,则事务通过,否则失败。    if (lr_eval_string("Param_out")) {        lr_end_transaction("get", LR_PASS);// 事务通过    }else{        lr_end_transaction("get", LR_FAIL);// 事务失败    }    return 0;}

  脚本编写完成后我们就可以运行,看是否存在错误,如果不存在错误事务会执行成功,有错就根据错误信息,来修改脚本。
  
  2)运行加载测试
  在HP LoadRunner开始界面选择Run Load Tests,进入HP LoadRunner Controller,默认是Manual Scenario,一般没有特殊要求的就选这个场景,之后选择一个可用的脚本,点击add,将该脚本添加到scripts in Scenario中,点击ok,进入了设计界面。
  
  现在的脚本还没有给它加载vuser生成器,所以需要给它加载一个生成器,如图点击保存按钮右边的Load Generators下选择Add,添加新的生成器,这里我们写localhost,用本机来当做生成器,选中localhost点击connect进行连接,这时我们已经连接好了生成器。当然也可以连接多台电脑一起测,需要在同一个局域网内,且要开启HP LoadRunner/Advanced Settings/LoadRunner Agent Proces程序,然后在Load Generators中添加电脑的ip地址作为name,就可以用多台电脑来进行测试了。
  这里写图片描述
 加载完生成器后就要开始配置全局计划Global Schedule,全局计划有4个参数。
1. 初始化Initialize:初始化每个vuser
2. 开始Vusers:设置vusers的个数,其有两个选项,一个是立刻启动运行所有vusers,还有一个是每隔多少时间运行多少vusers,一般我们使用二选项,可以逐渐增大压力,这样更容易找到系统的瓶颈,且对服务器不会使服务器一下奔溃。
3. 持续时间Duration:测试持续的时间。
4. 停止Vusers:跟开始一样,可以全部停止,也可以以逐渐减压的形式。
  之后我们就可以开始进行测试了,点击三角形的按钮就可以开始执行测试计划。
  3)查看测试结果
  这是我保存的一次测试结果图,其中有概述,运行Vusers,平均每秒点击次数,吞吐量,事务通过数,事务平均响应时间等,通过观察这些图表,就可以大体了解系统的性能情况,当然要测试出系统的性能瓶颈,不仅仅要观察压力机的CPU使用情况,IO情况,网络情况,还要观察应用服务器,数据库服务器的负载情况等信息,通过多次测试,才能够找到系统的瓶颈,这不是个容易的事。
  这里写图片描述

3. 总结

  在这次的测试过程中,了解了loadrunner工具的使用,从创建测试脚本到运行测试,最后到分析测试结果,了解了压力测试的过程。