Python Selenium生成Allure报告时出现AttributeError报错求助
解决Allure报告生成时的AttributeError: module 'allure' has no attribute 'severity_level'问题
这个问题我之前帮同事排查过,本质是allure-pytest版本更新带来的API命名变更,下面给你分步解决的方案:
一、问题根源
在较新版本的allure-pytest(大概2.10.0及以上)中,官方把原来的小写蛇形枚举severity_level重命名成了大驼峰格式的SeverityLevel,所以旧代码里的allure.severity_level自然会找不到对应的属性。
二、快速修复方案
方案1:修改测试代码中的枚举引用
把你测试用例里所有用到allure.severity_level的地方替换成allure.SeverityLevel,比如:
原来的代码:
import allure @allure.severity(allure.severity_level.CRITICAL) def test_critical_case(): # 测试逻辑 pass
改成:
import allure @allure.severity(allure.SeverityLevel.CRITICAL) def test_critical_case(): # 测试逻辑 pass
方案2:直接使用字符串指定级别(更兼容)
如果不想依赖枚举类,也可以直接传入字符串形式的级别,这样不管新版本还是旧版本都能兼容:
import allure @allure.severity("CRITICAL") def test_critical_case(): # 测试逻辑 pass
支持的级别字符串有:"BLOCKER"、"CRITICAL"、"NORMAL"、"MINOR"、"TRIVIAL"
方案3:降级allure-pytest到旧版本(不推荐)
如果暂时不想改代码,可以降级到还保留severity_level的旧版本,比如:
pip uninstall allure-pytest -y pip install allure-pytest==2.8.16
不过不推荐这种方式,因为旧版本可能存在安全或功能缺陷。
三、额外注意事项
你执行的命令里--alluredir= /path有个空格,这可能导致路径解析错误,建议改成:
pytest --alluredir=/path/to/report/directory
或者相对路径:
pytest --alluredir=./allure-results
内容的提问来源于stack exchange,提问作者Bunti Sharma
相关产品推荐
相关产品推荐

