需求:如何设计一个5W并发量的性能测试场景?
1、确定性能测试工具,性能测试思路
测试工具:Jmeter并发设计思路:如果被测服务足够快,比如10ms的响应时间,1个线程/秒就是100tps,5万的TPS,就得启动500个JMETER线程。测试时可以多加20%~50%的线程,连续阶梯加压看TPS完整过程,根据实际情况选择发压服务器配置。
Jmeter能启动多少线程:
①线程数受什么影响?Jmeter是一个Java进程,一个Java进程下的线程数受什么影响?
由堆内存、栈内存以及可用空间(本机的物理内存的剩余内存)决定的。
②以Jmeter 5.1版本为例,在Jmeter.bat文件设置堆内存注意:一般而言,堆的最大值不要超过物理内存的一半,否则容易导致Jmeter运行变慢、卡顿甚至内存溢出,因为Java本身的垃圾回收机制是动态分配内存。
当需要模拟的线程数较大时,就需要根据具体情况采用分布式压测的方式了。
2、确定项目架构,以及环境
①需要确定项目架构,包括不限于:服务器、数据库、中间件,整个链路②确定测试环境服务器等资源,与生产对比(成比例)
3、确定业务需求
①单接口
②多接口(事务)
③确定业务量:峰值、日业务量、半年/一年的业务量
4、编写性能测试用例、脚本、执行场景
①性能测试用例(模板)
②性能测试脚本(JMETER)CSV参数化参数提取(正则表达式)断言........
③执行场景
基准测试:1个并发执行5分钟,关注tps、响应时间、运行次数等参数
负载测试:多个并发执行5分钟,关注tps、响应时间、运行次数、服务器的cpu、内存等参数
阶梯测试:通过不断增压,找到拐点。关注tps、响应时间、运行次数、服务器的cpu、内存等参数
疲劳测试:多并发,7*24小时运行,无报错异常。(根据实际情况执行,有的要求持续运行8小时即可)
5、调优、报告
①首先在服务器执行top命令,查看CPU消耗,us、sy哪个消耗的比较多。
②找到消耗cpu的线程,再找到线程调用的方法。
③如果内存消耗比较多,检查日志级别。查看IO状况。
④检查是否存在慢sql。
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。