爆肝整理,性能测试详细汇总,从0到1打通(二)
目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
等待队列
在程序中,都会涉及到等待队列的,不管是同步交互还是异步的交互中,都会涉及它的最⼤队列,这样设计的核⼼思想是防⽌在客户端⾼并发的情况下服务端在没有队列的情况下出现雪崩以及最终导致服务端出现瘫痪,因此队列 等待是⾮常核⼼并且是⾮常有必要的。
在等待队列中,测试需要得出如下⼏个性能数据:
1)队列设置的值是多少?最⼤可以运⾏的任务是多少?
2)需要测试到排队的策略机制,也就是说模拟⼤批量的程序进⾏排队,然后⼀个任务执⾏结束后,队列位置释放 ⼀个,等待中的可以⽴刻进⼊然后执⾏,这中间就设计到先进先出还是先进后出,以及线程优先级的设计策略
3)线程在排队的过程中,设置最⼤的等待时间是多少,也就是说⼀个线程不可能永远处于等待中,那么等待多 久,还是没到执⾏的阶段,这个时候服务针对排队等待的线程处理的机制是?
这个时间专业术语就是:访问等待时间
4)那么⼀个线程完整的时间是由三部分组成的,响应时间:客户端发起请求的时间+访问等待时间+逻辑执⾏时间 +返回给客户端的时间。
⼀般在测试中,可以把每个线程名称设置为uuid,这样它都是独⽴的,可以依据这个 uuid,让开发同学配合输出每个阶段的时间输出,然后就可以得到每个阶段的具体时间了,根据时间再来判断时间 是否优化。
队列:Queue 规范:First In First Out ----》先进先出
队列方法
put:往队列里面放数据
get:取出队列里面的数据
empty:判断队列是否为空
队列注意事项:
1)当队列满了的时候,再往里面放的时候是无法放的,如果是程序,就会卡死
2)当队列为空的时候,再取出数据,也会卡死
生产者消费者模式
生产者(Producer) :不断的生产数据,使用的方法是put
消费者(Consumer):不断的消费数据,使用的方法是get
性能测试模型
性能测试模型也可以理解为性能测试步骤,具体汇总为如下:
1)测试前期准备
①梳理性能的目标(性能测试的目标是测试主导,然后测试制定出来后,和团队里面其他相关的人一起决定)
( 性能测试的目标参考依据是什么?是产品的需求文档以及产品的用户体量和系统的架构)
②性能测试的数据
③性能测试场景的设计以及性能测试用例的设计
2)测试工具技术引入
①LoadRunner:HP公司研发的工业级别的性能测试工具,是收费的一款性能测试工具
②JMeter:100%使用Java语言研发的性能测试工具,是开源的,互联网公司基本使用的都是该性能测试工具
③Locust:是基于Python的协程来设计的性能测试工具,需要编写Python代码来进行性能测试
④Gatling:是微服务架构下高性能的性能测试工具
3)性能测试计划
①明确每个性能测试的任务开始的时间和结束的时间
②明确每个任务的具体负责人
③明确性能测试工具
4)测试设计与开发
使用选择好的工具/代码,来设计场景/编写代码来测试设计好的性能测试用例;
测试执行与管理,数据收集;
①多次测试执行,收集每次性能测试的数据(系统资源:CPU和内存,数据库资源:连接数和IOPS,JVM资源:内存资源 响应时间:最大,最小,平均,中位数,90%,95%,99%,吞吐量)
②数据收集后的数据可视化展示
5)测试分析
实际收集的结果,来得到最终的结论:吞吐量,响应时间等等,与期望的目标进行对比,来判断是否达到目标
性能测试的注意事项:
测试环境服务器的配置与生产环境服务器的配置必须一致,这样出的结论才具有参考价值
面试题
1)在性能测试之前,请根据顺序简述下需要有哪些测试准备工作?
①梳理性能的目标
②性能测试的数据
③性能测试场景的设计以及性能测试用例的设计
2)性能测试过程中,开发说需要添加服务器性能测试菜呢个继续,此时您会?
可以加,生产、开发、测试都加,测试环境服务器的配置与生产环境服务器的配置必须一致,这样出的结论才具有参考价值。如果只有开发加,是不行的。
3)日常使用什么工具进行性能测试?性能测试重要的指标有哪些?
①LoadRunner:HP公司研发的工业级别的性能测试工具,是收费的一款性能测试工具
②JMeter:100%使用Java语言研发的性能测试工具,是开源的,互联网公司基本使用的都是该性能测试工具
③Locust:是基于Python的协程来设计的性能测试工具,需要编写Python代码来进行性能测试
④Gatling:是微服务架构下高性能的性能测试工具
性能测试重要的指标:
系统资源:CPU和内存;数据库资源:连接数和IOPS;JVM资源:内存资源 响应时间:最大,最小,平均,中位数,90%,95%,99%;吞吐量
性能测试是怎么做的?请描述
首先要做测试前期准备
①梳理性能的目标②性能测试的数据③性能测试场景的设计以及性能测试用例的设计
第二步测试工具技术引入
①LoadRunner:HP公司研发的工业级别的性能测试工具,是收费的一款性能测试工具
②JMeter:100%使用Java语言研发的性能测试工具,是开源的,互联网公司基本使用的都是该性能测试工具
③Locust:是基于Python的协程来设计的性能测试工具,需要编写Python代码来进行性能测试
④Gatling:是微服务架构下高性能的性能测试工具
第三步性能测试计划
①明确每个性能测试的任务开始的时间和结束的时间
②明确每个任务的具体负责人
③明确性能测试工具
第四步是测试设计与开发
使用选择好的工具或代码,来设计场景或编写代码来测试设计好的性能测试用例;
第五步测试执行与管理,数据收集;
①多次测试执行,收集每次性能测试的数据(系统资源:CPU和内存,数据库资源:连接数和IOPS,JVM资源:内存资源 响应时间:最大,最小,平均,中位数,90%,95%,99%,吞吐量)②数据收集后的数据可视化展示
最后是测试分析
实际收集的结果,来得到最终的结论:吞吐量,响应时间等等,与期望的目标进行对比,来判断是否达到目标
5、描述下你是怎么理解IOPS,吞吐量,TPS,QPS的?
IOPS:该术语主要是针对数据库的,也就是每秒发⽣的输⼊/输出操作的次数,是数据传输的⼀个度量⽅法。⽤于磁盘的 读写,IOPS值的是每秒读和写的次数。
TPS:统计的是每秒处理的事务数,即系统每秒能够处理的事务的数量。
QPS:指的是每秒查询率,如DB服务器在规定时间内处理流量多少的衡量标准。
你是怎么理解软件的性能的?
性能是一种指标,是软件系统对于及时性的符合程度。对于一个产品根据响应时间和吞吐量衡量性能的及时性,响应时间是一个http完整的请求流程时间之和。对用户而言,响应时间是端到端的用户基本体验
完整版!企业级性能测试实战,速通Jmeter性能测试到分布式集群压测教程
下面是我整理的2025年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
人生最动人的篇章,往往写在最艰难的转折之后。当你觉得力不从心时,请记住:每一个"不可能"的突破,都始于"再试一次"的勇气。你的坚持,正在为世界书写新的可能!
别让他人的质疑成为你的枷锁!你体内蕴藏着改变命运的力量,每个微小的进步都在为辉煌铺路。当别人停下脚步时,你的坚持就是最有力的回应。向前走,属于你的舞台正等待绽放!