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
就可以看到方法运行,打开记事本,接着通过菜单操作关闭了记事本。