如何在Locust的report.html中添加已计算的98%百分位数
在Locust HTML报告中添加已计算的98%百分位数的实现方法
方法一:修改内置报告模板+注入自定义数据
定位报告模板文件
找到Locust安装路径下的templates/report.html,比如Python虚拟环境里的路径是venv/lib/pythonX.X/site-packages/locust/templates/report.html。修改模板添加98%展示项
打开模板找到百分位数表格区域,在现有50%、95%、99%的位置,新增98%的表头和数据单元格:- 表头部分加个
<th>98%</th> - 数据行加个
<td>{{ stats.custom_98_percentile }}</td>
- 表头部分加个
通过事件钩子注入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源码)
复制并修改模板
把Locust默认的report.html模板复制一份,命名为custom_report.html,按方法一的方式修改模板,添加98%百分位数的展示项。编写自定义报告生成函数
用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
相关产品推荐
相关产品推荐

