目录
一、基础概念
1.1 基本概念
给予协议模拟用户请求,对服务器性能一定负载,来测试服务器的性能指标是否达标
注意是测试服务器的(时间性能和空间性能)
与界面无关
1.2 分类
待完成
理发店模型理解
1.3 性能指标
响应时间
响应时间=网络连接时间+web server time(服务器响应时间) +app Server(服务器处理时间)
time +database server time(数据处理时间)
响应时间不包括 服务器返回数据到客户端渲染界面的时间
tps
单位时间处理的事务数(transcation per second)
htp:单位时间内服务器请求事务数()
吞吐:服务器的处理能力
资源利用率
在一定情况下服务器资源利用情况
内存:不能超过80%,虚拟内存(页交换频率,越大越不好)
cpu:不能超过70-80%,队列长度(例如消息排队过多)
带宽:Mbps 这里的b代表bit,所以100Mbps=12.5M/s
并不是资源利用率越低越好,因为会造成资源浪费
并发用户数
同一时间内向服务器发送请求的用户数
注意并发用户数和并发请求数的区别,一个用户可以同时发送多个请求的
二、性能测试流程
需求分析,测试计划,测试方案,用例设计,测试执行,定位分析问题,图
需求分析
测试对象:常用的,重要的核心的,并发量,数据量。常见的如登录,注册,下单等
确定性能指标:响应时间,tps,资源利用等
2-8原则:80%的用户请求集中在20%的热点数据或是时间段内
例子:商品单价为300,需要每天交易额达到2亿,求每秒的最大交易数
20000 0000 /300 X 80% / (24 X 0.2 X 3600 )
例子:每天8小时支持500万用户访问,求每秒钟最大用户访问量
500 0000 * 0.8 / (8 X 0.2 X3600 )= 694
测试场景:单一场景和混合场景(用户操作或是系统操作)
测试计划
测试目标,测试人员安排,测试进度,压力机(配置,要求,数量),风险评估
测试方案
测试工具:Loadrunnder,JMeter
测试环境:数据库,服务器,架构设计(有条件尽量和生产环境一致)
测试策略:单一场景和混合场景
监控工具:window(spotlight,perform.exe) linux(nmon,rpc,jvisualVM,spotlight)
用例设计
基于脚本的用例
基于测试场景的用例
定位分析问题
后端:软件(数据库和应用服务器),硬件,代码
前端
网络
三、工具LoadRunner
基本组成
1.安装
下载Loadrunner(最好下载破解版)参考网上各种教程
注意:尝试用win10安装,发现无法正常使用protocal advisor(协议探测器),直接抓取录制脚本也是失败,但是换成win7的系统就可以直接使用
2.Loadruner组成
Virtual User Generator 虚拟用户产生器—用来调试脚本
Loadrunnder Contoller控制器,设置需要使用的并发用户的数量,这些用户需要想服务器请求什么功能
Loadrunner Analysis:分析器,分析Controller在一段时间内的性能数据
创建脚本
基本使用
1、新建
File–new 或是工具栏等入口新建,一般需要选择脚本对应的协议
协议的获取方式:
1、直接问开发人员
2、一般公司的协议都是不变的,查看以前的项目
3、通过loadrunner协议探测器来查看
开始–程序中找到Loadrunner–Start Web Server,点击启动后会在桌面的右下角出现绿色小图标,代表服务器启动,只需要启动一次,连续多次启动会造成图标变红
然后再开始–程序中找到HP Web tour Application 点击之后浏览器会启动 http://127.0.0.1:1080/WebTours/
(这里我用的虚拟机,ip地址应该也是虚拟机的ip)
4、点击protocal advisor(协议探测器)图标,刷新http://127.0.0.1:1080/WebTours/网页,结束后停止探测,会自动生成探测报告
5.脚本的录制
file–web(HTTP/HTML ),点击start record,执行操作步骤,最后停止录制,录制结束后自动生成脚本
6.脚本生成之后,可以通过run再次运行
运行之后的各种日志:
1)Generation Log:
所有客户端和服务器交互协议会被放在此日志中,VuGen随后会对协议交互进行分析,最终生成脚本。
录制得到的VuGen脚本是通过此日志生成的。如果录制结束时出错或错误修改后,想回到最初的状态,那么可以使用tools>Regenerate Script功能来重新生成脚本,回到最初状态。
2)Recording Log:
可查看相关录制信息。录制中的Events条数就是此日志中的信息行数。
此日志的开头,显示了解析协议所用到的*.dll库文件。VuGen通过类似于插件的形式来完成对多种协议的支持,只要有这类的dll文件,就可以完成对该类协议的录制。
3)Replay Log:
可查看回放的日志信息
7.查看录制结果
View—Test Result查看脚本报告
创建控制器
打开方式:
1、开始菜单–Load runner
2、Tools—Create controller Scenario
脚本名称,脚本路径和压力机都是可以修改的
results–results settings–可以设置结果路径
点击start scenario开始运行控制器,运行完成之后会将结果进行保存
分析器
开始–Load runner—Analysis
File—打开上面的controller结果保存文件,就会将结果通过Analysis进行展示
文件类型选择LoadRunner results
脚本中的Action跟Contoller Scenario之间的关系
四、LoadRunner的使用
录制时的选项设置
打开录制设置:
1)start record—打开录制弹窗—options
2)在工具栏选择edit recording options
html-based script和url-based script
1)如果应用是WEB应用,首选是HTML-based方式;
2)不是基于浏览器的应用程序推荐使用URL-based script
3)Web应用中包含了与服务器进行交互的Java Applet;
基于浏览器的应用中包含了向服务器进行通信的JavaScript/VBScript代码;
【如果基于浏览器的应用程序中包含了JavaScript 并且该脚本向服务器产生了请求,比如DataGrid 的分页按钮等,也要使用URL-based 方式录制】
4)基于浏览器的应用程序中使用了HTTPS安全协议,建议使用URL-based script方式录制.
注:如果使用HTML-based script模式录制后不能成功回放,可以考虑改用URL-based script模式来进行录制,这种情况多是上面所列举的情况所引起的.
html-based script:是把打开一个网页的所有请求当做一个步骤封装在一起
url-based script:将每一个不同的url请求当做一个步骤
录制的时候出现乱码:
运行时录制的选项
打开步骤:
1)Vuser—Run time settings
2)工具栏—edit runtime settings
运行逻辑
run logic
Pacing 循环步伐
1)As soon as the previous iteration end
默认设置每次迭代之间不等待时间
2)After the previous iteration ends:
在前一次的iteration的结束时设置,包括fixed(固定等多少时间)和random (随机等某个范围内的时间)
3)With a fixed/random delay of sec
设置前一次ending iteration到下一次starting iteration之间的时间
4)At fixed/random intervals,every sec
设置前一次starting iteration和下一次starting iteration之间的时间,所以At是包含前一次iteration执行的时间
如果设置时间太短,即使前一次步骤没有执行完成也会中断,继续执行下一次
Log 日志
think time思考时间
Miscellaneous:多种多样
进程和线程的区别