在功能测试中,特别是在验证特定功能需求或用户故事的功能元素时,我们通常需要清楚地定义预期结果,并据此解释测试结果,以确定测试是否通过。它将事先明确定义的期望结果作为参照物,并将测试的实际结果与此参照物进行比较。
但性能测试中通常缺乏这种信息来源,往往事先不存在标准的、唯一的期望结果(即参照物)。不但利益相关方(例如客户)常常不能很好地阐明性能需求,而且许多业务分析师和产品负责人也很有可能不善于挖掘需求。在定义测试的期望结果上,测试人员能获得的指导通常非常有限。
在评估性能测试结果时,对结果进行仔细观察和分析是非常重要的。由于最初的原始结果可能具有误导性,性能问题可能会隐藏在表面良好的整体结果之下,测试人员需要扒开表象看本质。例如,对于所有关键的潜在瓶颈资源,其资源利用率可能远低于75%,但关键事务或用例的吞吐量却很小或响应时间很长。
具体的性能测试的结果取决于正在执行的性能测试类型、选定的度量指标以及收集的数据。
一、响应时间
平均响应时间:所有请求的平均处理时间。
最大响应时间:最长的一个请求所花费的时间。
90/95/99百分位响应时间:例如,95%的用户请求在多少时间内得到响应。
二、吞吐量(Throughput)
每秒事务数(TPS, Transactions Per Second):单位时间内完成的交易数量。
每秒请求数(RPS, Requests Per Second):单位时间内处理的请求数量。
吞吐量通常以每秒的数据传输速率来表示,比如MB/s或GB/s。
三、并发用户数
系统能够同时支持的最大在线用户数量。
不同的用户行为模式下,系统能支持的并发用户数可能不同。
四、错误率
错误发生频率:测试过程中出现的错误次数。
错误类型:HTTP状态码、数据库连接失败等具体的错误类型。
五、资源利用率
CPU使用率:服务器CPU的占用情况。
内存使用率:应用程序及系统的内存消耗情况。
磁盘I/O:磁盘读写速度和使用情况。
网络带宽:网络接口的数据传输速率。
六、稳定性
测试期间系统是否稳定运行,是否有宕机或重启的情况。
长时间运行下的表现,如24小时或更长时间的压力测试结果。
七、可扩展性
当增加更多的硬件资源时,系统性能是否按预期线性增长。
分布式架构中添加节点后,整体性能的变化情况。
八、基准对比
与之前版本或其他竞争产品的性能对比。
与设定的性能目标进行比较,看是否达到预期标准。
九、用户体验相关指标
页面加载时间:对于Web应用来说,这是非常重要的一个指标。
用户感知延迟:从用户发起请求到获得反馈的时间。