contiperf施压机制初步探索总结

    contiperf是一个轻量级性能测试框架,它让用户在基于junit4的接口测试用例上执行性能测试,官网链接如下:http://databene.org/contiperf.html。下面对ContiPerf的实现做一个概要的分析:
    1.contiperf扩展自junit,所以可以使用junit的eclipse插件在eclipse中运行;
    2.junit4以上,扩展junit通常使用两种方式,一种是继承junit的runner类,junit默认使用的runner是BlockJUnit4ClassRunner,通过在runner中定制运行用例的流程,从而达到改变或者定制运行单元测试用例的目的;另外一种方式是使用junit自带的扩展接口MethodRule,用户只需要实现MethodRule接口,在用户的测试用例中声明这个接口实现的实例,junit在运行的过程中会解析这个接口,使用这个接口中指定的行为来包装测试用例的运行;
    3.contiperf使用的是扩展MethodRule的方式;
    4.contiperf以ContiPerfRule作为和junit的接入口,junit在执行测试用例过程中读取ContiPerfRule并在执行junit的测试用例之前包装ContiPerf指定的流程。
    5.ContiPerf接入的主要流程:解析单元测试用例上的PerfTest注解,剥离级联在单元测试方法调用之上的一些RunBefore和RunAfter(这么做的目的是去除执行性能测试时多余的性能消耗),设置性能测试报告上下文,组装ContiPerf性能测试运行流程;
    6.ContiPerf的测试流程:InvocationRunner.run--->根据配置选择具体压测Runner--->ConcurrentRunner||TimedRunner||CountRunner.run-->JunitInvoker调用junit的单元测试用例。
    7.上一点中,TimeRunner实现了调用目标用例指定时间的实现;CountRunner实现了调用目标用例指定次数的实现;ConcurrentRunner则实现了多线程并发对TimeRunner或者CountRunner的调用,ConcurrentRunner会启动配置指定的线程数调用TimeRunner或者CountRunner;执行时间的配置优于执行次数。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值