由于Fitnesse上所有case的执行都是向SlimServer发送Http请求,那么我们可以针对相关Case实现性能测试,这样的好处有以下三点:
1. 用于在Fitnesse上已经构建了相关的测试场景或者业务逻辑,我们只需要利用性能测试工具去调用这些Case便可以实现压力测试。
2.在准备压力测试数据的时候,由于有些数据需要多个接口组合调用才能完成,比如下面的测试场景有两个webservice接口,CreateMember和CreateOperator
每个Member下面有多个Operator,我们要先构建Member才能创建Operator,如果直接使用Jmeter的话要首先创建Member接口创建member,然后在调用CreateOperator
接口创建operator,其中member中的memberId还要和OperatorId做关联,无疑要相对麻烦一些。因为我们先前已经利用Fitnesse对CreateOperator做过功能测试,在Fitnesse
的Case中已经完美的实现创建Operator这个场景,并且做到数据的关联,因此我们只需要直接利用这个Case做压力测试数据准备工作。
3.可以利用功能测试的Case实现压力测试,使功能测试和压力测试串联起来,可以互相协助并发现一些功能和性能上的问题。
下图给出一个Fitnesse接口Jmeter做压力测试的例子:
其中红色方框中的路径,便是Fitnesse上面case的路径,记得一点要加上?test,这样便告诉Jmeter这是一个执行Case的get 请求。
当然利用Fitnesse做接口压力测试,也要注意,由于在Fitnesse上面书写的Case可能没有考虑接口的Response Time, 比如在两个接口的组合调用中有Thread.Sleep(time)等,所以在压力测试中对接口的Response time的检查一定要去除这些等待时间或者其他对压力测试结果有影响的时间因素,这个需要在功能测试中对每个接口调用时要清晰的在日志中记录一些影响因素,便于压力测试时的分析。