# -*- coding: utf-8 -*- # @Version: Python 3.9 # @Time : 2023/1/9 17:08 # @Author : chenyinhua # @File : settings.py # @Software: PyCharm # @Desc: 项目配置文件 import os # 定义一个全局变量,用于存储运行过程中相关数据 GLOBAL_VARS = {} # 定义一个变量。存储自定义的标记markers CUSTOM_MARKERS = [] REPORT = { "报告标题": "API 自动化测试报告", "项目名称": "GitLink 确实开源", "tester": "陈银花", "department": "开源中心", "env": "" } # ------------------------------------ pytest相关配置 ----------------------------------------------------# # 失败重跑次数 RERUN = 0 # 失败重跑间隔时间 RERUN_DELAY = 5 # 当达到最大失败数,停止执行 MAX_FAIL = "100" # ------------------------------------ 配置信息 ----------------------------------------------------# # 1 代表 yaml文件,其他数值将不自动生成用例,仅能执行手动编写的用例 CASE_FILE_TYPE = 1 # 0表示默认不发送任何通知, 1 代表钉钉通知,2 代表企业微信通知, 3 代表邮件通知, 4 代表所有途径都发送通知 SEND_RESULT_TYPE = 0 # 指定日志收集级别 LOG_LEVEL = "DEBUG" # 可选值:TRACE DEBUG INFO SUCCESS WARNING ERROR CRITICAL """ 支持的日志级别: TRACE: 最低级别的日志级别,用于详细追踪程序的执行。 DEBUG: 用于调试和开发过程中打印详细的调试信息。 INFO: 提供程序执行过程中的关键信息。 SUCCESS: 用于标记成功或重要的里程碑事件。 WARNING: 表示潜在的问题或不符合预期的情况,但不会导致程序失败。 ERROR: 表示错误和异常情况,但程序仍然可以继续运行。 CRITICAL: 表示严重的错误和异常情况,可能导致程序崩溃或无法正常运行。 """ # ------------------------------------ 邮件配置信息 ----------------------------------------------------# # 发送邮件的相关配置信息 email = { "user": "****email-user****", # 发件人邮箱 "password": "****email-password****", # 发件人邮箱授权码 "host": "smtp.qq.com", "to": ["****email-user-1****", "****email-user-2****"] # 收件人邮箱 } # ------------------------------------ 邮件通知内容 ----------------------------------------------------# email_subject = f"UI自动化报告" email_content = """ 各位同事, 大家好: 自动化用例于 ${start_time} 开始运行,运行时长:${run_time} s, 目前已执行完成。 --------------------------------------------------------------------------------------------------------------- 测试人: ${tester} 所属部门: ${department} 项目环境: ${env} --------------------------------------------------------------------------------------------------------------- 执行结果如下:   用例运行总数: ${total} 个   通过用例个数(passed): ${passed} 个   失败用例个数(failed): ${failed} 个   异常用例个数(error): ${broken} 个   跳过用例个数(skipped): ${skipped} 个   失败重试用例个数 * 次数之和(rerun): ${rerun} 个   成 功 率: ${pass_rate} % ********************************** 附件为具体的测试报告,详细情况可下载附件查看, 非相关负责人员可忽略此消息。谢谢。 """ # ------------------------------------ 钉钉相关配置 ----------------------------------------------------# ding_talk = { "webhook_url": "https://oapi.dingtalk.com/robot/send?access_token=********", "secret": "****ding****" } # ------------------------------------ 钉钉通知内容 ----------------------------------------------------# ding_talk_title = f"UI自动化报告" ding_talk_content = """ 各位同事, 大家好: ### 自动化用例于 ${start_time} 开始运行,运行时长:${run_time} s, 目前已执行完成。 --------------------------------------------------------------------------------------------------------------- #### 测试人: ${tester} #### 所属部门: ${department} #### 项目环境: ${env} --------------------------------------------------------------------------------------------------------------- #### 执行结果如下: - 用例运行总数: ${total} 个 - 通过用例个数(passed): ${passed} 个 - 失败用例个数(failed): ${failed} 个 - 异常用例个数(error): ${broken} 个 - 跳过用例个数(skipped): ${skipped} 个 - 失败重试用例个数 * 次数之和(rerun): ${rerun} 个 - 成 功 率: ${pass_rate} % ********************************** 附件为具体的测试报告,详细情况可下载附件查看, 非相关负责人员可忽略此消息。谢谢。 """ # ------------------------------------ 企业微信相关配置 ----------------------------------------------------# wechat = { "webhook_url": "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=********", } # ------------------------------------ 企业微信通知内容 ----------------------------------------------------# wechat_content = """ 各位同事, 大家好: ### 自动化用例于 ${start_time} 开始运行,运行时长:${run_time} s, 目前已执行完成。 -------------------------------- #### 测试人: ${tester} #### 所属部门: ${department} #### 项目环境: ${env} -------------------------------- #### 执行结果如下: - 用例运行总数: ${total} 个 - 通过用例个数(passed): ${passed} 个 - 失败用例个数(failed): ${failed} 个 - 异常用例个数(error): ${broken} 个 - 跳过用例个数(skipped): ${skipped} 个 - 失败重试用例个数 * 次数之和(rerun): ${rerun} 个 - 成 功 率: ${pass_rate} % ********************************** 附件为具体的测试报告,详细情况可下载附件查看, 非相关负责人员可忽略此消息。谢谢。 """ # ------------------------------------ 项目路径 ----------------------------------------------------# # 项目根目录 BASE_DIR = os.path.dirname(os.path.abspath(__file__)) # 通用模块目录 UTILS_DIR = os.path.join(BASE_DIR, "utils") # 配置文件目录 ENV_DIR = os.path.join(BASE_DIR, "env") # 接口数据模块目录 INTERFACE_DIR = os.path.join(BASE_DIR, "interface") # gitlink测试数据模块目录 GITLINK_DIR = os.path.join(INTERFACE_DIR, "gitlink") # osredm测试数据模块目录 OSREDM_DIR = os.path.join(INTERFACE_DIR, "osredm") # pms测试数据模块目录 PMS_DIR = os.path.join(INTERFACE_DIR, "pms") # glcc测试数据模块目录 GLCC_DIR = os.path.join(INTERFACE_DIR, "glcc") # 测试文件模块目录 FILES_DIR = os.path.join(BASE_DIR, "files") # 第三方库目录 LIB_DIR = os.path.join(BASE_DIR, "lib") # 日志/报告保存目录 OUT_DIR = os.path.join(BASE_DIR, "outputs") if not os.path.exists(OUT_DIR): os.mkdir(OUT_DIR) # 报告保存目录 REPORT_DIR = os.path.join(OUT_DIR, "report") if not os.path.exists(REPORT_DIR): os.mkdir(REPORT_DIR) # 报日志保存目录 LOG_DIR = os.path.join(OUT_DIR, "log") if not os.path.exists(LOG_DIR): os.mkdir(LOG_DIR) # 测试用例模块 CASE_DIR = os.path.join(BASE_DIR, "test_case") # 手动生成测试用例模块 MANUAL_CASE_DIR = os.path.join(CASE_DIR, "test_manual_case") if not os.path.exists(MANUAL_CASE_DIR): os.mkdir(MANUAL_CASE_DIR) # 自动生成测试用例模块 AUTO_CASE_DIR = os.path.join(CASE_DIR, "test_auto_case") # Allure报告,测试结果集目录 ALLURE_RESULTS_DIR = os.path.join(REPORT_DIR, "allure_results") # Allure报告,HTML测试报告目录 ALLURE_HTML_DIR = os.path.join(REPORT_DIR, "allure_html") # Allure报告,配置文件目录 ALLURE_CONFIG_DIR = os.path.join(LIB_DIR, "allure_config")