diff --git a/case/assert_res/dde_dock_down.png b/case/assert_res/dde_dock_down.png new file mode 100644 index 0000000000000000000000000000000000000000..989a9b2f3db25604e8e088f6ce1e25cb121eed87 Binary files /dev/null and b/case/assert_res/dde_dock_down.png differ diff --git a/case/assert_res/dde_dock_up.png b/case/assert_res/dde_dock_up.png new file mode 100644 index 0000000000000000000000000000000000000000..e0d85be1a38552e0249f28f1bdaf5b68aa4402d1 Binary files /dev/null and b/case/assert_res/dde_dock_up.png differ diff --git a/case/test_dde_1956753.py b/case/test_dde_1956753.py new file mode 100644 index 0000000000000000000000000000000000000000..058bf1f13f475e11cc299a38249f13778224a569 --- /dev/null +++ b/case/test_dde_1956753.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python3 +# _*_ coding:utf-8 _*_ +""" +@Time : 2025/12/02 +@Author : xianglongfei@uniontech.com +""" + +import pytest + +from src import sleep +from apps.dde_autotest_euler.case.base_case import BaseCase +from public.dde_dock_public_widget import DdeDockPublicWidget +from apps.dde_autotest_euler.method.dde_method import DdeMethod + + +class TestDdeCase(BaseCase): + def test_dde_1956753(self): + """【任务栏】个性化任务栏设置大小切换 """ + dock = DdeDockPublicWidget() + #【步骤】:一.鼠标在任务栏右键菜单点击:任务栏设置 + dock.click_right_menu_dock_set() + sleep(3) + #【断言】:1.控制中心打开 + self.assert_process_status(True,"dde-control-center") + #【断言】:2.进入个性化菜单 + sleep(1) + self.assert_ocr_exist("个性化") + sleep(1) + #【断言】:3.进入位置为:下 + sleep(1) + self.assert_dock_location(2) + #【断言】:4.进入模式为:高效模式 + self.assert_dock_mode(1) + #【断言】:5.进入大小为:小 + self.assert_dock_size(40) + #【步骤】:二.鼠标点击:大 + euler=DdeMethod() + euler.dde_dock.click_by_img("dock_max.png") + sleep(3) + #【断言】:6.任务栏大小为:大 + self.assert_dock_size(100) + #【步骤】:三.鼠标点击:小 + euler.dde_dock.click_by_img("dock_min.png") + sleep(3) + #【断言】:7.任务栏大小为:小 + self.assert_dock_size(40) + + @pytest.fixture(scope="function", autouse=True) + def setup_teardown_1956753(self): + """前置和后置""" + yield + #【后置】:1.关闭控制中心 + dock = DdeDockPublicWidget() + dock.close_app("控制中心") + sleep(3) + #【断言】:1.控制中心关闭 + self.assert_process_status(False,"dde-control-center") diff --git a/case/test_dde_1956755.py b/case/test_dde_1956755.py new file mode 100644 index 0000000000000000000000000000000000000000..0ba3731e2cef65bfd65a19442ddc1fc600a72e35 --- /dev/null +++ b/case/test_dde_1956755.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python3 +# _*_ coding:utf-8 _*_ +""" +@Time : 2025/11/28 +@Author : xianglongfei@uniontech.com +""" + +import pytest + +from src import sleep +from apps.dde_autotest_euler.case.base_case import BaseCase +from public.dde_dock_public_widget import DdeDockPublicWidget +from apps.dde_autotest_euler.method.dde_method import DdeMethod + + +class TestDdeCase(BaseCase): + def test_dde_1956755(self): + """【任务栏】个性化任务栏设置位置切换 """ + dock = DdeDockPublicWidget() + #【步骤】:1.鼠标在任务栏右键菜单点击:任务栏设置 + dock.click_right_menu_dock_set() + sleep(3) + #【断言】:1.控制中心打开 + self.assert_process_status(True,"dde-control-center") + #【断言】:2.进入个性化菜单 + sleep(1) + self.assert_ocr_exist("个性化") + sleep(1) + #【断言】:3.进入位置为下 + sleep(1) + self.assert_image_exist_in_dde("dde_dock_down.png") + # 点击切换成上 + euler=DdeMethod() + euler.dde_dock.click_by_img("dde_dock_down.png") + sleep(3) + euler.dde_dock.click_by_img("dcc_dock_up.png") + sleep(3) + #【断言】:4.进入位置为上 + self.assert_dock_location(0) + # 点击切换成下 + sleep(1) + euler.dde_dock.click_by_img("dde_dock_up.png") + sleep(3) + euler.dde_dock.click_by_img("dcc_dock_down.png") + sleep(3) + #【断言】:5.进入位置为下 + self.assert_dock_location(2) + + @pytest.fixture(scope="function", autouse=True) + def setup_teardown_1956755(self): + """前置和后置""" + yield + #【后置】:1.关闭控制中心 + dock = DdeDockPublicWidget() + dock.close_app("控制中心") + sleep(3) + #【断言】:1.控制中心关闭 + self.assert_process_status(False,"dde-control-center") diff --git a/case/test_dde_1956757.py b/case/test_dde_1956757.py new file mode 100644 index 0000000000000000000000000000000000000000..73386d0dd78bfb16e10a3823258c9b80739a7655 --- /dev/null +++ b/case/test_dde_1956757.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python3 +# _*_ coding:utf-8 _*_ +""" +@Time : 2025/11/26 +@Author : xianglongfei@uniontech.com +""" + +import pytest + +from src import sleep +from apps.dde_autotest_euler.case.base_case import BaseCase +from public.dde_dock_public_widget import DdeDockPublicWidget +from apps.dde_autotest_euler.method.dde_method import DdeMethod + + +class TestDdeCase(BaseCase): + def test_dde_1956757(self): + """【任务栏】个性化任务栏设置模式切换 """ + dock = DdeDockPublicWidget() + #【步骤】:1.鼠标在任务栏右键菜单点击:任务栏设置 + dock.click_right_menu_dock_set() + sleep(3) + #【断言】:1.控制中心打开 + self.assert_process_status(True,"dde-control-center") + #【断言】:2.进入个性化菜单 + sleep(1) + self.assert_ocr_exist("个性化") + #【断言】:3.进入任务栏菜单 + sleep(1) + self.assert_ocr_exist("任务栏") + #【断言】:4.进入高效模式 + sleep(1) + self.assert_ocr_exist("高效模式") + # 点击切换成时尚模式 + euler=DdeMethod() + euler.dde_dock.click_by_ocr("高效模式") + sleep(1) + euler.dde_dock.click_by_ocr("时尚模式") + sleep(1) + #【断言】:5.进入时尚模式 + self.assert_dock_mode(0) + # 点击切换成高效模式 + euler.dde_dock.click_by_ocr("时尚模式") + sleep(1) + euler.dde_dock.click_by_ocr("高效模式") + sleep(1) + #【断言】:6.进入高效模式 + self.assert_dock_mode(1) + + + @pytest.fixture(scope="function", autouse=True) + def setup_teardown_1956757(self): + """前置和后置""" + yield + #【后置】:1.关闭控制中心 + dock = DdeDockPublicWidget() + dock.close_app("控制中心") + sleep(3) + #【断言】:1.控制中心关闭 + self.assert_process_status(False,"dde-control-center") diff --git a/case/test_dde_1958213.py b/case/test_dde_1958213.py new file mode 100644 index 0000000000000000000000000000000000000000..58b98ab8db50928d47f50ee5ccf45bc771eba152 --- /dev/null +++ b/case/test_dde_1958213.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python3 +# _*_ coding:utf-8 _*_ +""" +@Time : 2025/12/04 +@Author : xianglongfei@uniontech.com +""" + +import pytest + +from src import sleep +from apps.dde_autotest_euler.case.base_case import BaseCase +from public.dde_dock_public_widget import DdeDockPublicWidget + + +class TestDdeCase(BaseCase): + def test_dde_1958213(self): + """【控制中心】【Tooltips】在任务栏显示tips """ + dock = DdeDockPublicWidget() + #【步骤】:1.鼠标hover到任务栏控制中心图标上 + dock.move_to_element_in_dock_by_attr("Btn_控制中心") + sleep(3) + #【断言】:2.tips显示"控制中心" + self.assert_ocr_exist("控制中心") + + @pytest.fixture(scope="function", autouse=True) + def setup_teardown_1958213(self): + """前置和后置""" + # 控制中心:在任务栏驻留,且未打开 + dock = DdeDockPublicWidget() + dock.kill_process("dde-control-center") + dock.send_link_to_dock("控制中心") + yield + #【后置】:1.移动鼠标,取消hover + dock.move_to(960,540) diff --git a/case/test_dde_1958215.py b/case/test_dde_1958215.py new file mode 100644 index 0000000000000000000000000000000000000000..e71ea49fdc0b504e89814d20e96b27ed4e96464c --- /dev/null +++ b/case/test_dde_1958215.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python3 +# _*_ coding:utf-8 _*_ +""" +@Time : 2025/12/05 +@Author : xianglongfei@uniontech.com +""" + +import pytest + +from src import sleep +from apps.dde_autotest_euler.case.base_case import BaseCase +from public.dde_dock_public_widget import DdeDockPublicWidget + + +class TestDdeCase(BaseCase): + def test_dde_1958215(self): + """【文件管理器】【Tooltips】在任务栏显示tips """ + dock = DdeDockPublicWidget() + #【步骤】:1.鼠标hover到任务栏文件管理器图标上 + dock.move_to_element_in_dock_by_attr("Btn_文件管理器") + sleep(3) + #【断言】:2.tips显示"文件管理器" + self.assert_ocr_exist("文件管理器") + + @pytest.fixture(scope="function", autouse=True) + def setup_teardown_1958215(self): + """前置和后置""" + # 控制中心:在任务栏驻留,且未打开 + dock = DdeDockPublicWidget() + dock.kill_process("dde-file-manager") + dock.send_link_to_dock("文件管理器") + yield + #【后置】:1.移动鼠标,取消hover + dock.move_to(960,540) diff --git a/case/test_dde_1958393.py b/case/test_dde_1958393.py new file mode 100644 index 0000000000000000000000000000000000000000..49a11bd7827bf91d89988ceda298f116a7f41c55 --- /dev/null +++ b/case/test_dde_1958393.py @@ -0,0 +1,33 @@ +from time import sleep +from src import Src +import pytest +import subprocess +from src import CmdCtl as Cmd + +from apps.dde_autotest_euler.case.base_case import BaseCase +from apps.dde_autotest_euler.method.dde_method import DdeMethod + + +def assert_process_status(code, app_name): + # 执行命令 + result = subprocess.run(f"ps -aux|grep {app_name}|grep -v grep", stdout=subprocess.PIPE,stderr=subprocess.PIPE, shell=True) + + if code != int(result.returncode): + raise AssertionError(f'断言应用进程状态{app_name}与期望{code}不符') + + +class TestDdeCase(BaseCase): + + def test_dde_1958393_1(self): + """终端打开Onboard""" + Cmd.run_cmd("/usr/bin/onboard &") + sleep(5) + assert_process_status(0, "/usr/bin/onboard") + + @pytest.fixture(autouse=True) + def clear(self): + DdeMethod().kill_process("/usr/bin/onboard") + yield + DdeMethod().kill_process("/usr/bin/onboard") + DdeMethod().click_restore() + DdeMethod().esc() diff --git a/case/test_dde_1958395.py b/case/test_dde_1958395.py new file mode 100644 index 0000000000000000000000000000000000000000..3e3464bea005c6db9197eacc1bec8463b073c928 --- /dev/null +++ b/case/test_dde_1958395.py @@ -0,0 +1,40 @@ +from time import sleep +from src import Src +import pytest +import subprocess +from src import CmdCtl as Cmd + +from apps.dde_autotest_euler.case.base_case import BaseCase +from apps.dde_autotest_euler.method.dde_method import DdeMethod + + +def assert_process_status(code, app_name): + # 执行命令 + result = subprocess.run(f"ps -aux|grep {app_name}|grep -v grep", stdout=subprocess.PIPE,stderr=subprocess.PIPE, shell=True) + + if code != int(result.returncode): + raise AssertionError(f'断言应用进程状态{app_name}与期望{code}不符') + + +class TestDdeCase(BaseCase): + + def test_dde_1958395_1(self): + """启动器打开Onboard设置""" + euler = DdeMethod() + euler.open_software_by_launcher("Onboardshezhi") + sleep(5) + assert_process_status(0, "/usr/bin/onboard-settings") + + def test_dde_1958395_2(self): + """终端打开Onboard设置""" + Cmd.run_cmd("/usr/bin/onboard-settings &") + sleep(5) + assert_process_status(0, "/usr/bin/python3 -s /usr/bin/onboard-settings") + + @pytest.fixture(autouse=True) + def clear(self): + DdeMethod().kill_process("/usr/bin/onboard-settings") + yield + DdeMethod().kill_process("/usr/bin/onboard-settings") + DdeMethod().click_restore() + DdeMethod().esc() diff --git a/case/test_dde_1958397.py b/case/test_dde_1958397.py new file mode 100644 index 0000000000000000000000000000000000000000..eed87ebf595d8d83afa0ecfe83d7637f2008c4ba --- /dev/null +++ b/case/test_dde_1958397.py @@ -0,0 +1,54 @@ +from time import sleep +from src import Src +import pytest +from src import CmdCtl as Cmd + +from apps.dde_autotest_euler.case.base_case import BaseCase +from apps.dde_autotest_euler.method.dde_method import DdeMethod + + +class TestDdeCase(BaseCase): + + def test_dde_1958397_1(self): + """启动器打开Qt4 Demo""" + euler = DdeMethod() + euler.open_software_by_launcher("Qt4 Demo") + sleep(5) + self.assert_process_status(True, "qtdemo-qt4") + + def test_dde_1958397_2(self): + """桌面打开Qt4 Demo""" + euler = DdeMethod() + euler.dde_dock.click_launcher_btn_by_attr() + euler.dde_launcher.click_search_box_by_attr() + Src.input("Qt4 Demo") + sleep(3) + euler.dde_launcher.right_click_by_attr("Qt4 Demo") + Src.select_menu(2) + sleep(1) + Src.esc() + euler.click_restore() + sleep(1) + euler.dde_dock.double_click_by_img("qt4_demo_icon.png") + sleep(5) + self.assert_process_status(True, "qtdemo-qt4") + DdeMethod().kill_process("qtdemo-qt4") + sleep(3) + euler.dde_dock.right_click_by_img("qt4_demo_icon.png") + Src.select_menu(1) + sleep(5) + self.assert_process_status(True, "qtdemo-qt4") + + def test_dde_1958397_3(self): + """终端打开Qt4 Demo""" + Cmd.run_cmd("qtdemo-qt4 &") + sleep(5) + self.assert_process_status(True, "qtdemo-qt4") + + @pytest.fixture(autouse=True) + def clear(self): + DdeMethod().kill_process("qtdemo-qt4") + yield + DdeMethod().kill_process("qtdemo-qt4") + DdeMethod().click_restore() + DdeMethod().esc() diff --git a/case/test_dde_1958399.py b/case/test_dde_1958399.py new file mode 100644 index 0000000000000000000000000000000000000000..bd64a11747a960567d57a0a581268956519c8efa --- /dev/null +++ b/case/test_dde_1958399.py @@ -0,0 +1,54 @@ +from time import sleep +from src import Src +import pytest +from src import CmdCtl as Cmd + +from apps.dde_autotest_euler.case.base_case import BaseCase +from apps.dde_autotest_euler.method.dde_method import DdeMethod + + +class TestDdeCase(BaseCase): + + def test_dde_1958399_1(self): + """启动器打开Qt4 Config""" + euler = DdeMethod() + euler.open_software_by_launcher("Qt4 Config") + sleep(5) + self.assert_process_status(True, "qtconfig-qt4") + + def test_dde_1958399_2(self): + """桌面打开Qt4 Config""" + euler = DdeMethod() + euler.dde_dock.click_launcher_btn_by_attr() + euler.dde_launcher.click_search_box_by_attr() + Src.input("Qt4 Config") + sleep(3) + euler.dde_launcher.right_click_by_attr("Qt4 Config") + Src.select_menu(2) + sleep(1) + Src.esc() + euler.click_restore() + sleep(1) + euler.dde_dock.double_click_by_img("qt4_config_icon.png") + sleep(5) + self.assert_process_status(True, "qtconfig-qt4") + DdeMethod().kill_process("qtconfig-qt4") + sleep(3) + euler.dde_dock.right_click_by_img("qt4_config_icon.png") + Src.select_menu(1) + sleep(5) + self.assert_process_status(True, "qtconfig-qt4") + + def test_dde_1958399_3(self): + """终端打开Qt4 Config""" + Cmd.run_cmd("qtconfig-qt4 &") + sleep(5) + self.assert_process_status(True, "qtconfig-qt4") + + @pytest.fixture(autouse=True) + def clear(self): + DdeMethod().kill_process("qtconfig-qt4") + yield + DdeMethod().kill_process("qtconfig-qt4") + DdeMethod().click_restore() + DdeMethod().esc() diff --git a/dde.csv b/dde.csv index a60db4d574b24a172aa0c8b4eeaa4d2382143954..fefc72829a214b6161899397179cb3d39907fbdb 100644 --- a/dde.csv +++ b/dde.csv @@ -133,6 +133,15 @@ 1940063,,, 1450519,,, 1952209,,, +1958215,,, +1958213,,, 1952211,,, +1956755,,, 1955475,,, -1956209,,, \ No newline at end of file +1956753,,, +1956757,,, +1956209,,, +1958395,,, +1958397,,, +1958399,,, +1958393,,, \ No newline at end of file diff --git a/method/image_res/dcc_dock_down.png b/method/image_res/dcc_dock_down.png new file mode 100644 index 0000000000000000000000000000000000000000..97820b3e9601fcbbb680c6ff69b734e774c0c108 Binary files /dev/null and b/method/image_res/dcc_dock_down.png differ diff --git a/method/image_res/dcc_dock_up.png b/method/image_res/dcc_dock_up.png new file mode 100644 index 0000000000000000000000000000000000000000..b6f2bbb13cf1537469af35e79bf1b1e1b83ab642 Binary files /dev/null and b/method/image_res/dcc_dock_up.png differ diff --git a/method/image_res/dde_dock_down.png b/method/image_res/dde_dock_down.png new file mode 100644 index 0000000000000000000000000000000000000000..989a9b2f3db25604e8e088f6ce1e25cb121eed87 Binary files /dev/null and b/method/image_res/dde_dock_down.png differ diff --git a/method/image_res/dde_dock_up.png b/method/image_res/dde_dock_up.png new file mode 100644 index 0000000000000000000000000000000000000000..e0d85be1a38552e0249f28f1bdaf5b68aa4402d1 Binary files /dev/null and b/method/image_res/dde_dock_up.png differ diff --git a/method/image_res/dock_max.png b/method/image_res/dock_max.png new file mode 100644 index 0000000000000000000000000000000000000000..18a49132b337a3080f86dab460a1f3d98c1cbda5 Binary files /dev/null and b/method/image_res/dock_max.png differ diff --git a/method/image_res/dock_min.png b/method/image_res/dock_min.png new file mode 100644 index 0000000000000000000000000000000000000000..514c7f4f0530d42c79ab37c704e50e1582ea19b3 Binary files /dev/null and b/method/image_res/dock_min.png differ diff --git a/method/image_res/qt4_config_icon.png b/method/image_res/qt4_config_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a0a59cbdb2387831daed499d5018410ec1fe9d07 Binary files /dev/null and b/method/image_res/qt4_config_icon.png differ diff --git a/method/image_res/qt4_demo_icon.png b/method/image_res/qt4_demo_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f945896b99834d5ca6f4f4754aa196faab03c713 Binary files /dev/null and b/method/image_res/qt4_demo_icon.png differ diff --git a/module/dde_dock/dde_dock_assert.py b/module/dde_dock/dde_dock_assert.py index 9e85a5b5f84698f0486c940a01aeff90d31d5478..1c46cf3d6a1527a529b46d7b7bcf547dfa172495 100644 --- a/module/dde_dock/dde_dock_assert.py +++ b/module/dde_dock/dde_dock_assert.py @@ -55,3 +55,29 @@ class DdeDockAssert(AssertCommon): logging.info("断言任务栏位置是否: %s", location_text) dock_location = DockDbus.get_position() AssertCommon.assert_true(dock_location == location) + + @staticmethod + def assert_dock_size(size): + """断言任务栏大小""" + mode_conf = { + "efficient": int(1), + "fashion": int(0) + } + size_conf = { + "min": int(40), + "max": int(100) + } + + if size_conf['min'] == size: + size_text = "小" + elif size_conf['max'] == size: + size_text = "大" + else: + raise AssertionError(f"任务栏大小参数<{size}>未知!") + logging.info("断言任务栏大小是否: %s", size_text) + dock_mode = DockDbus.get_display_mode() + if mode_conf['efficient'] == dock_mode: + dock_size = DockDbus.get_window_size_efficient() + elif mode_conf['fashion'] == dock_mode: + dock_size = DockDbus.get_window_size_fashion() + AssertCommon.assert_true(dock_size == size)