Skip to content
📔 阅读量:

方法开发

方法模块路径

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