目录
一、背景:
前后端分离项目,测试后端接口性能。因无测试团队进行性能测试,故只能自己尝试使用loadrunner测试。几年前使用过loadrunner压测webservice接口,但已遗忘,此次记录在案备用。
二、安装:
操作系统:Win10企业版64位。
略。
三、创建脚本-Webservice
此处讲Webservice接口测试脚本的编写。Http接口见文章【02.loadrunner之http接口脚本编写】。
1.Create/Edit Script
2.New Script
3.Web Services
4.Manage Services(管理和维护待测服务wsdl地址)
5.Import
6.填写Url
7. Import后,Ok
8. Add Service Call(添加需要调用的服务)
9.填入参数,OK
返回结果在脚本中返回:
10.Script
11.生成的脚本
Action()
{
web_service_call( "StepName=nethis_common_business_104",
"SOAPMethod=NetHisWebService|NetHisWebServiceSoap|nethis_common_business",
"ResponseParam=response",
"Service=NetHisWebService",
"ExpectedResponse=SoapResult",
"Snapshot=t1543296581.inf",
BEGIN_ARGUMENTS,
"userId=573028BAB0E4531D",
"userPassword=***********",
"businessCode=JYKS01",
"businessInfo=C6B7C2266A1C593A4428684A4D5579E35659E6372BFF4DBCBF1E1B25F2F9C7CA89C7D63470D10C238E1CBD42509E5C89DC6BB7D92932AD50ED3AB00CFB3D01FCA7C40CD195D3ED7AC6B353F2374A1643EB6188031F7445EF43F97214130D76AC",
END_ARGUMENTS,
BEGIN_RESULT,
"nethis_common_businessResult=result",
END_RESULT,
LAST);
lr_output_message("Result:%s",lr_eval_string("{result}"));//这里把返回值输出,调试webservice的时候用
return 0;
}
注:其中lr_output_message("Result:%s",lr_eval_string("{result}"));为手动添加,打印出参
12.运行,Run(F5),Replay Log窗口能够看到执行结果。
四、完善脚本
1.脚本参数化,选中需要参数化的值,右键Replace with a Parameter
2.参数化列表:
3.定义事务
定义事物是为了在性能测试时更准确的统计服务的相应时间,通常将一个服务定义为一个事务。这样在性能测试后事务相应时间就能看做一个服务的相应时间。
4.完善事务:根据接口返回的结果中状态判断事务的成功或者失败
性能测试时首先要保证在服务功能执行成功的前提下统计服务的相应时间,否则统计出现逻辑错误的服务的响应时间没有任何意义。
经以上操作,一个测试脚本就写好了,在测试前,首要要保证单脚本中的事务成功执行在进行并发测试。一般单脚本事务失败是由于数据问题或者是服务逻辑错误导致的。
五、业务场景分析
略
六、创建并运行场景
1.运行loadrunner组件Controller.exe
2.点击Browse选择脚本文件夹
①(可选)想按百分比分布Vuser的话,选择Use the Percentage mode... 选项。
②(可选) 选择要加入场景的脚本。如果你这一步不选择脚本,还可以在场景中添加。
3.Ok进入场景design界面
4.添加负载生成器
①点击Load Generator按钮 (或者Scenario->Load Generators), 在打开的Load Generators对话框中点击Add并输入你要添加的负载生成器的详细信息
②点击添加
注意:这里的名称可以是ip也可以计算机名、localhost(本机)
③点击Connect
这里如果Temporary directory目录为空,那么运行时, LoadRunner存储临时文件在负载生成
器上,由负载生成器变量TEMP、TMP变量指定的临时目录.
⑤.在场景脚本面板中的Load Generators列中选择用于运行脚本的负载生成器。
注意:缺省的,新增的脚本会在场景中所有负载生成器上运行。
⑥为场景选择所有脚本时,在场景脚本面板的 % 列中为每个脚本指定一个总虚拟用户数的百分比。 从第一个脚本开始进行百分比的设定,然后下一个脚本,依此类推.
5.Scenario Schedule(场景计划设置)
①Start Time-场景开始时间设置
②Schedule by:Scenario(按场景执行)
③Run Mode-运行模式:
real-world schedule 是真实场景模式 可以通过增加ACTION来增加多个用户
basic schedule 是我们以前用的 经典模式 只能设置一次负载的上升和下降
6.Global Schedule(全局计划设置)
Vuser运行方式:
①初始化方式
②开始方式
③持续方式
④结束方式
7.Run-Time Settings(运行时设置)
主要参数设置如下:
①RunLogic:设置Vuser迭代次数,该迭代次数在【Duration】选择【Run until completion】时才有效,如果选择【Run for ** days……】则以持续时间为准
②Log:输出日志级别。日志输入给我们提供了有用的信息,但是也会影响相应时间。建议在调试场景时输出详细日志,在真正运行场景时设置无日志输出。
③Think Time:如果无业务需求,设置成忽略思考时间
8.运行-Start Scenario
① 问题1:场景运行时提示error:
You do not have a license for this Vuser type.
Please contact HP Software to renew your license.
使用的License也就是目前网络上比较通用的两个:
global 100user
AEAMAUIK-YAFEKEKJJKEEA-BCJGI
10000 web clients
AEABEXFR-YTIEKEKJJMFKEKEKWBRAUNQJU-KBYGB
具体说,是loadrunner的License管理器,只支持一个License,我先后输入了上面的两个License,最后实际生效的只有最后一个 10000 web clients的。
而loadrunner的不同协议是要求不同的License的,上面的10000 web clients是不能用于javaVuser的(估计其他协议也会遇到同样问题)。
因此必须将License修改为global 100user,这样java Vuser就可以跑起来了。注意修改License后要关闭现有的loadrunner程序然后再重新打开,
否则License依然无效。如果需要测试不同的协议,则视具体需要自己动手设置不同的License了
再次运行出现问题2
②问题2:
Initialization failed; communication error.
Error (-81024): LR_VUG: The 'WS_SOAP' type is not supported on 'WIN32' platforms .
解决方法:
1) 搜索LoadRunner安装目录bin文件夹下有个“wlrun.exe”的文件
2)右键点击“属性”->"兼容性"->兼容模式中选择“windows xp(service pack 3)”,点击确定后。
重新打开Controller,即可运行成功。
再次运行,成功。
七、监控场景
监控场景我们一般关注四个指标:虚拟用户数、响应时间、每秒点击数和每秒事务数。
1.虚拟用户数:即同时并发的用户数,直接体现了对待测应用的负载强度。
2.响应时间:响应时间是判断一个被测应用系统是否存在性能瓶颈的最直观的要素。响应时间一般包括最大响应时间和平均响应时间。响应时间包括网络的传输时间、WEB服务器上的处理时间、应用服务器的处理时间、数据库服务器的处理时间,不包括浏览器上内容渲染时间。
3.每秒点击数(HPS):用来衡量很多用户使用客户端进行操作,向服务器发送请求的效率。我们认为HPS表现的是最终用户的整体行为,是衡量在线负载程度的一个指标。
4.每秒事务数(TPS):Transactions Per Second是估算应用系统性能的重要依据。其意义是应用系统每秒钟处理完成的交易数量,尤其是交易系统。一般的,评价系统性能均以每秒钟完成的技术交易数量来衡量。
八、分析场景
分析场景是为了更深入的了解服务运行情况,发现服务的瓶颈,并解决服务性能问题。通常,我们可以通过各指标之间的关系来判断服务运行是否正常。例如,随着并发用户数的增加每秒事务数也应呈递增趋势,如果每秒事务数没有随用户数增加,则可能在某些方面遇到瓶颈,网络传输能力或者数据库连接池的限制都可能造成这种情况。
通过LoadRunner Analysis打开后缀为.lra的结果文件,里面有测试服务的测试结果和各种监控指标的图示。点击Reports能生成LoadRunner的性能测试报告。
1.场景运行后通过Analyze Results菜单,打开HP LoadRunner Analysis对运行结果进行分析
2.保存分析结果后下次通过File-Open菜单打开
附:
https://wenku.baidu.com/view/7cf468f9a1c7aa00b52acbc4.html