diff --git a/common/robot_sender.py b/common/robot_sender.py index 6b0d80a..92d3a2e 100644 --- a/common/robot_sender.py +++ b/common/robot_sender.py @@ -69,13 +69,13 @@ class EnterpriseWechatNotification: > 测试环境:{ENV.name} > 总用例数:{self.pytest_result['total_case']}条 > 通过用例数:{self.pytest_result['pass_case']}条 - > 失败用例数:{self.pytest_result['fail_case']}条 - > 报错用例数:{self.pytest_result['error_case']}条 - > 跳过用例数:{self.pytest_result['skip_case']}条 + > 失败用例数:{self.pytest_result['fail_case']}条 + > 报错用例数:{self.pytest_result['error_case']}条 + > 跳过用例数:{self.pytest_result['skip_case']}条 > 预期失败用例数:{self.pytest_result['xfail_case']}条 > 预期通过用例数:{self.pytest_result['xpass_case']}条 > 通过率:{self.pytest_result['pass_rate']}% - > 用例执行时间:{self.pytest_result['case_duration']}s + > 用例执行时长:{self.pytest_result['case_duration']}s > 测试报告,点击查看>>[测试报告入口]({ALLURE_URL}) > 构建详情,点击查看>>[控制台入口]({BUILD_URL}) > {content}""" diff --git a/utils/yaml_handle.py b/utils/yaml_handle.py index 293f4f7..ade1e49 100755 --- a/utils/yaml_handle.py +++ b/utils/yaml_handle.py @@ -1,8 +1,10 @@ #!/usr/bin/python # -*- coding:utf-8 -*- +import json import os import yaml +from common.exceptions import ValueTypeError from configs.dir_path_config import BASE_DIR @@ -11,7 +13,7 @@ class YamlHandle: def __init__(self, dir_file_name): """ - :param dir_file_name: 项目下文件所在目录名及文件名,如:datas/login.yaml、datas/automatic_datas/login.yaml + :param dir_file_name: 项目下文件所在目录名及文件名,如:datas/login.yaml、datas/automatic_datas/login.yaml,也可以传绝对路径 """ file_path = os.path.join(BASE_DIR, dir_file_name) self.file_path = file_path @@ -34,9 +36,55 @@ class YamlHandle: with open(self.file_path, mode=mode, encoding="utf-8") as f: yaml.dump(data, f) + @staticmethod + def json_to_yaml(json_or_dict_data): + """ + 将json或dict格式的数据转换成yaml格式的数据 + :param json_or_dict_data: 传入json字符串或字典格式数据 + :return: + """ + try: + if isinstance(json_or_dict_data, dict): + # 判断是dict格式,直接将Python字典转换为YAML格式字符串 + yaml_data = yaml.dump(json_or_dict_data, default_flow_style=False) + else: + # 否则解析JSON字符串为Python字典 + json_data = json.loads(json_or_dict_data) + # 将Python字典转换为YAML格式字符串 + yaml_data = yaml.dump(json_data, default_flow_style=False) + + return yaml_data + except Exception as e: + raise ValueTypeError(f"转换失败,请确认传入的数据是否是json格式或字典格式,错误信息: {str(e)}") + + def json_to_yaml_file(self, yaml_file_path): + """ + 将json文件转换成yaml文件 + :param yaml_file_path: 需要保存的yaml文件相对路径或绝对路径,相对路径如:datas/login.yaml、datas/automatic_datas/login.yaml + :return: + """ + try: + # 读取JSON文件内容 + with open(self.file_path, 'r') as json_file: + json_data = json.load(json_file) + + # 打开YAML文件并将YAML格式数据写入 + yaml_file_path = os.path.join(BASE_DIR, yaml_file_path) + with open(yaml_file_path, 'w') as yaml_file: + yaml.dump(json_data, yaml_file, default_flow_style=False) + except Exception as e: + raise ValueTypeError(f"转换失败,请确认传入的文件是否是json数据文件或文件内数据是否是json格式,错误信息:{str(e)}") + if __name__ == '__main__': - print(YamlHandle('datas/login.yaml').read_yaml()) - data_smsCode = YamlHandle('datas/login.yaml').read_yaml() - params = [(item['phone'], item['smsCode'], item['expected']) for item in data_smsCode] - print(params) + # print(YamlHandle('datas/login.yaml').read_yaml()) + # data_smsCode = YamlHandle('datas/login.yaml').read_yaml() + # params = [(item['phone'], item['smsCode'], item['expected']) for item in data_smsCode] + # print(params) + + # 示例JSON数据 + json_string = '{"name": "John", "age": 30, "city": "New York"}' + + # 调用方法进行转换 + yaml_result = YamlHandle.json_to_yaml(json_string) + print(yaml_result)