目录
为什么需要性能测试
性能测试实施流程
常见的性能测试指标
性能测试分类
1、一般性能测试
2、负载测试
3、压力测试
LoadRunner
LoadRunner包括三个组件
VUG
Controller
Analysis
一个网站或者app的性能差,用户的使用体验就会很差
常见的性能问题:1、资源泄漏 2、查询速度慢 3、线程死锁等导致系统越来越慢
为什么需要性能测试
1、验证系统指标能否达到用户需求
- 产品能否满足系统要求的各种指标
- 产品能否在超出可以承载的并发数时,正常处理业务
- 产品能否支持业务所需要的事务数量
2、检验系统在正常工作时的最大容量
3、帮助运维可以更好的规划硬件配置
性能测试实施流程
1、分析性能测试需求
2、根据性能测试的目标,设计性能测试的场景
3、开发性能测试场景和性能测试脚本
4、分析性能测试报告
5、根据性能测试报告排查和确定系统的性能瓶颈
常见的性能测试指标
1、系统/事务的平均响应时间
对于用户来说:响应时间就是从请求发出到结果显示的时间
2、事务处理效率TPS:
TPS就是系统每秒可以通过的事务数量
3、吞吐量
系统在一段时间内处理的请求数量
吞吐率:系统在1s内处理的请求数量
4、点击率:每秒用户向服务器发送的请求数量 (不是鼠标的点击次数)
5、服务器资源占用情况,内存和CPU使用率
资源包括:网络,内存,硬盘,cpu等。资源利用率高说明系统占据了大量资源,是不好的
6、并发用户数
并发:强调多个用户同时性的操作,这样会给服务器带来压力
业务层面上的并发用户数:同时向服务器请求的用户数量
后端服务器的并发用户数:同时向服务器请求的请求数量
性能测试分类
1、一般性能测试
测试在正常的条件下,系统的性能情况
2、负载测试
定义:在被测系统上不断增加压力,直到性能指标(如响应时间)超过预期指标或者某种资源使用已经达到饱和状态。可以找到系统的处理极限,为系统调优提供数据
目的:找到系统处理能力的极限
3、压力测试
定义:系统在一定饱和状态下,例如CPU、内存等饱和情况下,系统能够处理的会话能力,以及系统是否会出现错误
目的:测试在极限状态下,系统的性能表现
LoadRunner
LoadRunner是进行系统行为和性能的负载测试工具
LoadRunner和Jmeter相比,具有强大的录制功能,具有丰富和灵活的应用场景,具有丰富的报告功能
LoadRunner包括三个组件
1、Virtual User Generator:简称VUG,负责录制和生成脚本
2、controller:创建测试场景,运行和监控场景
3、Analysis:分析测试结果,出测试报告
VUG
1、项目创建
2、认识3个文件
3、开启录制
- 在WebTours文件下,有一个startService文件,可以开启服务
- 在网址http://127.0.0.1:1080/WebTours/,可以看到网站
- 在vug开始录制脚本
这里,如果选择了IE浏览器,要设置IE浏览器网站不会在Edge浏览器打开
这里的用户名和密码,存放在WebTours\cgi-bin\users文件夹下的jojo文件中
用户名jojo,密码bean
脚本录制结束,就可以看到脚本
4、脚本增强
对脚本进行代码编写,以便于达到我们的性能测试要求
1、事务
开启事务的两种方法:1、手动开启 2、录制的时候开启
开启事务:lr_start_transaction(事务名称)
关闭事务: lr_end_transaction(事务名称, LR_AUTO);
2、lr_think_time():思考时间,也就是等待时间
3、集合点
LoadRunner为了实现并发的机制,就像红路灯,红灯时让用户在路口短暂的集合,在绿灯时放行
集合点:让用户在集合点短暂集合,在特定时间放行,产生并发数
lr_rendezvous(集合点名称);集合点应该放在Action中,集合点应该放在事务之前
4、检查点
对内容进行检查,相当于"断言"
检查点函数放在页面请求之前
5、参数化
使用变量来填充脚本中的常量
操作步骤:双击想要替换的常量,右键,选择使用变量替换
因为这里是登录,账户和密码是在jojo文件中获取的,因此username变量即使可以赋值为lyq,也是无法登录成功的,要在此目录下创建此用户的登录信息
登陆成功
因为是两个常量赋值给username,所以要设置循环
运行脚本,可以看到两次登录
Controller
Controller可以搭建测试场景
1、场景创建
第一种方式:对VUG已经编写好的脚本,创建测试场景
第二种方式:在Controller中创建文件
2、场景内容介绍
1、
2、场景设置
3、场景运行
4、场景监听
如果想要查看系统资源图表,要进行配置
5、运行场景
6、从表格监控性能信息
1、虚拟用户信息表
2、http响应表
全程响应都是200
3、每秒事务通过数
出现了三个图像是因为,LoadRunner中认为每一个脚本文件都是一个事务,也就是基础的init,Action,end三个脚本分别是一个事务
4、事务响应时间
Analysis
生成测试报告
1、测试报告:主要看平均值和标准方差,标准方差值越大,说明越不稳定
2、测试图表
1、显示每秒执行脚本的用户数量和状态,也就是可以展示哪个时间段,负载数量最大
2、点击数
虚拟用户在测试期间,对服务器发送的http请求数目
可以根据点击次数对Vuser产生的负载量进行评估,可以将这个图跟“平均事务响应时间”表对比,
确定点击数对事务的影响,请求次数多了,响应时间应该会变长
3、吞吐量表
将吞吐量和点击数结合,发现点击数和吞吐量的图像大致相同,并且点击量超前于吞吐量,也就是点击量增大了,会导致吞吐量增大