Airtest 全局设置、脚本引用

  前面重点介绍了 Airtest 的操作,也是新手入门的主要学习内容,这篇短文将介绍一些相关全局设置、脚本的引用、脚本执行与报告生成。

  Airtest 脚本全局设置
  在 airtest.core.settings 里面,提供了部分全局默认属性,其中我们列举出几个常见属性和它们的默认值:

LOG_DIR = Nonelog 保存路径;
LOG_FILE = “log.txt”log名称;
RESIZE_METHOD=staticmethod(cocos_min_strategy)图像识别算法设置;按照默认的算法顺序即可;
THRESHOLD = 0.7图像阈值;这个值在前面的内容提到过,有兴趣的可以看看之前的内容,也可以单独设置某个图片的阈值;
THRESHOLD_STRICT = 0.7与上面一样,区别是版本问题;1.1.6之后不用考虑;
OPDELAY = 0.1步骤之间的时间间隔;
FIND_TIMEOUT = 20查询超时时长;例如:touch、double_click、swipe、wait、assert_exists;
FIND_TIMEOUT_TMP = 3查询超时时长,例如:exists、assert_not_exists;
PROJECT_ROOT = os.environ.get(“PROJECT_ROOT”, “”)设定一个默认项目根目录PROJECT_ROOT,让使用using接口时能够在当前根目录下寻找别的子脚本,无需填写完整路径,让脚本之间相互调用使用更加方便。
SNAPSHOT_QUALITY = 10截图压缩精度;
IMAGE_MAXSIZE = os.environ.get(“IMAGE_MAXSIZE”, None)截图尺寸大小;
SAVE_IMAGE = True保存运行过程的截图;False-不保存;如果是 True,在报告里面的步骤中会有截图;

  手动修改 settings 里面的值,比较常用的就是LOG_DIR、LOG_FILE、THRESHOLD、FIND_TIMEOUT、PROJECT_ROOT,这里以修改图像阈值为例;

from airtest.core.api import *

# airtest.core.api中包含了一个名为ST的变量,即为全局设置
ST.THRESHOLD = 0.8  

# 未指定图片threshold,默认使用ST.THRESHOLD中的0.8
touch(Template(r"tpl1532588127987.png", record_pos=(0.779, 0.382), resolution=(407, 264)))

# 手工指定图片threshold,以图片设置的0.6为准
touch(Template(r"tpl1532588127987.png", record_pos=(0.779, 0.382), resolution=(407, 264), threshold=0.6))

  Airtest 脚本引用与调用

  在自动化测试中,会有一些通用的东西,为了简洁、避免重复造轮子,可以单独抽离出来,这就牵扯到了脚本的引用与调用,Airtest 使用 using() 方法引用脚本;但是,要提前将被引用的脚本加入 sys.path,这样在使用的时候才能找到该脚本,以及其中包含的图片文件。上面介绍过一个项目根目录参数 PROJECT_ROOT,一旦配置了项目根目录,using() 就会去当前根目录下查找被调用的脚本,无需填写完整的路径,这种方法看似不错,但是脱离IDE就会报错,找不到文件,所以,我一般不用这种方法,而是直接将脚本加入 sys.path,实际情况看各位的需要。

  设置根目录,引用脚本,记住:先调用脚本,然后 import 导入,最后才是使用。

import sys
ST.PROJECT_ROOT = "D:/test/user/project"  # 添加到项目根目录也可以;

using(r"common.air")  # 调用脚本

from common import common_function  # 使用脚本

  将脚本加入 sys.path,这种方法即使脱离 IDE 也能运行。

import os
import sys
sys.path.append(os.path.join(os.path.dirname(os.getcwd()),"login.air"))
using(r"login.air")

from login import login
if is_login:
    login("1312091xxxx")

  脚本批量执行

  官方介绍了使用 bat 来执行 Airtest,这里先介绍一下,因为我在工作中不使用这种方式,后面会介绍,这里介绍它是因为,大家根据实际情况选择使用。
官方介绍了使用 bat 来执行 Airtest,这里先介绍一下,因为我在工作中不使用这种方式,后面会介绍,这里介绍它是因为,大家根据实际情况选择使用。

  bat 执行单个脚本,先新建一个 txt 文件,输入下面的内容,:: 后面是注释内容。在这个例子中,我已经在示例脚本的开头添加了设备和 log 的初始化内容,所以,不用另外在运行命令时添加各种参数,如果你的设备是固定的,可以这么写。编辑完成之后,后缀改成 .bat,然后就可以执行了。

::关闭回显
@echo off

::切换到D盘
D:

::进入D盘的test目录,这里是你自己的脚本存放目录
cd D:\test

::执行 airtest run 命令
start airtest run newsLogin.air
exit

  bat 执行多个脚本,这里是按照你书写的顺序去执行。

@echo off
D:
cd D:\test
title 正在执行第一个脚本
airtest run order.air

title 正在执行第二个脚本
airtest run Follow.air

exit

  bat 也可以在多机运行,使用 start 命令开启多个命令窗口,实现多台设备上执行同一个脚本。

@echo off
D:
cd D:\test
start "正在使用模拟器1跑脚本" airtest run Order.air --device Android://127.0.0.1:5037/emulator-5554
start "正在使用模拟器2跑脚本" airtest run Follow.air --device Android://127.0.0.1:5037/127.0.0.1:7555
exit

  到此,结合前面的内容,你就可以自己利用 Airtest 写自动化脚本,包括自己搭建自动化框架,道理都是 PO 分层那一套,以前做过 selenium 自动化,能很快上手。但是,事情还没完,因为,这里的报告,一般都是针对单个脚本的,如果整合到一起,如何参数化数据,请看后面的内容。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值