压测工具---ContiPerf

目录

  • 简介
  • 使用
    • 引入jar包
    • 测试用例
    • PerfTest参数说明
    • Required参数说明
    • 名词解释:TP90
  • 报告查看
    • 指标

1. 简介

ContiPerf 是一个轻量级的测试工具,基于JUnit 4 开发。可以指定在线程数量和执行次数,通过限制最大时间和平均执行时间来进行性能测试,并且可以生成report,帮助做性能分析。

2. 使用

2.1 引入jar包

testCompile('org.springframework.boot:spring-boot-starter-test')
testCompile('org.databene:contiperf:2.3.4')

2.2 测试用例

@RunWith(SpringRunner.class)
@SpringBootTest
public class ProductReceiveOrderServiceImplTest {
    @Autowired
    private IProductReceiveOrderService productReceiveOrderService;
    //激活ContiPerf
    @Rule
    public ContiPerfRule i = new ContiPerfRule();
    @Test
    //指定调用次数/线程数
    @PerfTest(threads = 20,invocations=30000)
    //指定每次执行的最长时间/平均时间/总时间
    @Required(max = 1200, average = 250, totalTime = 60000) 
    public void testQueryOrder(){
        System.out.println("begin ...");
        productReceiveOrderService.init("name");
    }
}

2.3 PerfTest参数说明

参数 说明
@PerfTest(invocations = 300) 执行300次,和线程数量无关,默认值为1,表示执行1次
@PerfTest(threads=30) 并发执行30个线程,默认值为1个线程
@PerfTest(duration = 20000) 重复地执行测试至少执行20s

2.4 Required参数说明

参数 说明
@Required(throughput = 20) 要求每秒至少执行20个测试
@Required(average = 50) 要求平均执行时间不超过50ms
@Required(median = 45) 要求所有执行的50%不超过45ms
@Required(max = 2000) 要求没有测试超过2s
@Required(totalTime = 5000) 要求总的执行时间不超过5s
@Required(percentile90 = 3000) 要求90%的测试不超过3s
@Required(percentile95 = 5000) 要求95%的测试不超过5s
@Required(percentile99 = 10000) 要求99%的测试不超过10s

2.5 名词解释:TP90

指在一个时间段内(如5分钟),统计该方法每次调用所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第90%的那个值作为TP90 值;配置此监控指标对应的报警阀值后,需要保证在这个时间段内该方法所有调用的消耗时间至少有90%的值要小于此阀值,否则系统将会报警

3. 报告查看

contiperf-report目录,里面有个index.html文件就是测试结果

3.1 指标

指标 说明
Execution time 执行总时间
Total invocations 总请求数
Throughput 每秒效率 TPS
Min. latency 最短响应时间
Average latency 平均响应时间
Median TP50响应时间
90% TP90响应时间
Max latency 最长响应时间

你可能感兴趣的:(性能,压测,ContiPerf)