Skip to content

3.1. 脚本编写

我该如何开始写脚本?

我们提供的两个用于支持脚本编写、运行的仓库 AirtestPoco 库,是Python第三方库,因此脚本的编写需要有 一定的Python基础 。若对 Python 语法不熟悉,网络上有不少非常优秀的Python教程可以学习,例如 廖雪峰的Python新手教程

在脚本编写过程中,可以根据需求在里面混合使用AirtestPoco ,也可以自由加入自己想用的其他python第三方库完成更加强大的功能。

但是请注意,可以 混用 AirtestPoco 代码,不代表是在同一条语句中混合使用Airtest的图片与Poco的语句,请各位在编写时注意每个库自己的API和语法。

在开始你的脚本编写工作前,可以先读一读官网提供的 教程 ,可以帮助你更快地上手。

开发环境的准备

如果使用AirtestIDE来编写脚本,只需要在 官网 下载最新版本AirtestIDE,解压即可直接使用。AirtestIDE内置了Python3.6.5,airtest和poco环境,本地无需安装python环境就能 直接使用

若需要使用python命令行运行脚本,请参考 运行脚本 中的 环境部署 章节。

如果想要使用其他需要安装的Python第三方库,或者Python2环境,请先进行本地python的 环境部署 ,然后在AirtestIDE设置中添加本地的Python.exe路径,详情请参考 IDE配置

Airtest与Poco相关问题

Airtest和Poco的区别

Airtest框架基于图像识别,写脚本的时候类似这样:

image

Poco框架基于UI控件搜索,写脚本的时候是这样的:

image

Airtest和Poco如何初始化

在AirtestIDE中新建的脚本,后缀都为 .air ,但实际上我们在运行的时候, 运行的是.air目录下的同名.py文件 。因此,就像一个普通的python脚本那样,当我们需要使用airtest的接口时(例如touch指令),我们需要在.py脚本的最前面import airtest的api。我们可以在AirtestIDE里新建一个脚本,就能看到默认的初始化代码:

# -*- encoding=utf8 -*-
        __author__ = "user"

        from airtest.core.api import *
        # 从api中import接口后,就能直接使用airtest的各个接口了
        auto_setup(__file__)  # 自动初始化设备

关于airtest提供的更多API信息,请参考 Airtest文档

关于如何连接上我想要的对应设备,请参考 如何连接手机/windows窗口

与Airtest不同的是,Poco需要在使用前,插入一段初始化代码,如图:

image

关于Poco的初始化,请参考 How to use Poco

如何用命令行运行脚本

关于命令行运行脚本,我们在 运行脚本 中做了非常详尽的介绍,请查阅。

批量运行脚本的方式我们暂时未提供,若有需求,可以自行写调度脚本来运行。

在AirtestIDE里写的脚本丢失了

第一次打开AirtestIDE时,会默认帮忙在系统temp目录下新建一个空脚本,方便大家熟悉软件功能和上手编写脚本。请在脚本编写的工作中,尽量避免将脚本保存在系统目录、或无权限读写的目录。如果是MacOS,请 不要将脚本保存在AirtestIDE.app的目录里 (例如: /Applications/AirtestIDE.app/Contents/MacOS ),因为一旦重装应用,将会覆盖掉该目录,导致脚本丢失。

请务必选择一个合适的、有存取权限的目录来存放你的脚本。

在AirtestIDE中录制Airtest语句

AirtestIDE为录制带截图的Airtest语句,提供了很多便利,录制方法请参考 2. Airtest脚本辅助录制

Airtest API文档

Airtest的常用API大部分都列在了AirtestIDE里的Airtest辅助窗中,在使用各种常见的截图语句时,鼠标移动到按钮上即可看到每个接口的常用参数与返回值信息,非常方便。

image

想要查阅更详细的API信息,请翻阅 airtest.core.api 页面。

airtest.core.api 中的API信息,是各平台通用的API和通用参数。而同一个接口在不同的平台下,可能会有不同的参数,甚至有些额外的特有接口。例如,在 Android``设备上,touch接口是点一下某个位置,但是在Windows` 中,我们可能会有双击、右键操作,这时候就需要去查阅对应平台的对应接口文档了,如图:

image

在我们的快速上手教程 如何为你的游戏写一个测试脚本 中的进阶阅读章节,我们以 touch 为例,详细介绍了它的使用方式和文档查阅方式,大家可以作为参考。

如果你的脚本涉及到 Android 设备,以及想要使用一些 Android 设备上的独有接口(例如想便捷地调用 adb shell ls 这样的指令),可以参考教程- 在Android手机上进行测试 ,里面详细地介绍了几种Android设备专用的接口和调用方式。其他的平台也与此类似,请通过查阅相关的教程来获取更多信息。

更多细节,请参考 第5章 Airtest

在AirtestIDE中使用Poco

同样地,AirtestIDE为Poco的录制和使用提供了很多便捷的功能,详情请参考 3. Poco 辅助功能

Poco API文档

在我们提供的快速上手 如何为你的游戏写一个测试脚本 教程中,我们使用一个游戏作为例子详细阐述了如何上手编写airtest和poco脚本,非常建议新手事先进行阅读。

更多细节,请参考 第6章 Poco