用途:Micrometer 在单元测试中不会自动装配,因此测试指标需要显式设置注册表。本技能说明如何验证自定义指标在单元测试(SimpleMeterRegistry)、集成测试(@AutoConfigureMetrics)以及百分位/直方图计算中是否被正确记录。
主要能力:覆盖计数器(Counter)增量、计时器(Timer)时长与最大值、分布摘要(DistributionSummary)计数与总量、仪表(Gauge)按需取值、百分位与直方图桶,以及指标标签基数控制。
使用方式:单元测试中创建 SimpleMeterRegistry 并注入被测服务,通过 registry.get("指标名").counter()/timer()/summary()/gauge() 获取指标后断言;集成测试使用 @SpringBootTest 与 @AutoConfigureMetrics,注入 MeterRegistry 并在 @BeforeEach 中调用 registry.clear()。可建立 MetricsTestBase 基类封装 assertCounterValue、assertTimerCount、assertDistributionSummary、printMetrics 等辅助方法。
适用场景:为记录指标的服务编写单元测试、业务操作后校验指标值、测试百分位与直方图配置、不启动完整 Spring 上下文断言指标行为、验证与 Spring Boot Actuator 的集成、排查测试中指标未被记录的问题。
限制:SimpleMeterRegistry 不计算百分位,需改用断言;百分位具体数值依赖实现;Gauge 为惰性求值,每次访问重新计算;标签应保持有界,避免高基数。资料未提供安装命令、版本要求与价格信息。