CukeTest Python API模块

CukeTest的自动化API的Python版本,方法的定义和用法都与JavaScript版本相似,因此可以直接参考文档中的API介绍;但是由于API绝大多数是异步的,因此对于Python的协程写法调用异步方法需要介绍一下。

安装

将压缩包auto-0.0.0-[python_version]-64_[build_version].zip解压后即可使用。如果在python代码中无法引用到auto模块,可以将解压后的auto-0.0.0-[python_version]文件夹路径用sys.path.append()加入到模块搜索路径中。

用法

Python
import asyncio # 加载Python协程库
from leanproAuto import Util # 加载CukeTest自动化库
# 定义一个自动化操作方法(异步)
def launch_notepad(): 
    pid = Util.launchProcess("notepad.exe")
    asyncio.sleep(2)
    Util.stopProcess(pid)

# 用asyncio.run调用该异步方法
if __name__ == "__main__":
    asyncio.run(launch_notepad())

py代码中使用了Util库(auto.util),对应的是JavaScript中的Util库,详情查看Util (常用工具函数)。除此之外,还提供了下面的API库:

编写测试

如果用这套API编写测试,可以借助pytest库来编写,编写方法在下面介绍。

安装pytest依赖

pip install pytest pytest-asyncio websocket-client greenlet pyee websockets

创建测试

遵循pytest命名规范

基于pytest测试框架的测试脚本,无论是添加新的测试类、还是新的测试方法,都需要遵循pytest的命名规范,以保证能够被正确的识别为测试类/方法。下面简单的介绍pytest的命名规范:

  • 测试文件需要符合test_*.py或是*_test.py的格式。
  • 测试类需要以Test开头的格式。
  • 测试方法需要以test开头的格式(无论是否在测试类中)。

添加新测试项目

新建一个新的py文件,文件名必须是test_*.py或是*_test.py。内容可以用以下的模板开始:

Python
import asyncio
import os
import config
from os import path
from leanproAuto import Screen, Mouse, Keyboard, Util

class Test_____:
    def test____(self): 
        ...

运行测试

pytest测试框架提供了命令行工具来运行测试,用法如下:

py -m pytest -k [测试任务] -s

比如运行所有方法名包含windows文本的测试方法:

py -m pytest -k windows -s

比如运行所有方法名不包含qt文本的测试方法:

py -m pytest -k "not qt" -s

示例

Python包中提供了一些示例,可以在auto-0.0.0-[python_version]/test文件夹中找到。这些示例可以使用pytest库提供的工具选项来快速运行。

比如auto-0.0.0-[python_version]/test/test_win.py文件中包含大量Windows应用自动化的脚本,假如需要调用其中的test_win_notepad()方法——用于自动化操作记事本应用菜单的方法,就可以使用下面的命令运行:

cd auto-0.0.0-[python_version]
python -m pytest -k test_win_notepad -s

就可以看到方法运行,打开记事本,接着通过菜单操作关闭了记事本。

results matching ""

    No results matching ""