一、性能测试的分类
负载测试,不断加压的一种测试
压力测试,
并发测试,多用户同时操作同一场景
配置测试,容量测试,测试数据库的容量预估。
可靠性测试(稳定性测试)
二、性能测试的指标:
并发用户数
响应时间(等待时间+执行时间):不包含浏览器渲染的时间,浏览器的解析时间
单位时间内完成事务的数量,单位时间事务数-tps(一小时内理发师服务的用户数量)
随着并发用户数的增加,单位时间内处理的事务数也会增加,达到一定的压力时事务数不再增加,会是一个不变的值,这样用户等待的时间就会延长。
资源利用率:服务器的资源利用率
CPU利用率:不允许超过70~80%、队列长度,队列越长CPU利用率越大
Mem利用率:80%以下、页交换频率
带宽利用率:服务器带宽利用率
如果资源利用率小,会造成资源的浪费
吞吐量:服务器的处理的能力Throughput
PV和UV:
PV(page view)页面访问量,每日每个网站的总PV量是形容一个网站规模的重要指标。
UV用户访问量,作为一个独立的用户,访问站点的所有页面均算作一个UV。
三、性能测试的流程
3.1 测试对象:常用的、核心的、重要的、数据量的业务流程;确定性能指标:并发用户数、TPS、吞吐量、资源利用率。
采用28原则,80%的用户请求,都会在集中在20%的热点数据上,或者是在某个时间段内。
如:每天8小时系统支持500万用户访问,计算出每秒系统的访问量
采用28原则,每天500万的访问量集中在80%的有效请求上:
50000000.8=4000000;
400万的访问量集中在20%的时间段内:
8小时0.2=1.6个小时,也就是集中在1.6个小时内;
4000000/1.6=2500000,计算出1小时有2500000访问量
再计算出1秒内有多少访问量:
2500000/3600=694,有694次访问量,
要是算平均值的话:
5000000/8/3600=173,与694差4倍左右,一般情况下平均值和最大并发数差4倍左右。
测试场景
1)单一场景
比如只是登录、支付、下单等的场景
2)组合场景
比如模拟用户下单支付的场景
3.2测试计划:
测试目标、测试人员组织、压测进度安排、压力机(配置、要求、数量)、风险
3.3测试方案:
测试工具:loadrunner、jmeter
测试环境:数据库、服务器、架构设计、有条件的情况下尽量和生产环境一致
测试策略:单一场景、混合场景
监控工具:
linux:nmon、rpc、jvisualVM、Spotlight
windows:Spotlight、perfmon.exe
3.4用例设计:
基于场景的用例设计、基于脚本的测试用例设计
3.5测试执行:
脚本编写、场景监控设计、运行场景、监控场景、测试报告
3.6定位分析问题:
后端:服务器,代码、软件、硬件
前端
网络
四、loadrunner的安装
不能在linux下安装,压力机可以安装在linux下。
百度网盘地址(包含loadrunner11和12):
链接:https://pan.baidu.com/s/1cBhzTcevMgRTNTXDuC9hAw
提取码:1rql
安装参考链接:
loadrunner11安装参考1:
https://www.cnblogs.com/yafang/p/5860097.html
loadrunner11安装参考2:
https://blog.csdn.net/e421083458/article/details/16982711
安装过程中遇到的问题:
1、安装loadrunner时需要先安装.NetFrameWork3.5,提示安装不成功,需要把windows的服务打开
图中是禁止状态,把服务启用后就可以接着安装
2、填写新的license时要用管理员身份启动loadrunner,启动时报错,提示:win10 为了对电脑进行保护,已经阻止此应用
解决方案:
(1)使用 “win+R”
(2)输入 gpedit.msc 进入组策略
(3)依次找到“计算机配置 -- windows设置 -- 安全设置 -- 本地策略 -- 安全选项”,右侧找到“用户账户控制:以管理员批准模式运行所有管理员”,选择“已禁用”
(4)重启系统,实测解决
3、在win7上安装loadrunner11时,下载的是镜像文件iso,需要先下载DAEMON tools lite,然后再点击iso镜像文件安装。
五、LoadRunner三大组件介绍
VuGen:虚拟用户发生器,可以说是编写脚本的一个地方
Controller:控制器,控制用户的运行脚本
Analysis:分析器
六、协议探测器的使用
VuGen:录制脚本流程
新建脚本选择协议:
进入hp loadrunner启动栏中启动自带的一个服务:
进入该网站:
账号和密码是:jojo/bean
要验证这个网站的协议,可以用协议探测器:
测试url地址的协议选择Internat Application:
点击确定后自动打开ie浏览器去探测协议:
会遇到打不开IE浏览器的情况,尝试用火狐浏览器仍是打不开,因为loadrunner11最大支持到IE9,火狐浏览器版本最大是20多,所以放弃loadrunner11 直接安装loadrunner12.
loadrunner12安装流程参考1:
https://blog.csdn.net/qq_37674858/article/details/79755143
loadrunner12安装流程参考2:
https://baijiahao.baidu.com/s?id=1600795201973246998&wfr=spider&for=pc
loadrunner12安装成功后可以直接运行IE11。
七、录制脚本操作
loadrunner12安装成功后在界面上会有3个图标,分别是loadrunner的三大组件
打开Virtual User Generator
直接点击创建:
选中webhttp协议,本课程都是针对webhttp协议去测试的,输入解决方案的名称,点击创建按钮:
点击录制按钮:
点击开始录制后会自动打开IE浏览器,进入测试的地址中,操作登录后退出,点击退出录制:
录制打开IE的过程会有点慢,
在action中就能看到很多信息了。
vuGen的脚本分为3个部分:Vuser_init,Action,Vuser_end.其中Vuser_init和Vuser_end都只能存在一个,而Action可分成无数多个部分,可以通过点击旁边的NEW按钮来创建Action。在迭代执行测试脚本时,Vuser_init和Vuser_end的内容只会执行一次,迭代的是Action部分。
录制时,录制选项中设置的内容不同,录制的内容中函数不同:
基于HTML的脚本是针对前端来说的,会把接口调用封装到函数中。
基于url脚本是针对接口来说的,通过抓包能看到调用了很多url的接口地址,选中基于url脚本录制时会把每一步都会录制下来。
基于HTML的脚本选项中又有两种选项:
web_link,web_submit_form 依赖上下文关系,web_link("访问首页","Text=LoadRunner",LAST);
web_link和web_submit_form函数中是没有url地址的,所以是依赖上下文先获取url才能接着往下执行。
web_url,web_submit_data不依赖上下文关系,因为函数中是包含绝对地址的url,web_url("访问首页","url=http://www.baidu.com",LAST);
web_url 是get请求
web_submit_data是post请求
实现手动添加脚本:
录制模式的选择:
1、基于浏览器的应用程序推荐使用HTML-based Script
2、不是基于浏览器的应用程序推荐使用URL-based Script
3、如果基于浏览器的应用程序中包含了JAVAScript并且该脚本向服务器产生了请求,比如DataGrid的分页按钮等,flash等,也要使用URL-based方式录制
4、基于浏览器的应用程序中使用了HTTPS安全协议,使用URL-based方式录制
补充:
loadrunner各版本支持的浏览器版本
LoadRunner8.0 最高支持ie6;
LoadRunner8.1 最高支持ie6
LoadRunner9.0 最高支持ie7
LoadRunner9.5 最高支持ie8
LoadRunner11.0 最高支持ie9( win7 32位+LR11+IE10可用,但win7 64位+LR11+IE10不可用,降至IE9可用)
LoadRunner12.0 支持IE11(但没有破解版本)
较好的选择:
win7 64位+LR11+IE9
现在一般没有win7系统,可以在虚拟机中安装win7系统。