You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Locust的report.html中添加已计算的98%百分位数

在Locust HTML报告中添加已计算的98%百分位数的实现方法

方法一:修改内置报告模板+注入自定义数据

  1. 定位报告模板文件
    找到Locust安装路径下的templates/report.html,比如Python虚拟环境里的路径是venv/lib/pythonX.X/site-packages/locust/templates/report.html。

  2. 修改模板添加98%展示项
    打开模板找到百分位数表格区域,在现有50%、95%、99%的位置,新增98%的表头和数据单元格:

    • 表头部分加个<th>98%</th>
    • 数据行加个<td>{{ stats.custom_98_percentile }}</td>
  3. 通过事件钩子注入98%数值
    在你的Locust测试脚本里加个测试结束的钩子,把已计算好的98%百分位数赋值给统计对象的自定义属性:

    from locust import events
    
    @events.test_stop.add_listener
    def inject_98_percentile(environment, **kwargs):
        # 替换成你实际算出的98%百分位数值
        environment.stats.total_stats.custom_98_percentile = 145.2
    

方法二:自定义报告生成(无需修改Locust源码)

  1. 复制并修改模板
    把Locust默认的report.html模板复制一份,命名为custom_report.html,按方法一的方式修改模板,添加98%百分位数的展示项。

  2. 编写自定义报告生成函数
    用Jinja2渲染自定义模板,传入原生统计数据和你的98%数值,生成新报告:

    from jinja2 import Environment, FileSystemLoader
    from locust import events
    
    def generate_custom_report(env, percentile_98):
        jinja_env = Environment(loader=FileSystemLoader("."))
        template = jinja_env.get_template("custom_report.html")
        total_stats = env.stats.total_stats
        # 渲染并保存报告
        with open("custom_locust_report.html", "w") as f:
            f.write(template.render(
                stats=total_stats,
                custom_98_percentile=percentile_98
            ))
    
    @events.test_stop.add_listener
    def on_test_end(environment, **kwargs):
        # 替换为实际计算好的98%数值
        my_98_percentile = 145.2
        generate_custom_report(environment, my_98_percentile)
    

方法三:临时修改统计类属性(适合快速验证)

如果只是临时需求,可以直接在测试脚本里修改Locust统计对象的属性,配合修改后的模板使用。比如在测试逻辑完成后,直接给env.stats.total_stats加个custom_98_percentile属性,赋值你的98%数值,再让Locust生成报告。

内容的提问来源于stack exchange,提问作者Stanley Ipkiss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 18:31:27