diff --git a/README.md b/README.md index d8ed985b9f63776a2cdb59e9a56877fc5f9b950d..a8eee8c4054e757f3c5aaa822c15f43ec159901b 100755 --- a/README.md +++ b/README.md @@ -45,6 +45,8 @@ sudo apt install -y libvirt0 libvirt-daemon qemu virt-manager bridge-utils libvi 也可直接在启动器中打开“虚拟系统管理器”,在UI界面进行配置安装欧拉虚拟机,步骤很简单,尽量多给虚拟机分配资源即可 +## 注意,欧拉虚拟机密码设置为uostest12#$ + ![avata](./image/3.png) (3)配置欧拉虚拟机环境 diff --git a/case/assert_res/test_dde_1271159_1.png b/case/assert_res/test_dde_1271159_1.png new file mode 100644 index 0000000000000000000000000000000000000000..8a16749ca245478e304d8d425c89896e2129cbdb Binary files /dev/null and b/case/assert_res/test_dde_1271159_1.png differ diff --git a/case/assert_res/test_dde_1271169.png b/case/assert_res/test_dde_1271169.png new file mode 100644 index 0000000000000000000000000000000000000000..1745a221e4ab3af337c747fe68e23f34ece0bf3c Binary files /dev/null and b/case/assert_res/test_dde_1271169.png differ diff --git a/case/test_dde_1271157.py b/case/test_dde_1271157.py new file mode 100644 index 0000000000000000000000000000000000000000..3e1f0ec692c93a8139c94a5582e09a24b8e5274d --- /dev/null +++ b/case/test_dde_1271157.py @@ -0,0 +1,19 @@ +from pylinuxauto import sleep +from case.base_case import BaseCase +from method.dde_method import DdeMethod + + +class TestDdeCase(BaseCase): + def test_dde_1271157(self): + """日志收集工具-全部日志导出""" + euler = DdeMethod() + euler.dde_method_open_software_by_launcher("rizhishoujigongju") + sleep(6) + euler.deepin_log_viewer_input_root_password() + euler.deepin_log_viewer_method_export_all_log_by_attr() + self.assert_image_exist_in_dde("test_dde_1271169") + + def teardown_method(self): + """通过命令关闭日志收集工具""" + DdeMethod().base_method_kill_process_by_cmd("deepin-log-viewer") + DdeMethod().base_method_delete_all_file_in_documents_by_cmd() diff --git a/method/base_method.py b/method/base_method.py index 92a12b88abc60703444bb0adffacf5fd83f53b2d..e2cf5e27d6fb27bd4e46afb222f561ab0af6e947 100644 --- a/method/base_method.py +++ b/method/base_method.py @@ -65,6 +65,10 @@ class BaseMethod: """通过给定名称在 文档 目录下删除文件""" Cmd.run(f"rm ~/Documents/{filename}") + def base_method_delete_all_file_in_documents_by_cmd(self): + """通过给定名称在 文档 目录下删除所有文件""" + Cmd.run(f"rm ~/Documents/*") + def base_method_kill_process_by_cmd(self, process): """通过命令关闭进程""" Cmd.run(f"killall {process}") diff --git a/method/dde_method.py b/method/dde_method.py index 6b200b9108b76db830570541ce491833056fd5d4..5dc82549780485bf24818b9ebf80a18ad03891a9 100644 --- a/method/dde_method.py +++ b/method/dde_method.py @@ -13,6 +13,7 @@ from method.base_method import BaseMethod from method.dde_browser_method import DdeBrowserMethod from method.dde_device_manager_method import DdeDeviceManagerMethod from method.dde_editor_method import DdeEditorMethod +from method.deepin_log_viewer_method import DeepinLogViewerMethod funnylog2_config.CLASS_NAME_ENDSWITH = ["Method"] from funnylog2 import log @@ -33,6 +34,7 @@ class DdeMethod( DdeBrowserMethod, DdeEditorMethod, DdeDeviceManagerMethod, + DeepinLogViewerMethod, ): """应用方法主类""" @@ -299,6 +301,30 @@ class DdeMethod( self.dde_methode_click_save_btn_in_pop_window() sleep(2) + def deepin_log_viewer_method_export_log_by_attr(self, log_name, log_type): + """ + 输入需要导出的日志名称以及类型,通过元素右键点击日志进行导出,注意不包括启动日志 + log_name:Xorg Log,Application Log,Boot-Shutdown Event + log_type:TEXT (*.txt),Doc (*.doc),Xls (*.xls),Html (*.html) + """ + self.deepin_log_viewer_method_click_by_attr(log_name) + sleep(2) + self.deepin_log_viewer_method_click_export_btn_by_attr() + self.dde_editor_method_click_documents_in_pop_window_by_img() + pylinuxauto.find_element_by_attr_path("/dde-desktop/TEXT (*.txt)").click() + sleep(1) + pylinuxauto.find_element_by_attr_path(f"/dde-desktop/{log_type}").click() + self.dde_methode_click_save_btn_in_pop_window() + + def deepin_log_viewer_method_export_all_log_by_attr(self): + """导出所有的日志""" + self.base_method_click_by_img("deepin_log_viewer_export_all_log_icon.png") + sleep(2) + self.deepin_log_viewer_input_root_password() + self.dde_editor_method_click_documents_in_pop_window_by_img() + self.dde_methode_click_save_btn_in_pop_window() + sleep(1) + if __name__ == "__main__": sleep(3) diff --git a/method/deepin_log_viewer_method.py b/method/deepin_log_viewer_method.py new file mode 100644 index 0000000000000000000000000000000000000000..cce86080070f6112ac77040aaefe3c6f7fc7de7c --- /dev/null +++ b/method/deepin_log_viewer_method.py @@ -0,0 +1,36 @@ +from time import sleep + +from funnylog2.config import config as funnylog2_config + +funnylog2_config.CLASS_NAME_ENDSWITH = ["Method"] +import pylinuxauto +from method.base_method import BaseMethod + + +class DeepinLogViewerMethod(BaseMethod): + def deepin_log_viewer_method_click_by_attr(self, path): + """ + 在日志收集工具中通过元素点击 + 侧边栏模块属性名称:Boot Log,Xorg Log,Application Log,Boot-Shutdown Event + """ + pylinuxauto.find_element_by_attr_path(f"/deepin-log-viewer/{path}").click() + + def deepin_log_viewer_method_click_export_btn_by_attr(self): + """在日志收集工具中通过元素点击导出按钮""" + self.deepin_log_viewer_method_click_by_attr("导 出") + + def deepin_log_viewer_input_root_password(self): + """在日志收集工具弹出鉴权窗口后输入管理员密码""" + sleep(2) + pylinuxauto.find_element_by_attr_path( + "/dde-polkit-agent/EditableText_passwordinput" + ).click() + pylinuxauto.input_message(BaseMethod.account_message) + sleep(3) + pylinuxauto.enter() + sleep(2) + + +if __name__ == "__main__": + sleep(3) + DeepinLogViewerMethod().deepin_log_viewer_method_click_export_btn_by_attr() diff --git a/method/image_res/deepin_log_viewer_export_all_log_icon.png b/method/image_res/deepin_log_viewer_export_all_log_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8b732cb76552d4738231b3d3d4e6a2ed549ba472 Binary files /dev/null and b/method/image_res/deepin_log_viewer_export_all_log_icon.png differ