参考《全栈性能测试修炼宝典JMeter实战》第十五章 JMeter常见问题
1、无法产生负载
注意检查各元件是否时禁用状态。JMeter在运行时是以数形式加载各种元件的,如果父节点被禁用,那么其下的所有子节点将不会运行。虽然下面的子节点没有被禁用,但运行时根本无法产生负载,但JMeter不会报错。
2、做接口测试
常见的有HTTP协议、Socket协议、WebSocket协议、Soap协议等,只要构造好表单,在JMeter中用相应的Sampler就可以模拟请求。
3、多个测试计划运行
在编辑菜单栏中有个合并操作,点击后可以将多个测试计划合成一个,每一个脚本是一个线程组,运行时同时运行线程组即可。
4、找导致CPU瓶颈的程序
在性能测试分析时,往往采用自底向上的方式来进行问题分析,我们从硬件的指标来反向追索问题根源。其中CPU的性能瓶颈分析最为常见。
监控CPU使用率,CPU使用率分为系统和用户的使用率。
系统CPU利用率高可以先关注下IO,有没有非空闲等待,通常的系统CPU利用高都是IO问题,此时的中断与切换都高。
用户CPU利用率高,直接使用top命令查看系统进程和线程,通过线程或进程ID可以找到对应的程序。
5、找导致内存瓶颈的程序
linux系统可用内存包括物理内存、缓存、程序占用的内存等部分。内存瓶颈会导致程序运行缓慢甚至系统崩溃,通过监控内存的使用情况发现潜在的性能问题。
6、找导致IO瓶颈的程序
网络IO的监控可以监控网络中断、带宽、网络连接数及网络连接状态,从而确定那方面的瓶颈。
本地磁盘IO可以监控有没有IO的非空闲等待
7、计算并发用户数
并发数受到很多因素的影响。比如思考时间、工作时间、业务分布等,通常技术并发用户数有三种方式:
由TPS来估算并发数
由TPS来估算,适用于联机操作系统,这类系统响应时间快、业务量大。
Vu(业务名称)=TPS(业务名称)x (RunTime+ThinkTime)
Vu表示此业务的虚拟用户数,RunTime时测试程序/脚本运行一次所消耗的时间,包括事务时间和非事务时间
由在线活动用户数来估算并发数
适合于读请求多的系统,比如新闻
根据经验估算
不是一种严谨的估算方式。
8、性能测试的分析方法
自底向上:通过监控硬件及操作系统性能指标(CPU、内存、磁盘、网络等硬件资源的性能)来分析性能问题(配置、程序等)。因为用户请求最终是由计算机硬件设备来完成的。
自顶向下:通过生成负载来观察被测试的系统性能,比如响应时间、吞吐量,然后从请求起点由外及里一层一层分析。