优化处理allure测试报告,通过往allure-html报告的widgets/environment.json中写入环境信息,解决原先往allure-results中写入环境信息不能输入中文的问题。

This commit is contained in:
floraachy
2023-05-22 14:22:39 +08:00
parent 865591f95f
commit 1ffe3e5ff4
3 changed files with 24 additions and 11 deletions

View File

@@ -111,7 +111,7 @@ class AllureReportBeautiful:
with open(title_filepath, 'w', encoding="utf-8") as f:
json.dump(new_params, f, ensure_ascii=False, indent=4)
def set_report_env(self, env_info):
def set_report_env_on_results(self, env_info):
"""
在allure-results报告的根目录下生成一个写入了环境信息的文件environment.properties(注意:不能放置中文,否则会出现乱码)
@param env_info: 需要写入的环境信息
@@ -122,6 +122,20 @@ class AllureReportBeautiful:
for k, v in env_info.items():
f.write('{}={}\n'.format(k, v))
def set_report_env_on_html(self, env_info: dict):
"""
在allure-html报告中往widgets/environment.json中写入环境信息,
格式参考如下:[{"values":["Auto Test Report"],"name":"report_title"},{"values":["autotestreport_"]]
"""
envs = []
for k, v in env_info.items():
envs.append({
"name": k,
"values": [v]
})
with open(os.path.join(self.allure_html_path, "widgets", "environment.json"), 'w', encoding="utf-8") as f:
json.dump(envs, f, ensure_ascii=False, indent=4)
def allure_logo_change(allure_path, logo_path):
"""

View File

@@ -14,14 +14,13 @@ CASE_FILE_TYPE = 1
SEND_RESULT_TYPE = 4
# 测试报告的定制化信息展示
# 这个需要写入到allure测试结果集的environment.properties不支持中文
ENV_INFO = {
"report_title": "Auto Test Report",
"report_name": "autotestreport_",
"project_name": "GitLink",
"tester": "floraachy",
"department": "OpenSource"
}
"report_title": "自动化测试报告",
"report_name": "autotestreport_",
"project_name": "GitLink 确实开源",
"tester": "陈银花",
"department": "开源中心"
}
# 指定日志收集级别
LOG_LEVEL = "INFO"

6
run.py
View File

@@ -94,9 +94,6 @@ def run(env, m, report):
"""
pytest.main(args=arg_list)
# ------------------------ 使用allure生成测试报告 ------------------------
# 往allure测试结果集目录写入环境配置相关信息
ENV_INFO["project_env"] = env
AllureReportBeautiful(allure_results_path=ALLURE_RESULTS_DIR).set_report_env(env_info=ENV_INFO)
logger.debug("-------开始生成allure测试报告-------")
plat = PlatformHandle()
# 从LIB_DIR目录中寻找以allure开头的目录作为allure模块的目录并进入bin目录下
@@ -110,6 +107,9 @@ def run(env, m, report):
new_title=ENV_INFO["project_name"])
AllureReportBeautiful(allure_html_path=ALLURE_HTML_DIR).set_report_name(new_name=ENV_INFO["report_title"])
logger.debug("-------allure测试报告生成完毕开始发送测试报告-------")
# 往allure测试报告中写入环境配置相关信息
ENV_INFO["project_env"] = env
AllureReportBeautiful(allure_html_path=ALLURE_HTML_DIR).set_report_env_on_html(env_info=ENV_INFO)
# 发送从allure-html获取的测试报告
results = get_test_results_from_from_allure_report(ALLURE_HTML_DIR)
# 压缩allure-html报告为一个压缩文件zip