;=============================== RUN CONFIG =================================== [run] ;执行的应用名称 ;为空表示执行 apps/ 目录下所有应用的用例 ;eg: apps/autotest_deepin_music 或 autotest_deepin_music APP_NAME = ;执行包含关键词的用例,关键词可以是用例对象中的任意字符,且大小写不敏感 ;模块名称、py文件名称、类名、函数名等等都可以做为关键词 ;比如:apps/autotest_deepin_music/case/test_music_001.py::TestMusic::test_music_001 ;整个字符串中可以任意截取字符作为关键词。 KEYWORDS = ;执行包含用例标签的用例 ;标签可以是传统的pytest标签:@pytest.mark.L1 ;也可以是YouQu特有的CSV文件管理的标签; ;----------------------------------------------------------- ;1.KEYWORDS 和 TAGS 都为空表示执行 APP_NAME 的所有用例 ;2.KEYWORDS 和 TAGS 都支持逻辑组合,即 and/or/not 的表达式 ;比如:TAGS = L1 or smoke ,表示执行标签带有 L1 或 somke 标签的用例; ;这两个参数也可以同时使用,可以组合出任意的用例集合,只有想不到没有办不到。 ;----------------------------------------------------------- TAGS = ;本地文件测试套,将要执行的用例写入指定的 csv 文件 ;默认为空,从基础框架根目录开始:e.g. CASE_FILE = case_list.txt ;如果这里有值,APP_NAME KEYWORDS TAGS 的配置均不生效 CASE_FILE = ;最大失败用例数量的占比 ;比如:总执行用例数为 100, 若 MAX_FAIL = 0.5,则失败用例数达到 50 就会终止测试。 MAX_FAIL = 1 ;单条用例的超时时间,如果一条用例的执行时间超时,这条用例会被停止,后续用例继续执行。 ;单位为秒 ;这是一个全局统一配置,如果某条用例需要单独配置超时时间,可以在用例中这样写: ;@pytest.mark.timeout(500) ;def test_xxx_001(): ; ... ;会话超时(所有用例执行的超时时间)是根据全局超时配置和用例单独超时配置自动计算的。 CASE_TIME_OUT = 300 ;失败用例重跑次数 ;注意,RERUN = 1 表示重跑 1 次,即第一次用例执行失败会自动重跑 1 次,总共执行 2 次; ;如果第 2 次执行成功,结果成功,失败亦为失败。 RERUN = 1 ;失败录屏从第几次失败开始录制视频。 ;比如 RECORD_FAILED_CASE = 1 ,表示用例第 1 次执行失败之后开始录屏,RERUN >= RECORD_FAILED_CASE。 ;1.关闭录屏:RECORD_FAILED_CASE > RERUN ;2.每条用例都录屏:RECORD_FAILED_CASE = 0 RECORD_FAILED_CASE = 1 ;yes 每条用例执行之后进行环境清理 CLEAN_ALL = yes ;检查测试机分辨率, 比如:1920x1080, 多个分辨率检查用英文逗号连接。 ;no: 表示不做分辨率校验 RESOLUTION = 1920x1080, 1080x1920, 3840x1080 ;不跳过用例,csv文件里面标记了 skip-xxx的用例不跳过 NOSKIP = no ;ignore fixed ;no,只要标记了fixed的用例,即使标记了skip-,也会执行; ;yes,fixed不生效,仅通过skip跳过用例; IFIXED = no ;要安装deb包的路径 ;e.g : ~/Downloads/ 安装下载目录下的deb包,如果是远程执行,会自动拷贝到远程并安装。 DEB_PATH = ;DEBUG 模式执行用例,只收集不执行用例,也不做设备分辨率的检查。 DEBUG = no ;记录top命令查询的系统资源占用情况,TOP = 3 表示记录前3个进程。 TOP = ;指定用例执行次数 REPEAT = ;默认在所有测试完成之后输出报错信息. ;yes, 测试过程中立即显示报错 DURING_FAIL = no ;注册自启服务 AUTOSTART = no ;测试机的密码 PASSWORD = 1 ;图像识别重试次数 IMAGE_MATCH_NUMBER = 1 ;图像识别重试每次间隔等待时间 IMAGE_MATCH_WAIT_TIME = 1 ;图像识别匹配度 IMAGE_RATE = 0.8 ;截取当前屏幕实时图像保存路径,用于图像识别坐标 SCREEN_CACHE = /tmp/screen.png ;截取屏幕上指定区域图片,保存临时图片的路径 TMPDIR = /tmp/tmpdir ;系统主题 SYS_THEME = deepin ;=============================== OCR CONFIG =================================== ;OCR服务端地址 OCR_SERVER_HOST = 10.8.13.7/10.8.13.66/10.8.13.55/10.8.13.100 ;OCR端口 OCR_PORT = 8890 ;网络重试次数 OCR_NETWORK_RETRY = 1 ;OCR_TIMEOUT时间内重试间隔 OCR_PAUSE = 1 ;OCR识别的总超时 OCR_TIMEOUT = 5 ;OCR识别的最大次数 OCR_MAX_MATCH_NUMBER = 100 ;=============================== IMAGE CONFIG =================================== ;OpenCV服务端地址 OPENCV_SERVER_HOST = 10.8.12.175 ;图像识别端口 OPENCV_PORT = 8889 ;网络重试次数 OPENCV_NETWORK_RETRY = 1 ;OPENCV_TIMEOUT OPENCV_PAUSE = 1 ;图像识别的总超时 OPENCV_TIMEOUT = 5 ;图像识别的最大次数 OPENCV_MAX_MATCH_NUMBER = 100 ;=============================== SLAVE CONFIG =================================== ;附属的测试机,用例步骤中与其他机器进行交互 ; ┌─ slave ${user}@${ip}:${password} ; master ┼─ slave mikigo@192.168.8.11:admin123 ; └─ slave ${user}@${ip} ;如果${password}和前面配置项PASSWORD一样,可以不传:${user}@${ip} ;多个机器之间用斜线分割:${user}@${ip}:${password}/${user}@${ip} SLAVES = ;=============================== Web UI CONFIG =================================== ;为Web UI自动化测试提供一个fixture对象:page,它默认使用系统自带的浏览器进行测试。 ;框架还提供一个fixture对象:native_page,它使用最新的chromium浏览器进行测试。 ;以下配置项默认值为系统自带的浏览器的配置,如果是其他第三方的浏览器可以指定浏览器对应的路径。 ; def test_xxx_001(page): ; page.goto("www.baidu.com") ; ; def test_xxx_001(native_page): ; native_page.goto("www.baidu.com") ;指定浏览器启动的用户数据缓存目录 USER_DATE_DIR = {{HOME}}/.config/browser ;指定浏览器可执行文件路径 EXECUTABLE_PATH = /usr/bin/browser ;=============================== REMOTE CONFIG =================================== [remote] ;发送代码到测试机(不含report目录) SEND_CODE = yes ;搭建测试环境 ;如果为yes,不管send_code是否为yes都会发送代码到测试机。 BUILD_ENV = no ;测试机密码 CLIENT_PASSWORD = 1 ;yes表示所有测试机并行跑,执行相同的测试用例。 ;no表示测试机分布式执行,服务端会根据收集到的测试用例自动分配给各个测试机执行。 PARALLEL = yes ;清理 report 目录 CLEAN_SERVER_REPORT_DIR = no CLEAN_CLIENT_REPORT_DIR = yes ;测试机轮询次数 SCAN = 300 ;远程执行测试机 ; ┌─ client ${user}@${ip}:${password} ; youqu-server ┼─ client mikigo@192.168.8.11:admin123 ; └─ client ${user}@${ip} ;如果${password}和前面配置项CLIENT_PASSWORD一样,可以不传:${user}@${ip} ;多个机器之间用斜线分割:${user}@${ip}:${password}/${user}@${ip} CLIENTS = ;=============================== REPORT CONFIG =================================== [report] ;测试报告的title REPORT_TITLE = YouQu Report ;测试报告的name REPORT_NAME = YouQu Report ;测试报告的默认语言 ;en:English ;ru:Русский ;zh:中文 ;de:Deutsch ;nl:Nederlands ;he:Hebrew ;br:Brazil ;pl:Polski ;ja:日本語 ;es:Español ;kr:한국어 ;fr:Français ;az:Azərbaycanca REPORT_LANGUAGE = zh ;用例执行完后生成的测试报告格式 ;目前支持 allure, xml, json (支持同时生成) REPORT_FORMAT = allure, xml, json ;指定报告生成的路径(相对项目根目录下) ALLURE_REPORT_PATH = report/ XML_REPORT_PATH = report/ JSON_REPORT_PATH = report/ ;=============================== PMS CONFIG =================================== ;PMS相关配置,包含以下几个方面: ;1.PMS测试套执行 ;2.自动从PMS爬取数据并同步本地CSV文件 ;3.PMS数据回填 [pmsctl] ;PMS的用户名,如: ut001234 PMS_USER = ;PMS的密码 PMS_PASSWORD = ;PMS测试套的ID ;在PMS上查看用例“套件”链接: https://pms.uniontech.com/testsuite-view-495.html ;测试套ID为: 495 SUITE_ID = ;数据回填必须关联PMS测试单 ;在PMS上查看测试单链接: https://pms.uniontech.com/testtask-cases-20747.html ;测试单ID为: 20747 TASK_ID = ;将测试结果数据回填到PMS ;为空: 表示不回填,不会在每条用例执行完之后生成json结果文件; ;async: 表示逐条异步回填,后面一条执行开始时通过子线程对前一条用例的执行结果进行回填,如此实现时间效率最大化; ;finish: 表示所有用例执行完成之后逐个回填; SEND_PMS = ;数据回填的触发者 ;auto: 框架自动回填,配合SEND_PMS配置使用,你可以选择在不同的阶段进行数据回填; ;hand: 手动回填,每条用例仍然会生成json文件,但框架不会进行数据回填,需要你可以在你想要发送的时间点手动触发回填; TRIGGER = auto ;PMS回填的重试次数 ;如果接口请求失败,会进行重试 SEND_PMS_RETRY_NUMBER = 2 ;caselib: 用例库 ;testcase: 产品库用例 CASE_FROM = caselib [pmsctl-pms_link_csv] ;同步PMS数据到本地CSV文件,必须要配置的配置项 ;key是本地CSV文件的文件名称; ;value是对应PMS上的模块ID; ;比如要同步音乐的数据, 首先需要将配置 APP_NAME = deepin-music, ;CSV文件名称为music.csv,其在PMS上的音乐用例库的URL为: https://pms.uniontech.com/caselib-browse-81.html ;因此应该配置为: music = 81 ;这样才能将PMS与本地CSV文件建立联系。 ;如果你的应用分了很多模块,只需要将对应的信息依次配置好就行了。 music = [csvctl] ;将py文件的case id同步到csv文件 ;yes, 开启同步 PY_ID_TO_CSV = no ;导出的csv文件名称,比如:case_list.csv EXPORT_CSV_FILE = ;导出 case_list.csv 文件时配置的字段名,用例名称默认存在第一列,无需添加 EXPORT_CSV_HEARD = 用例级别,用例类型,测试级别,下线CD [log_cli] ;日志相关配置(不打印构造函数和魔法函数的功能说明) ;批量执行时,终端输出的日志级别 DEBUG/INFO/ERROR LOG_LEVEL = DEBUG # ============= 自动输出日志的配置 ================ ;支持类名以 xxx 开头的,自动将函数说明打印为日志, 多个参数以逗号隔开 CLASS_NAME_STARTSWITH = Assert ;支持类名以 xxx 结尾的,自动将函数说明打印为日志,多个参数以逗号隔开 CLASS_NAME_ENDSWITH = Widget,Page ;支持类名包含 xxx 的,自动将函数说明打印为日志,多个参数以逗号隔开 CLASS_NAME_CONTAIN = ShortCut # ============================================== ;=============================== PMS CONFIG =================================== ;git子命令用于拉取子项目仓库代码,也可统计某两个commit之间或一段时间内用例和方法的修改数据。 [git] ;git仓库的地址 GIT_URL = ;git仓库的用户名 GTI_USER = ;git仓库的密码 GIT_PASSWORD = ;git仓库的分支 BRANCH = ;git clone 时的深度(--depth) DEPTH = ;起始日期 START_DATE = ;结束日期 END_DATE =