【性能测试】自己遇到的常见问题

性能测试常见问题

1、一般策略

     (1)一般先针对单个接口进行压力测试、并且在测试过程中寻找该接口的性能瓶颈;然后才是多接口的场景压力测试、场景的稳定性测试;

2、测试人员可能导致的异常

     (1)进行压力测试之前,应该观察需要压测的服务机器稳定状态,如果还没有进行测试,CPU占用率、内存使用率就已经很高,这个时候应该查明原因,带系统稳定之后再测试,否则你测试时候的实际压力已经很高了,比你测试的压力还高,那么你的测试就毫无意义;
     (2)有些接口带Cookie和不带Cookie的性能会差别很大,这个需要注意;

3、系统问题

     (1)接口是否添加缓存,例如常见的商品详情页接口,未加缓存和加了缓存的差别非常大(可以将访问量比较高的数据,放到redis或者memcache等缓存库中)
     (2)循环读库问题,这个涉及SQL的优化,例如常见的查询一批id的数据,见过有些开发在java中写了遍历List,然后循环读库,表示无语。这个循环就建议放到SQL语句的IN语句中处理;
     (3)可以使用jprofiler定位java的性能问题
                1. 可能存在嵌套循环的性能问题,这个需要找出优化循环操作数据的方法,例如简单的for循环的嵌套,循环少的一定要放在最外层,循环多的放在最里层;
                2. 数据能够少拿尽量少拿,比如有两个接口,一个接口是需要拿出用户的全部数据,另外一个接口是需要拿出用户的昵称即可,如果昵称的那个接口访问量是比较高频的,就应该单独写一个接口,而不是共用一个接口。
                3.
     (4)用来进行测试的肉机带宽大小,如果你的机器带宽是10M,但是实际你测试的接口流量达到8M/s了,甚至超过10M,那么这个时候瓶颈并不在服务上,而是出现在你的配置上了;
     (5)进行压力测试前,确认系统风控、流控限制是否取消,否则可能导致测试数据不准确;

你可能感兴趣的:(性能测试)