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()加入到模块搜索路径中。
用法
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库:
- Windows自动化库:
WinAuto - Qt自动化库:
QtAuto - 键盘操作库:
Keyboard - 鼠标操作库:
Mouse
编写测试
如果用这套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。内容可以用以下的模板开始:
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
就可以看到方法运行,打开记事本,接着通过菜单操作关闭了记事本。