写点什么

软件测试学习笔记丨性能测试体系

作者:测试人
  • 2024-03-07
    北京
  • 本文字数:1809 字

    阅读完需:约 6 分钟

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/29825

1, 性能测试的流程和方法


2,性能测试方法

  • 并发模式(虚拟⽤户模式) 并发是指虚拟并发⽤户数,从业务⾓度,也可以理解为同时在线的⽤户数。如果需要从客户端的⾓度出发,摸底业务系统各节点能同时承载的在线⽤户数,可以使⽤该模式设置⽬标并发。

  • RPS 模式(吞吐量模式) RPS(Requests Per Second)是指每秒请求数。RPS 模式即“吞吐量模式”,通过设置每秒发出的请求数,从服务端的⾓度出发,直接衡量系统的吞吐能⼒,免去并发到 RPS 的繁琐转化,⼀步到位。

3,性能测试计划

需求分析与测试设计

环境设计与搭建

  • 设计:根据需求,结合线上机器部署情况,搭建线下测试环 境,要求具有⼀定的参考价值,⼀般同⽐1/2,1/4

  • 环境搭建:

(1)起压环境:压测⼯具的安装与调试、机器参数记录;

(2)被压环境:基础服务的搭建、web 机代码部署及代码改 造、机器参数记录

  • 环境调试:查看接⼝是否正常

测试数据准备

  • 接口请求参数:自己构造/日志获取/上下关联;

  • 数据表的数据填充;

  • 如果是多接口,则需结合业务场景设计请求⽐例。

性能指标预期设定

  • 每秒请求数(QPS)

  • 请求响应时间(最小、最大、平均)

  • 错误率

  • 机器性能:cpu idle 45%、memory⽆剧烈抖动或者飙升

  • 压测过程接⼜功能是否正常

  • 不同性能测试⽅式下指标预期会有差异

发压⼯具配置及脚本编写

  • 发压时间线:1.测试前环境检查:记录机器参数 2.起压:根据被压情况,调节并发量到适合的情况 3.查看记录各项性能指标(1)nginx⽇志查看每秒请求数(2)查看 nginx 错误请求(3)查看机器参数:cpu idle、mem 等(4)查看 db、cache 等数据是否写⼊正常(5)访问接⼜,查看功能是否正常

测试执行 & 监控

  • 常⽤命令:

  • 1.查看 nginx 每秒请求数:tail -f access.log | awk ‘{print $4}’ | uniq -c

  • 2.查看某个接⼜每秒请求数:tail -f access.log | grep p_getorderstatus |awk ‘{print $4}’ | uniq -c

  • 3.查看 cpu idle:vmstat 1

  • 4.查看内存:free -m

  • 5.查看 nginx⽇志是否有错误请求:tail -f access.log |cut -d ’ ’ -f 10 |grep -v 200

  • 6.查看进程:top、ps aux|grep xxx

  • 7.查看 nginx⽇志某接⼜访问数量:cat access.log.xxxx|grep p_getorderstatus |wc -l

  • 8.杀进程:

指定进程号:kill xxx;

指定部分进程名:pkill xxx;

⾃定义特征:for i in ps aux |grep xxxx|awk '{print $2}';do kill $i ;done 或者 kill pgrep -f xxxx

  • 9.查看 TIME_WAIT 数量:ss -s 或者 netstat -tnlp |grep TIME_WAIT|wc -

测试结果:

  • 1.测试前环境检查:记录机器参数

  • 2.起压:根据被压情况,调节并发量到适合的情况

  • 3.查看记录各项性能指标

(1) nginx⽇志查看每秒请求数

(2) 查看 nginx 错误请求

(3) 查看机器参数:cpu idle、mem 等

(4) 查看 db、cache 等数据是否写入正常

(5) 访问接口,查看功能是否正常

测试报告:

  • 1.根据测试过程中记录的各项参数,结合压测⼯具产生的日志,对测试结果进行分析,并产出测试报告

  • 2.测试完成后,及时与相关人员沟通,确认是否满⾜需求

  • 3.发送测试报告邮件

4,性能测试场景设计

  • 1、负载测试(Load Test):负载测试是⼀种性能测试,指数据在超负荷环境中运行,程序是否能够承担。 关注点:how much

  • 2、压⼒测试(Stress Test):压力测试(又叫强度测试)也是一种性能测试,它在系统资源特别低的情况下软件系统运⾏情况,目的是找到系统在哪⾥失效以及如何失效的地⽅。

  • 3、极限测试

Extreme testing:在过量⽤户下的负载测试

Hammer testing:连续执⾏所有能做的操作

  • 4、容量测试(Volume Test):确定系统可处理同时在线的最⼤⽤户数 关注点:how much(而不是 how fast) 容量测试,通常和数据库有关,容量和负载的区别在于:容量关注的是大容量,而不需要关注使用中的实际表现。


5,性能测试相关概念

  • 并发:并发是指虚拟并发⽤户数,从业务⾓度,也可以理解为同时在线的⽤户数。并⾏

  • 技术上提升压⼒的⽅式:


  • 1、多进程:启动多个进程,每个进程虽然只有⼀个线程,但是多个进程可以⼀起执行多个任务

  • 2、多线程:启动⼀个进程,在⼀个进程的内部启动多个线程,这样多个线程也可以⼀起执行多个任务

  • 3、多进程+多线程:启动多个进程,每个进程再启动多个线程


  • TPS(Transaction per Second):系统每秒处理交易数, 单位是笔/秒。

  • QPS(Query per Second):系统每秒处理查询次数,单 位是次/秒。对于互联网业务中,如果某些业务有且仅有⼀个请求连接,那么 TPS=QPS, ⼀般情况下⽤TPS 来衡量整个业务流程,用 QPS 来衡量接口查询次数。

  • 并发数 = QPS * 平均响应时间

  • 指标分位

获取更多软件测试知识


发布于: 22 分钟前阅读数: 5
用户头像

测试人

关注

专注于软件测试开发 2022-08-29 加入

霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284

评论

发布
暂无评论
软件测试学习笔记丨性能测试体系_软件测试_测试人_InfoQ写作社区