要比较一个系统中两个模块的性能差别(比如同一个库中的两个类似的表),有两种压测模式:
1. 一个test plan含两个senario, 执行一次,同时出两个模块的结果。
2. 搞两个test plan, 各带一个senario; 各执行一次,各出一个结果。
第一种模式很有吸引力,因为它可省下很多重复的配置工作;只执行一次,比较省时;像jmeter之类的还会直接给出直方图,以示比较。
然而,我的亲身经历表明,第1种模式由于公共资源占用问题会导致“大锅饭”效应: 同时压测两个模块,慢模块会占用过多公共资源(cpu, 内存,连接池等),导致快模块无法获得足够的资源因而也变慢。 这种模式下比较出来的结果并不准确。
所以,还是应该把两个测试互相隔离起来,搞两个 test plan,各带一个senario吧。
p.s. 如果你用jmeter,可以只写一个test plan,带两个sampler, 然后enable一个,disable另一个,这样每次执行时仍是隔离的。