最近组内同事针对性能测试LR的脚本部分做了介绍,是个不错的分享。会后反思自己也有很长一段时间没做性能测试了,根据以往的经验,有必要做些整理和补充,本文主要介绍一些LoadRunner性能测试的学习方法、思路、流程以及测试过程中需要注意的点。脚本相关的介绍在这篇文章就不过多描述了,有兴趣的朋友网上进行查找,资料也相对比较丰富。
一、LoadRunner初步了解
关于LoadRunner的学习,初期重点关注Vuser Generator的使用,需掌握以下内容,再去实战操作基本就不难了。
录制脚本的基本步骤;
理解基础函数的含义:lrstarttransaction(),lrendtransaction(),webregfind(),weburl(),websubmit_form();
会看输出窗口中的Replay log;
Vuser-Run Time Setting中Run logic\log\Think Time的设置;
脚本的迭代;
手动写脚本,掌握基本函数;
LoadRunner参数的设置;
针对我们目前的项目基本上是做HTTP/HTTPS协议的压测,大家手上有项目时,可以通过录制了解一下整个HTTP请求及响应的情况,学习一下LoadRunner内置的函数。
另外参数设置、迭代、关联函数等等希望大家查一下资料弄懂,实践一下不同方式有什么不同。
二、性能指标
在做性能测试之前,简单说下性能指标:
响应时间
针对页面操作,响应时间小于2秒,用户会感觉系统较快较满意;响应时间在2~5秒,用户可以接受,但对速度有些不满;响应时间超过5秒,用户将无法接受。作为优秀的项目当然越快越好,我们在做压测的时候,一般希望响应时间在1秒以内, 针对系统内部调用的接口响应时间更要快,具体情况视具体接口而定。
吞吐量
通常需要结合业务部门的市场目标而定。
服务器资源占用
CPU占用率、内存使用率不能过高;Cache命中率不能过低。
三、性能测试流程
制定性能测试目标-->选择性能测试工具-->设计性能测试-->执行性能测试脚本-->监控分析系统-->性能调优
1、目标:
如,系统需满足500个用户在线、20个用户并发操作发帖的情况下,发帖响应时间不超过2秒,系统资源使用率不超过30%。
2、选择性能测试工具:
可选择LR、Locust、jmeter等主流测试工具,这篇文章主要介绍LR相关。
3、性能测试准备:
测试脚本开发、负载的生成规则及监控方式、测试环境的搭建。
性能测试准备过程中需要注意的点:
确认压测前SQL Review已通过;
确认压测环境已成功搭建,压测服务器上单独部署一套程序代码;
明确域名及需要绑定的host;
搞清楚需要压测的业务及场景(也可以理解为测试用例);
清楚输入参数及服务端返回信息;
明确需要参数化的输入值,明确“请求成功的服务端返回码”;
4、负载过程、负载后对数据进行分析,这个分析需要众多专家共同协作,找出数据背后的问题,确定性能瓶颈。
5、确定瓶颈后,进行软硬件调优,调优完成重复之前的步骤。
执行性能测试过程中需要注意:
需要与数据库交互的压测,事务pass不代表实际操作一定成功,首先确保脚本中的检查点要写正确,其次务必查询一下数据库是否有相应操作。
场景测试的前10分钟,随时关注一下TPS、响应时间,若TPS过低或响应时间太慢,当机立断停止场景运行,找一下运行慢的原因,若不是脚本设置原因,找一下开发同学反馈问题,待开发调优后再压测,避免浪费时间。
若无以上问题,场景测试的前1小时,关注一下曲线波动情况,若有明显下降或上下波动很明显,请联系开发同学查原因。
若1小时已通过,可以连续跑稳定性测试,12小时或更长,当然中间有时间也要关注一下曲线图是否有异常。
请加入测试技术分享圈,开始您的学习之旅吧!