浅谈基准测试

以前的博客介绍过关于性能测试类型的内容,在性能测试中有一种测试类型叫作基准测试这篇博客,就聊聊关于基准测试的一些事儿。。。html

 

一、定义web

经过设计合理的测试方法,选用合适的测试工具和被测系统,实现对某个特定目标场景的某项性能指标进行定量的和可对比的测试。数据库

 

二、特质服务器

①、可重复性:可进行重复性的测试,这样作有利于比较每次的测试结果,获得性能结果的长期变化趋势,为系统调优和上线前的容量规划作参考。架构

PS:这种特质是为了知足基准测试的平常轮询须要。并发

②、可观测性:经过全方位的监控(包括测试开始到结束,执行机、服务器、数据库),及时了解和分析测试过程发生了什么。工具

③、可展现性:相关人员能够直观明了的了解测试结果(web界面、仪表盘、折线图树状图等形式)。性能

④、真实性:测试的结果反映了客户体验到的真实的状况(真实准确的业务场景+与生产一致的配置+合理正确的测试方法)。测试

⑤、可执行性:相关人员能够快速的进行测试验证修改调优(可定位可分析)。spa

 

三、前置条件

基准测试必定要在可控的条件下进行。

面对日益复杂的系统和不断增加的用户数,以及性能测试可能涉及到的多个业务系统,只有作到基准测试所涉及的业务场景、系统架构、测试环境等在可控状态下,

才能获得相对准确的结果,为容量规划、缺陷定位、系统调优提供参考和依据。

 

四、意义

①、为容量规划肯定系统和应用程序的极限;

②、为配置测试的参数和配置选项提供参考依据;

③、为验收测试肯定系统是否具有本身所宣称的能力;

④、为性能基线的创建提供长期的数据统计来源以及比较基准;

 

五、前提

①、测试目的:明确测试的目的,测试什么?用什么测试方法、策略?

②、测试环境:被测系统的环境是什么,SIT仍是UAT活着PAT?

③、测试限制:要执行测试有哪些限制因素,该如何解决?

④、风险因素:测试可能存在哪些风险,解决方案是什么?

⑤、结果分析:对测试结果如何分析?测试产生的数据如何分析、定位?

 

六、原则

①、测试策略:稳定且连续的工做负载,屡次运行,看测试结果数据的正态分布趋势,尽可能取平均值;

②、数据统计:真实环境下测试数据的平均值、峰值各是多少,取值的维度;

③、差别风险:明确存在哪些风险,风险对测试结果的影响,是否忽略;

④、特殊状况:有哪些特殊状况,是否有对应的解决方案(好比支付场景中的支付服务调用,是否采用挡板等);

 

七、须要考虑的因素

交易配比:某些业务场景,一个流程包含多个事务,在模拟并发中,不一样的事务各自的占比;

突发性的读写操做:某些特殊业务场景,会有短时的大流量冲击或者请求数量骤减,该如何模拟(浪涌测试);

系统配置:不一样环境的系统配置不一样,测试结果如何换算、如何对比?

测试时长:测试执行过程当中,运行多长时间,不一样交易运行的时间分配等;

结果展现类型:平均值、峰值、百分比值如何展现,如何对比?

成功/失败占比:每次测试过程当中,成功和失败的事务占比统计;

是否可重现:如测试过程当中出现报错或某些异常状况,是否能够重现?

是否可对比:是否有其余测试工具或者测试结果进行对比(尽可能屡次执行测试,进行测试结果对比:标准方差、正太分布了解一下?)?

 

八、简单可行的方法

逐渐增长系统负载是一个肯定系统所能处理的最大吞吐量的简单办法,也是寻找系统性能拐点的可行策略(阶梯式加压测试)。

 

九、重点

基准测试的工做重点是统计分析:能够从如下几个维度去进行统计:

①、选择合适的测试工具,设定合理的测试方法以及须要确认的系统性能指标;

②、选择不一样的测试工具,对测试结果进行对比,选择稳定且能反应系统真是性能表现的结果;

③、屡次执行测试,收集大量的测试数据集和指标;

④、从不一样维度解读分析数据,生成报告。