From 899e8253d03262049d8812245adda6f868769896 Mon Sep 17 00:00:00 2001 From: mikigo Date: Tue, 16 Apr 2024 20:24:54 +0800 Subject: [PATCH] =?UTF-8?q?fix:=201=E3=80=81=E6=96=B0=E5=A2=9Eplaybook.jso?= =?UTF-8?q?n=E6=96=87=E4=BB=B6=EF=BC=9B2=E3=80=81=E5=B0=86=E8=BF=9C?= =?UTF-8?q?=E7=A8=8B=E6=89=A7=E8=A1=8C=E7=9A=84=E9=85=8D=E7=BD=AE=E9=A1=B9?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E5=88=B0globalconfig.ini=E9=87=8C=E9=9D=A2?= =?UTF-8?q?=E5=8E=BB=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Description: Log: --- playbook.json | 18 ++++++++++++++++++ setting/globalconfig.ini | 33 ++++++++++++++++++++++++++++++++- setting/globalconfig.py | 21 ++++++++++++++++----- 3 files changed, 66 insertions(+), 6 deletions(-) create mode 100644 playbook.json diff --git a/playbook.json b/playbook.json new file mode 100644 index 0000000..9d99179 --- /dev/null +++ b/playbook.json @@ -0,0 +1,18 @@ +{ + "repositories": [ + { + "url": "", + "branch_or_tag": "", + "depth": "", + "path_to": "", + "user": "", + "password": "" + } + ], + "execution_mode": "", + "clients": "", + "slaves": "", + "keywords": "", + "tags": "", + "pms_case_file_path": "" +} \ No newline at end of file diff --git a/setting/globalconfig.ini b/setting/globalconfig.ini index 824b6ef..54ab359 100644 --- a/setting/globalconfig.ini +++ b/setting/globalconfig.ini @@ -148,7 +148,7 @@ OPENCV_MAX_MATCH_NUMBER = 100 ;=============================== SLAVE CONFIG =================================== ;附属的测试机,用例步骤中与其他机器进行交互 ; ┌─ slave ${user}@${ip}:${password} -; master ├─ slave mikigo@192.168.8.11:admin123 +; master ┼─ slave mikigo@192.168.8.11:admin123 ; └─ slave ${user}@${ip} ;如果${password}和前面配置项PASSWORD一样,可以不传:${user}@${ip} ;多个机器之间用斜线分割:${user}@${ip}:${password}/${user}@${ip} @@ -170,6 +170,37 @@ 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 diff --git a/setting/globalconfig.py b/setting/globalconfig.py index bc069a9..a5ae92f 100644 --- a/setting/globalconfig.py +++ b/setting/globalconfig.py @@ -122,6 +122,17 @@ class _GlobalConfig: USER_DATE_DIR = run_cfg.get("USER_DATE_DIR", default="").replace("{{HOME}}", HOME) EXECUTABLE_PATH = run_cfg.get("EXECUTABLE_PATH", default="") + # [remote] + remote_cfg = GetCfg(GLOBAL_CONFIG_FILE_PATH, "remote") + SEND_CODE = remote_cfg.get("SEND_CODE", default="yes") + BUILD_ENV = remote_cfg.get("BUILD_ENV", default="no") + CLIENT_PASSWORD = remote_cfg.get("CLIENT_PASSWORD", default="1") + PARALLEL = remote_cfg.get("PARALLEL", default="yes") + CLEAN_SERVER_REPORT_DIR = remote_cfg.get("CLEAN_SERVER_REPORT_DIR", default="no") + CLEAN_CLIENT_REPORT_DIR = remote_cfg.get("CLEAN_CLIENT_REPORT_DIR", default="yes") + SCAN = remote_cfg.get("SCAN", default="300") + CLIENTS = remote_cfg.get("CLIENTS", default="") + # [report] report_cfg = GetCfg(GLOBAL_CONFIG_FILE_PATH, "report") REPORT_TITLE = report_cfg.get("REPORT_TITLE", default="YouQu Report") @@ -223,11 +234,11 @@ class _GlobalConfig: # 显示服务器 # 直接读环境变量XDG_SESSION_TYPE会有问题,采用读文件的方式获取 DISPLAY_SERVER = ( - popen("cat ~/.xsession-errors | grep XDG_SESSION_TYPE | head -n 1") - .read() - .split("=")[-1] - .strip("\n") - ) or getenv("XDG_SESSION_TYPE") + popen("cat ~/.xsession-errors | grep XDG_SESSION_TYPE | head -n 1") + .read() + .split("=")[-1] + .strip("\n") + ) or getenv("XDG_SESSION_TYPE") class DisplayServer: wayland = "wayland"