在这半年以来,我陆续参加或者独立承担的项目组版本的部分性能测试,慢慢的有了一些认识,暂时做一个积累,和大家做一个交流
性能测试的需求背景一般来自于以下三种情况:
第一种是现网出现性能问题,项目组专门进行了性能改造。比如修改的某个接口,由原来的同步调用修改成了异步,又或者是更换了新的api,由tcp协议修改为udp协议,为了保证新替换的api的可靠性,都需要进行性能测试
第二种是一个新做的系统,运营人员需要全面的把脉,了解该系统的处理能力。
第三种是随着请求量的快速增长,而该系统却从未做过性能测试,项目组担心系统在可预见的短期会扛不住,所以要求测试人员对该进行全面的性能测试,给出一份参考数据
根据背景的不同我们往往有不同的准备方式,但是大致可以从以下几个方面入手准备。
1、全面了解该系统概况
(1)系统所期望的性能指标:
对于第一二两种情况,都会有很明确的现网性能指标,比如以前测试的acs,是一个新作的系统,需求说明书中就明确标注需要达到1wtps.而对于第三种情况,往往我们需要尽量的模拟现网,得出数据供运营做参考。例如最近测试的查询限制引擎,测试这边给出了单台svr的处理能力以及是否支持平行扩展等运维最关心的数据即可。
(2)组网以及网间各个系统之间的通信形式:
有时我们性能改造只是组网中一个小小的系统,这就需要我们去弄清楚这个系统在整个逻辑处理中所处的位置。
图1
了解被测系统在整个交易中的位置,对于测试用例的设计以及测试环境的搭建是至关重要的
其次,还需要了解组网中各个模块之间的通信方式,tcporudp,同步调用还是异步调用,长连接还是短连接。
(3)系统的各个逻辑分支:
了解系统的逻辑分支,主要是有利于设计测试用例。在我们实际的工作过程中,时间总是很有限的,而我们提高工作效率的一个很重要的方法就是重视用例的设计,了解了系统的各个逻辑分支,可以很精准的准备用例,直击问题的本质,减少摸索的时间。
举一个例子,psc系统性能改造版本(如图1),几乎所有的业务逻辑都要走ssp去查询是否受限,但是我们选择其中的一条最简单的受周边系统最小的二级赠送分支进行测试,利用最短的成本验证问题,很好的保证了测试的进度