Skip to content
📔 阅读量:

远程交互式控制

远程交互式控制可以在用例步骤中实现对远程机器的交互式控制;

逻辑示意图

标识文件

shell
autotest_my_project
├── apps
│   ├── autotest_my_app  # 创建的APP工程
│   │   ├── case
│   │   │   ├── assert_res  
│   │   │   │   └── readme
│   │   │   ├── base_case.py 
│   │   │   ├── __init__.py
│   │   │   ├── test_mycase_001.py  
│   │   │   └── test_mycase_002.py 
│   │   ├── REMOTE # 远程交互式控制标识文件(可以是空文件)

方法编写

在方法层新建:remote_widget.py ,继承底层 Remote 类;

python
# remote_widget.py

from src.remotectl.remote import Remote


class RemoteWidget(Remote):
    
    def send_link_to_dock(self, appname):
        """发送 {{appname}} 图标到任务栏"""
        cmd = (
            "dbus-send --session --print-reply "
            "--dest=com.deepin.dde.daemon.Dock /com/deepin/dde/daemon/"
            "Dock com.deepin.dde.daemon.Dock.RequestDock string:/usr/share/applications/"
            f"{appname}.desktop int32:0"
        )
        self.rctl.run_cmd(cmd, interrupt=False, timeout=5, out_debug_flag=False, command_log=False)

    def click_deepin_music_on_dock_by_attr(self):
        """点击任务栏上的音乐图标"""
        self.send_link_to_dock("deepin-music")
        self.click_element_by_attr("Btn_音乐")

用例编写

在用例 case 目录下新建 test_mycase_003.py

python
# test_mycase_003.py

from apps.autotest_my_app.case.base_case import BaseCase
from apps.autotest_my_app.widget.remote_widget import RemoteWidget


class TestMyCase003(BaseCase):

    def test_mycase_003(self, slaves):
        """my case 003"""
        kwargs = slaves[0]
        remote = RemoteWidget(**kwargs)
        remote.click_deepin_music_on_dock_by_attr()