远程交互式控制
远程交互式控制可以在用例步骤中实现对远程机器的交互式控制;
逻辑示意图
标识文件
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()