简介
性能测试关心两个词:请求和响应。
1. 负载测试:通过逐步增加系统负载,测试系统的性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载。
2. 压力测试:通过逐步增加系统负载,测试系统的性能的变化,并最终确定在什么负载条件下处于失效状态。
3. 区别:如同一个桥的最大载重是60吨,而该桥的内部建筑资料中,表名桥的最大载重为70吨,60则为负载,而70则为压力。
4. 并发:指多用户在同一时刻,共同执行某一操作,并发测试要求比较严格,着重考察系统的瞬间压力。
5. 在线:多用户在一段时间内对系统执行操作。在线测试指多用户去循环操作某一动作。(登录进行,但是没有对系统进行任何的操作,也不算在线)
- 总结:并发和在线的比例相当于10:1,100人的用户并发相当于10人的在线用户。
6. 请求响应时间
358原则:对于一般系统而言,如果用户点击按钮,能够在3秒内得到应用,则用户比较满意,如果系统在5秒内能够得到应答,用户能够忍受,如果系统在8秒后得到应答,用户不能忍受。
缩写 | 全称 |
---|---|
PV | page view 浏览量 |
AUT | Application udder test 被测系统 |
吞吐量 | 用户在任意给定一秒从服务器端获得的全部数据量,单位为字节 |
吞吐率 | 吞吐量/传输时间就是吞吐率 |
点击率 | 每秒中用户想web服务器提交的http请求数,点击率越大,对服务器的压力也越大,”单击”不是点击,因为单击可能会发送多个http请求 |
*loadrunner的三大组件
- 脚本生成器(virtual user generator):录制和调试脚本
- 控制台(conntroller)–设置场景参数,管理虚拟用户
- 结果分析器(analysis)—生成测试报告
loadrunner的工作原理
1)录制时,LR记录下客户端和服务端两者之间的对话;
2)回放时,LR模拟真正的客户端,向服务器发出请求,并根据脚本来验证服务器的应答。
总结:录制脚本时,一般把关心的内容录制到action中,将登录录制到init中,将退出录制到end中。lr的脚本运行得出的result中全部为pass时,不一定证明脚本正确,因为lr只是在网络层面上验证了服务器收到了客户端发送的数据包并返回,没有验证应答中的数据是否正确。
录制脚本
- Ctrl+G是定位可以快速的定位到某行。
- 每次创建脚本的时候不要直接Start Recod,因为是在以前旧有的脚本中追加,需要重新新建一个。
LR和QTP的区别
LR和QTP的共同点都是基于录制和回放。
lr关心的是客户端和服务器之间的对话,关心的是请求和应答,关心的网络协议。
QTP关心的是AUT的界面,以及界面上的对象及属性。
性能测试策略
总结: 脚本中的检查点不需要太多,一两个即可。
* 基准测试*
单用户测试,为其他测试提供依据。
* 递增测试*
每隔一定的时间段加载不同数目的虚拟用户执行测试点操作,对测试点进行递增用户压力加载测试。递增测试存在的目的:所有的用户同时加载,有可能造成AUT资源突然增大,进行影像后续测试中关心的测试点的数据,所有前面可以稍微放缓,递增加载虚拟用户。
* 在线综合场景测试*
能够最真实的模拟实际的生产场景,一般情况下综合场景中要求脚本为3个以上,将虚拟用户分成不同的组,每组执行不同的脚本。一般持续时间一个小时,所有的用户在循环执行操作。
* 并发测试*
多用户在同一时刻同时执行某个操作,考察AUT系统的瞬间压力的承受能力。
* 疲劳强度测试*
一般指长时间的在线综合场景测试,即在一定的压力强度下,进行长时间的测试。
* 内存泄露测试*
指系统运行时,占用的内存没有得到及时的释放,随着运行时间的增加,被占用的内存越来越多,导致可用的物理内存被用光,系统运行缓慢甚至宕机。
* 内存泄露测试*
也称为”摸高测试“,即使用性能测试,逐渐增加AUT的压力,测试AUT的极限值,如最大用户数、最大的吞吐量等。