测试准备包括测试客户端机器准备、测试数据准备、测试脚本准备。
客户端机器:要足够,否则,如果瓶颈在客户端,就无法评估服务端。要和服务器保持网络通畅,否则,如果瓶颈在网络,也无法评估服务端。包括:网络带宽要高于服务器吞吐量、网络带宽要稳定。
测试数据
如果被测功能涉及数据库和高速缓存,通常需要预设很大的数据量才能凸显性能瓶颈,这通常是挺困难的一个环节。
如果是已经上线的应用,数据可以从线上拷贝得到;如果还没有上线,那需要构造类似于线上的数据量。
比如,要测试群聊性能,我们首先需要注册大量用户;然后把测试用户都加入到聊天群中。
测试数据准备的脚本,有时候比测试脚本本身还要多。
对于实在没有办法构造大数据量的情况,如果要测试高速缓存,我们有时候会按数据量的比例减少高速缓存,以使测试结果尽量准确。
测试脚本
Grinder脚本用jython实现
测试脚本的实现往往会花费比较长的时间
因为涉及到应用实现的细节,需要和开发不断交流才能完成。这也是需要了解应用架构的原因之一。
关于sleep time
基于真实模拟的考虑,sleep time还是尽量按照真实时间,并给一定的偏差。
不过对于测试客户端来说,sleep time往往会引起很多客户端测试线程的调度,浪费客户端系统资源。
Sleep time越小,客户端能模拟的吞吐量就越大,所以,实际测试中,我们往往会把sleep time设置为0 。
文章来源于领测软件测试网 https://www.ltesting.net/