确定测试结果可信度,指的是性能测试结果是否稳定可靠。也就是说,测试得到的各种指标数据是不是反映了系统真实性能的情况。例如,如果同一套脚本在对同 一测试对象(即被测对象本身没有变化,例如同一页面)进行的数次测试中,一般情况下页面响应时间指标忽高忽低的话,则说明该测试缺乏信度。则得到的响应时 间并不能反映系统在真实生产环境的响应时间。测试的信度与测试的效度有着密切的关系。一般说来,只有信度较高的测试才能有较高的效度,效度较高的性能指标 才有较高的实际性能分析价值和对改进性能方案进行决策时的参考价值。测试的信度主要涉及到测试工具自身的可靠性和测试环境稳定性以及测试方案成熟性这三个 方面。
第一,测试工具自身的可靠性。
测试工具的可靠性,主要是指测试工具本身是否有Bug,性能计数器是否准确等和性能测试工具针对当前性能测试项目的场景进行的设置是否合理。
解决办法:
针对性能测试工具本身功能方面,要对要使用的性能工具进行评估,商业工具和开源工具以及自己开发的工具,甚至是一些简单插件,一些小的 Application等。虽然他们的性能测试原理都是相同的。但是还是要根据项目情况和工具情况进行整体评估,特别是一些特别项目,并不是一定商业工具 就更稳定可靠,但是相对而言,商业工具功能较为丰富,简单易学习,稳定性也可以。结合成本和项目情况可以选择自己开发工具,也可以定制工具,也可以对一些工具进行部分改进,例如自己做个更加精确的计数器。
针对工具设置方面,结合项目情况选择最合理的设置,也许run脚本时候的很多问题,就是由于设置产生的。这部分需要对使用的工具很熟悉,清楚一些常用属 性的设置场景。例如一些基本的设置:Agent和Controller的设置,scenario设置,counter sets,run setting。
第二,测试环境稳定性。
测试环境的稳定性对性能测试结果的重要性,相信已经都深有感触。每个项目做性能测试方案时候都要梳理一遍可能影响request的开关,过期时间等设置。
解决办法:
首先要尽可能建立一个独立的性能测试环境,即使一些大型程序,例如大型的电子商务网站,数据库过于庞大,难以建立独立的性能测试数据库环境,也要对性能测试数据进行一些标识,建立环境时候,要确保web server上的版本和windows server版本相对应,即时根据测试方案要求更新测试版本。要对一些用的cache server、Application server,搜索引擎等server集群进行合理设置。以使其符合项目性能测试的要求。
第三,测试方案成熟性。
测试方案是对一个性能测试从始至终的所有工作的指导。性能测试相当于做一个精密的实验,方案的精密严谨性就直接会导致得到的性能测试指标准确性,合理性。
解决办法:
首先要熟悉该次性能测试的目的,和测试需求。深入分析需求,提取出一些关键点,熟悉涉及到相关部分的业务,特别是涉及到request的,是Html请 求,还是Ajax请求,请求中是否包含动态数据,例如一些cookie参数等。根据以上了解,提取出性能测试场景。给出详细的测试场景执行方案,以及测试 指标名称。给出性能指标分析策略。取数据的策略(例如重测法,交替形式法,对半法等)。
测试执行过程中要时刻保持精密的思想,确保性能测试从始至终都要有据可依,有理论可考。最终才能得出具有很高参考价值的性能指标数据,这样才能得出有效的性能测试结论。
本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/