目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
单个接口的压测(基准容量测试)
目的:验证被测试接口的最高TPS(基于一定的响应时间ms),TPS是从服务端角度验证接口性能;
方法:采用梯度压测方法,按照设置的梯度逐步递增压力,观察TPS曲线变化(测试时注意递增的粒度,粒度需要细化到TPS曲线跟随梯度压力曲线呈梯度变化)
最大TPS:
当梯度压力增加时,TPS趋于稳定不再增加,继续增加压力接口响应时间不断增加,该TPS即是最大TPS(对于无明显性能拐点的系统适用);
当梯度压力增加时,TPS达到最大值,继续增加压力接口TPS会不断降低,响应时间不断增加,TPS曲线的最高点即为该接口最大TPS(对于有明显性能拐点的系统适用);
注意点:tps=1000/接口响应时间(ms);线程组数与接口所支持的并发没有必然联系,接口的最大tps即是所支持的并发
多接口串联压测(场景式压测)
目的:验证被测试系统链路在高并发场景下的响应时间(响应时间需要根据业务确定),同时观察服务器的资源占用情况;根据响应时间来确定当前系统链路所支持的用户并发数量以及对应的请求数;
方法:采用逐渐加压方式加压到预期压力值,持续压测一段时间,观察记录系统链路的整体tps与响应时间,关注每个接口的错误率;
注意点:csv参数化变量数据需要大于设定的并发线程组数;链路中为了模拟真实用户操作,需要加入合理的思考时间(2s,3s);
多接口串联负载(场景式负载)
目的:验证被测系统在一定压力下长时间运行的稳定性,主要观察系统响应时间,接口错误率,tps;
方法:
施加预期的压力数让系统长时间运行,观察响应时间,tps,以及接口错误率(预期能够长期稳定运行,tps达预期后稳定浮动,响应时间符合业务需求,无接口大面积报错);
施加极大压力数让系统长时间运行,观察响应时间,tps,以及接口错误率(预期虽然响应时间变长但能够稳定运行,响应时间变长后,接口报错率在可接受范围内)
高并发性能压力测试
测试场景:模拟618百万级的订单量一个物流信息的查询接口。
条件:接口响应时间<150ms以内。10万并发量每秒。
设计性能测试方案:
生产环境:
10W/S–并发量(架构师/技术负责人提供)
20台机器(4G*4核配置)
性能测试环境:
出于成本考虑,绝大多数公司,是做不到和生产环境一样配置的。有些生产环境有几百台甚至几千台机器,测试环境做不到。
基准测试 – 少量的请求,少量的服务器 – 性能测试 – 通过理论推导 生产环境性能
(4G*4核配置)1台 --> 性能指标 – 推导 --只需要1台与服务器相同配置的机器能完成5000/s并发量即可(类似数学中的同理可得,以此类推)
注意事项:
性能测试项目部署服务器硬件型号 – 和生产环境一致
性能测试用例设计:
生产环境面临并发量100000,服务器20台,平均到每台服务器5000/s,当并发需求=5000/s的时候,并发量要大于等于5000/s才扛得住。
性能指标:
吞吐量(接受发送):>=5000/S(QueryPS – 查询数据场景(一秒内 处理查询请求数量)-- TransactionPS – 多个操作/设计数据修改的请求)
单位时间(s)-- 处理请求的数量;
并发量:5000/s(相对并发:某一个时间段)(绝对并发:同一个时间);
响应时间:接口请求从开始到结束完整时间 – 150ms;
性能测试用例 – 执行步骤 + 执行结果验证;
负载测试 – 系统承载的极限并发;
不断加大并发 – 直到系统不满足性能需要【性能瓶颈】【拐点】;
压力测试(稳定性测试)-- 极限并发情况下,系统能否稳定 指定时间(一般压力测试时间大于12小时);
两个测试的先后顺序:先做压力测试再做负载测试,主要是因为要做压力测试你首先要知道极限并发是多少,负载测试就能知道极限并发。
线程目的:去执行接口调用
模拟总共500线程 --> 慢慢增加 – 最终达到
只压500线程而不是5000线程的原因是,接口平均访问返回时间为100ms,1秒就有1个线程就可以造成10并发的压力,所以只需要500个用户,1秒就能达到5000并发的压力。
Jmeter用到的插件有:
Stepping Thread Group和loadrunner一样,梯度压测,每次递增可以在Next,add中自己填入参数。
Jmeter压测实时仪表盘在后端监听器中。Grafana(目前还没研究这个仪表盘,等接口框架都写完再来继续填坑)
…
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
只有经历黑暗,才能看到光明;只有奋斗不息,才能拥抱成功;只有坚持不懈,才能追寻梦想。无论前路多么艰辛,勇往直前,你定能创造属于自己的辉煌人生!
只有拼尽全力,才能超越自我,只有不断进取,方能成就辉煌。无论前路多么艰难,我们都要坚持奋斗,因为只有这样,梦想才会变成现实,成功才会属于我们。相信自己,追逐梦想,勇往直前,你一定能够实现一切!
只有经历坎坷与挫折,才能找到成功的路径,只有付出辛勤与努力,才会迎来辉煌的未来。不忘初心,奋斗不止,相信自己的潜力,你必将创造无限可能!