方法开发
方法模块路径
shell
my_autotest
├─ case
│ ├─ assert_res
│ │ └─ README.md
│ ├─ base_case.py
│ ├─ test_mycase_001.py
│ └─ test_mycase_002.py
├─ method <--方法模块
│ ├─ image_res
│ │ └─ README.md
│ ├─ static_res
│ │ └─ README.md
│ ├─ assert_method.py
│ ├─ base_method.py
│ ├─ my_autotest_method.py
│ └─ ui.ini
├─ .gitignore
├─ README.md
├─ config.py
├─ conftest.py
├─ mycase.csv
├─ pytest.ini
├─ requirements.txt
└─ ruff.toml
以 dde-dock 方法举例
dde_dock_method.py
python
from funnylog2.config import config as log_config
from youqu3 import log
from youqu3.gui import pylinuxauto
log_config.CLASS_NAME_ENDSWITH = "Method"
@log
class DdeDockMethod():
@staticmethod
def click_dde_file_manager_on_dock_by_attr():
"""在任务栏点击文件管理器"""
pylinuxauto.find_element_by_attr_path("/dde-dock/Btn_文件管理器").click()
@staticmethod
def right_click_dde_file_manager_on_dock_by_attr():
"""在任务栏右键点击文件管理器"""
pylinuxauto.find_element_by_attr_path("/dde-dock/Btn_文件管理器").right_click()
遵循 PO 设计模式:一个页面一个类,一个元素一个方法
实践规范
方法文件名称
- 小驼峰命名。
- 以
应用名称开头
,如果应用涉及的页面较多需要做划分,可以用页面的名称。 - 以
method
结尾。
类名称
- 大驼峰命名。
- 以
应用名称开头
,如果应用涉及的页面较多需要做划分,可以用页面的名称。 - 以
Method
结尾。
方法名称
python
def {动词}_{对象}_{位置}_{元素定位方式}():
...
动词开头。
方法动词开头列表
名称 单词 左键点击 click
右键点击 right_click
双击 double_click
移动 move_to
拖动 drag
新建 new
拖动到 drag_to
对象,能够直接表示元素对象即可。
位置,对象所在的位置,或者是哪个应用的。
元素定位方式
方法动词开头列表
名称 表达式 属性定位 by_attr
图像识别 by_image
OCR识别 by_ocr
相对位置定位 by_ui
键鼠操作 by_mk
函数注释
python
def func():
"""函数注释"""
日志
全自动输出日志,只需要一个类装饰器。
python
from funnylog2.config import config as log_config
from youqu3 import log
log_config.CLASS_NAME_ENDSWITH = "Method"
@log
class DdeDockMethod():
...
静态资源
方法涉及的静态资源,统一存放到 method/static_res
目录:
shell
my_autotest
├─ case
│ ├─ assert_res
│ │ └─ README.md
│ ├─ base_case.py
│ ├─ test_mycase_001.py
│ └─ test_mycase_002.py
├─ method <--方法模块
│ ├─ image_res
│ │ └─ README.md
│ ├─ static_res
│ │ ├─ xxx.zip
│ │ └─ README.md
│ ├─ assert_method.py
│ ├─ base_method.py
│ ├─ my_autotest_method.py
│ └─ ui.ini
├─ .gitignore
├─ README.md
├─ config.py
├─ conftest.py
├─ mycase.csv
├─ pytest.ini
├─ requirements.txt
└─ ruff.toml
图像识别定位的图片资源
方法涉及到使用图像识别定位
的图片资源,统一存放在 method/image_res
目录:
shell
my_autotest
├─ case
│ ├─ assert_res
│ │ └─ README.md
│ ├─ base_case.py
│ ├─ test_mycase_001.py
│ └─ test_mycase_002.py
├─ method <--方法模块
│ ├─ image_res
│ │ ├─ xxx.png
│ │ └─ README.md
│ ├─ static_res
│ │ └─ README.md
│ ├─ assert_method.py
│ ├─ base_method.py
│ ├─ my_autotest_method.py
│ └─ ui.ini
├─ .gitignore
├─ README.md
├─ config.py
├─ conftest.py
├─ mycase.csv
├─ pytest.ini
├─ requirements.txt
└─ ruff.toml