1认识性能测试
1.1性能测试概念:
使用自动化工具,模拟不同的场景对软件各项性能指标进行测试和评估的过程
1.2性质:
时间特性(响应快慢)、资源特性(表示系统运行过程中,系统资源的消耗情况:CPU 内存 磁盘..)
UV: Virtual user(虚拟用户)
1.3性能测试的目的:
(1)评估当前系统能力(2)寻找性能瓶颈(3)评估软件是否能够满足未来的需求。
1.4性能测试策略:
(1)基准测试:狭义上:单用户测试 (100次去平均值后为基准数)测试环境确定后,对业务模型中的重要业务做单独的测试,获取单用户运行时的各项性能指标。广义上:建立基准线,确定软硬件变化对性能的影响。
(2)负载测试:通过增加系统负载,确定在满足系统的性能指标情况下,找出系统所能承受的最大负载的测试
(3)稳定性测试:在服务器稳定运行(用户注册的业务负载下)的情况下进行长时间测试(1天、一周),并最终保证服务器能满足线上业务需求
(4)其他:压力测试 并发测试(公司内部或平台一般不用做压力和并发)
压力测试概念:在强负载下的测试,查看系统在峰值情况下是否有功能隐患,系统是否具有良好的容错能力和可恢复能力
测试场景::极限负载情况下的破坏性压力测试 、高负载下的长时间的稳定性压力测试
并发测试:同时发生,是指在极短的时间内,发送多个请求,来验证服务器对并发(如抢红包,秒杀,抢购)的处理能力
1.5性能指标
响应时间:发请求到得到响应结果的时间
并发数:同一时间对服务器发送请求
吞吐量: 单位时间内处理的客户端请求数量,直接体现软件系统的性能承受能力(业务角度:单位:“业务数/小时”“访问人数/天”“访问量/天”,网络角度:单位:“字节数/小时”“/天”,技术角度:单位:每秒事务数(TPS)每秒查询数(QPS)
点击数:只有web端才有这个,不是点击搜索那一下才算点击数 。框架JS CSS 也算,是指客户端向服务端发送请求时,所有的页面资源元素(如图片 键 框架 CSS JS 等请求总数量)
错误率:指系统在负载情况下,失败业务的概率。错误率=(失败业务书/业务总数)*100%
注意:大部分系统都会要求错误率无限接近于0、错误率是应该性能指标,并不是功能性上的随机bug 。 0.02%
任务管理 资源利用率:指系统各种资源的使用情况,一般用“资源的使用量/总的资源可用量*100%形成资源利用率的数据”
服务器的资源利用率:
1、 cpu不高于75%-85%
2、内存不高于80%
3、磁盘IO不高于90% IO写入 input output
4、网络不高于80% (高了说明带宽小了)
每秒事务数(TPS):n个请求
每秒查询数(QPS):单个请求 每秒最多处理多少数据。即控制服务器每秒处理的指定请求的数量。(事务请求)
单次发送搜索HTTP请求—— (服务器)每次最多处理25个请求,搜索QPS:25
题外话: MySQL处理事务:1借出100万 2借来100万 12都执行,要么一起成功 要么一起失败。
2性能测试流程
1、性能测试需求分析:了解公司业务,1.1明确被测系统 1.2明确测试内容1.3面前测试策略1.4明确测试指标
2性能测试计划与方案:测什么,谁来测,怎么测
3性能测试用例设计:用来验证系统是否符合要求
4性能测试执行:建立测试环境,编写测试脚本,性能测试监控,执行测试脚本
5性能分析和调优:分析性能结果,针对性能bug调优
6性能测试报告总结:测试结果总结
2.1性能测试工具
Jmeter和Loadrunner的区别
Jmeter :开源免费,小巧50MB左右,丰富的学习资料和扩展组件。缺点:不支持IP 欺骗,分析和报表能力相对于LP来说欠缺特质(以分钟位单位)
Loadrunner:模拟用户多(万) 报表快(秒) 支持IP欺骗 精确。缺点:收费,数据包大.GB 不能定制功能
相同点::都能模拟大量用户,都有监控及分析报表功能,都支持多协议