性能指数Apdex(Application Performance Index)是一个国际通用标准,Apdex 是用户对应用性能满意度的量化值。它提供了一个统一的测量和报告用户体验的方法,把最终用户的体验和应用性能作为一个完整的指标进行统一度量。Apdex标准从用户的角度出发,将对应用响应时间的表现,转为用户对于应用性能的可量化范围为0-1的满意度评价。
Apdex的原理
根据应用性能评估确定应用响应时间的最优门槛为Apdex阈值,然后根据应用实际响应时间结合Apdex阈值定义了三种不同的性能表现:
Satisfied(满意):应用响应时间低于或等于Apdex阈值。比如Apdex阈值为1.5s,则一个耗时1s的响应结果则可以认为是满意的。
Tolerating(可容忍):应用响应时间大于Apdex阈值,但同时小于或等于4倍的Apdex阈值。假设应用设定的Apdex阈值为1s,则4*1=4s为应用响应时间的容忍上限。
Frustrated(烦躁期):应用响应时间大于4倍的Apdex阈值。
如何计算Apdex
Apdex 对应用中发生的任务进行采样,并且按其响应时间把采样划分到相应的满意度区间,计数,再用一个公式计算 Apdex 指数:
0 代表没有满意用户,1则代表所有用户都满意。
总体来说,Apdex评分是一个衡量服务级别和用户满意度的重要标准,侧面衡量了企业业务的增长性。此外,这些值更容易解读,不像传统的平均响应时间和吞吐量的值,它们不能精确的解释执行缓慢的事务以及对用户满意度的影响。
JMeter在bin目录reportgenerator.properties文件保存了所有关于图形化HTML报告生成模块的默认配置:
jmeter.reportgenerator.apdex_satisfied_threshold:定义Apdex评估中满意的阈值(单位ms)
jmeter.reportgenerator.apdex_tolerated_threshold: 定义Apdex评估中可容忍的阈值
jmeter.reportgenerator.apdex_per_transaction基于正则表达式或sample名来定制每一个Transaction的APDEX阀值,如上图samples12
Apdext = (Satisfied Count + Tolerating Count / 2) / Total Samples
执行完后生成如下报告。