一、环境搭建

1、Airtest客户端下载

访问官网http://airtest.netease.com/,根据自己的系统下载相应的客户端安装;

2、python工具下载与环境搭建

在本地python环境中安装airtest和pocoui,然后用命令行运行脚本;

1、建议使用3.7以下 版本,下载python3;

2、下载python后,配置本地的运行环境,详见:http://airtest.netease.com/docs/cn/4_run_script/run_script.html#id4

1)使用 pip 安装Airtest框架 pip install airtest

2)若运行代码时,在cv2模块报 ImportError: DLL load failed: 找不到指定模块 的错,如果使用的python版本低于3.7,请直接运行:

pip uninstall opencv-contrib-python
        # 若以下安装语句运行失败,可以尝试更新pip到最新版本后重试
        pip install opencv-contrib-python==3.2.0.7

3)Poco安装

使用 pip 安装poco框架 pip install pocoui,请注意库的名称为 pocoui,不要填错。

3、在Airtest中集成python环境

在Airtest中集成python环境的话,需要安装python之后,再填写python的路径到AirtestIDE中;可以参考:http://airtest.netease.com/docs/cn/4_run_script/run_script.html#airtestidepython 进行集成;

二、Airtest使用

1、使用方法

具体请参考官方文档:http://airtest.netease.com/docs/cn/,请优先看快速5分钟使用教程:http://airtest.netease.com/tutorial/Tutorial.html

2、在Airtest IDE中连接手机

在Air test中连接手机请查看连接:http://airtest.netease.com/docs/cn/2_device_connection/1_android_phone_connection.html#androidusb

手机连上Airtest之后,会向手机中咱装3个app,如下:

pocoservice是支撑poco操作的app,yosemite是airtest的输入法,安装之后,手机的默认输入法会变成这个输入法,如果需要改回来原来的输入法,需要手动到手机设置里面进行修改;

3、在代码中连接手机

如果是在 .py 脚本文件中 import airtest/poco ,希望以普通python脚本的方式来运行的话,可以在脚本代码中使用 connect_device 接口:

 from airtest.core.api import *
connect_device("Android:///") # 传入的是设备字符串

4.多个手机交互

如果case中涉及到两个手机交互的,可以在.py文件中连接多个手机,需要在哪个手机上操作,就需要在脚本中使用set_cerrent()借口来切换到相应的手机上;

 device1 = "c17a4cb4" #设备1
device2 = "RKK0217C15003363" #设备2
dev1 = connect_device("android://127.0.0.1:5037/"+device1)#连接设备1
dev2 = connect_device("android://127.0.0.1:5037/"+device2)#连接设备2
poco1 = AndroidUiautomationPoco(dev1) #初始化设备1
poco2 = AndroidUiautomationPoco(dev2) #初始化设备2
set_current(device1)#切换到手机1
set_current(device2)切换到手机2

5.case举例

初始化设备之后就可以进行相关设备的poco操作了,举个例子:

这个例子是打开微信,点击聊天信息中的一个好友,然后清除好友聊天的例子;

 from poco.drivers.android.uiautomation import AndroidUiautomationPoco
device1 = "c17a4cb4" #设备号
dev1 = connect_device("android://127.0.0.1:5037/"+device1)#连接师傅手机
poco1 = AndroidUiautomationPoco(dev1) #实例化手机
auto_setup(__file__) def clear_wechat(poco):#清除微信的聊天记录
start_app("com.tencent.mm")#启动微信
sleep(12)#等待12秒
poco1(text="三星").click()#点击好友“三星”的聊天
poco1("android.support.v7.widget.LinearLayoutCompat").click()#点击更多
poco1(text="清空聊天记录").click()#点击清空聊天记录
poco1(text="清空").click()#点击清空
stop_app("com.tencent.mm")#关闭微信

6.引用其他air文件的方法:

如果有很多重复的操作,可以将这些重复的操作写到一个公用的air文件里面,然后再在用例里面引用这个公用的air文件的方法就可以:

举例,有一个名叫gongyou.air的文件,里面有一个clear_wechat的方法,这个clear_wechat方法就是一个清除微信聊天记录的用例,如果需要在用例中用到这个clear_wechat,就需要在用例中引用这个文件,然后倒入这个引用文件中的clear_wechat方法,如下:

 # -*- encoding=utf8 -*-
__author__ = "xhong" from airtest.core.api import *
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
from poco.exceptions import PocoNoSuchNodeException
from poco.exceptions import PocoTargetTimeout
ST.PROJECT_ROOT = "D:\code\AirtestCase"#引用公用air的路径
using("gongyou.air")
from gongyou import clear_wechat

7.IDE的使用

IDE的设置和使用官网有具体的说明:http://airtest.netease.com/docs/cn/7_settings/1_ide_settings.html#editor

7.1、新建脚本

点击脚本窗口右侧的“+”号,会新建脚本,新建的脚本默认会生成下面的代码;如下:

7.2 Airtest辅助窗的使用

需要图像识别的使用的是Airtest辅助窗;

7.3 poco辅助窗的使用:

符合下列框架的APP的UI定位使用的是POCO辅助窗;

已安卓原生应用举例:

选择Android原生应用之后,会提示导入相关的库,选择yes就好;

7.4、执行脚本与查看报告

执行单个脚本,在airtest中执行就可以,如下:

7.5 执行多个脚本,需要在python中跑代码

多个脚本批量执行,在Airtest IDE中无法实现,需要单独写一个框架,并使用python写一个执行入口文件myrunner.py;

多个脚本串行执行脚本请参考:https://blog.csdn.net/u010127154/article/details/83375659

执行myrunner.py文件时,需要更改自己的AllCase路径和自己手机的设备号:

说明:  1.所有的需要执行的case写好之后都放在AllCase文件夹里面;

2.执行时只需要执行myrunner.py文件就可以了。

3.批量执行的报告会汇总到/Users/xhong/Documents/UI/AirtestCase/AllCase/summary.html文件里面,所有case执行完成之后,打开semmary.html文件可以看到汇总页面,点击每一个case名称可以查看具体的测试报告的内容;

7.6 需要注意的问题:

airtest 测试需要注意的问题:

1、在使用Airtest过程中,遇到的错误,请先到官网http://airtest.netease.com/docs/cn/9_faq.html,查找相应问题的解决方法,这个很重要,可以节省很多时间;
2.查看批量脚本的执行报告时,不要再IDE里面查看,直接打开文件就可以;
3.图像识别时,要截取高分辨率的手机来适配低分辨率的手机;
4.最好使用华为或是三星的手机,其他的手机启动pocoserver时可能会失败,导致脚本执行失败;

参考:https://blog.csdn.net/u010127154/article/details/83375659

使用Airtest进行UI自动化测试的更多相关文章

  1. 非常好用的1款UI自动化测试工具:airTest

    网易团队开发的UI自动化测试神器airTest,下载地址:http://airtest.netease.com/tutorial/Tutorial.html Appium和airTest对比,我的看法 ...

  2. Airtest网易开源的一款UI自动化测试工具

    Airtest网易开源的一款UI自动化测试工具 1 Airtest 简介Airtest Project是网易游戏内部工具团队开发并开源的一款UI自动化测试工具,据说曾经获得谷歌力挺. AirtestI ...

  3. 网易UI自动化测试工具Airtest中导入air文件中的方法

    最近看了一下网易的Airtest ,UI测试工具,写了一些后在导入其他air文件中的.py文件,卡了一下,现在博客中纪录一下导入其他air文件的方式: 在Airtest 测试工具中,导入其他air文件 ...

  4. 网易与Google合作发布开源UI自动化测试方案 牛逼:Google 方面评价,这可能是目前世界上最好的 Android 游戏自动化测试方案。

    美西时间 3 月 19 日,在 GDC 开幕第一天的 Google 开发者专场,Google 发布了一款由网易研发的 UI 自动化测试方案:Airtest Project.Google 方面评价,这可 ...

  5. Airtest 网易 UI 自动化工具 Airtest 浅用记录

    一 使用目的 该工具主要是面向游戏UI测试基于图像识别,如游戏框架unity,Cocos-js以及网易内部的游戏框架同时也支持原生Android App 的基于元素识别的UI自动化测试.本文主要使用目 ...

  6. 【python+selenium自动化】图像识别技术在UI自动化测试中的实际运用

    引言: 目前在图像识别方面的自动化测试框架有很多,其中比较有名的是airtest,主要做手机端的游戏自动化测试(http://airtest.netease.com/) 因为没有实际把airtest运 ...

  7. 网易与Google合作,于GDC开幕首日发布开源UI自动化测试方案

    [TechWeb报道]美西时间3月19日,在GDC开幕第一天的Google开发者专场,Google发布了一款由网易研发的UI自动化测试方案:Airtest Project. Google方面评价,这可 ...

  8. 使用AirtestProject+pytest做支付宝小程序UI自动化测试

    一,前言 1,背景 因公司业务需要做支付宝小程序的UI自动化测试,于是在网上查找小程序的自动化资料,发现微信小程序是有自己的测试框架的,但几乎找不到支付宝小程序UI自动化测试相关的资料.白piao失败 ...

  9. APP UI自动化测试思路总结

    python+appium自动化测试系列就要告一段落了,本篇博客咱们做个小结. 首先想要说明一下,APP自动化测试可能很多公司不用,但也是大部分自动化测试工程师.高级测试工程师岗位招聘信息上要求的,所 ...

随机推荐

  1. [梁山好汉说IT] 如何理解脑裂问题

    [梁山好汉说IT] 如何理解脑裂问题 这个系列是通过梁山好汉的例子来阐述一些IT概念. 1. 问题描述 Split-brain, 就是在集群环境中,因为异常情况发生后,产生两个子集群.每个子集群都选出 ...

  2. k8s集群———flannel网络

    #master执行将内网通信地址写入etcd中,确保flannel能与etcd通信 #添加 /opt/etcd/bin/etcdctl --ca-file=/opt/etcd/ssl/ca.pem - ...

  3. nginx部署vue跨域proxy方式

    server { listen 80; charset utf-8; #server_name localhost; server_name you_h5_name; ###VUE项目H5域名 err ...

  4. JavaScript 构造树形结构的一种高效算法

    引言 我们经常会碰到树形数据结构,比如组织层级.省市县或者动植物分类等等数据.下面是一个树形结构的例子: 在实际应用中,比较常见的做法是将这些信息存储为下面的结构,特别是当存在1对多的父/子节点关系时 ...

  5. 安装Docker Machine

    什么是Docker Machine Docker Machine是Docker官方编排项目之一,由Go语言实现,负责在多种平台上快速安装Docker环境,Github项目主页 它支持Linux.Mac ...

  6. 漏洞挖掘 | 远程WWW服务支持TRACE请求

    允许TRACE方法 漏洞描述 目标WEB服务器启用了TRACE方法.TRACE方法是HTTP(超文本传输)协议定义的一种协议调试方法,该方法使得服务器原样返回任何客户端请求的内容(可能会附加路由中间的 ...

  7. 人生苦短,我用Python(6)

    1.分隔.合并字符串 分隔字符串是把字符串分隔为列表,而合并字符串是把列表合并为字符串,分割字符串和合并字符串可以看作是互逆操作. (1)分隔字符串 字符串对象得split()方法可以实现字符串分隔, ...

  8. vue项目准备工作

    1.写文档: 产品说明.工作日志.接口说明文档.数据库说明文档.项目架构说明文档等···· 例如:后台管理系统:商品的管理.店铺的管理.店铺类别管理.管理员的管理.用户管理等·····    前端渲染 ...

  9. 基于Jenkins的持续交付全流程设计与实践

    1 从理论开始 什么是DevOps? 近年来,随着DevOps理念的逐渐深入人心,企业逐渐意识到从看似重复的手工劳动中实现自动化流程处理,对于提高企业劳动生产力已经非常重要,尤其是面向互联网的开发者, ...

  10. 扫描器是如何判定有xss漏洞的

    这个问题,看似简单,实则触及到很多人的知识盲区 我们都知道,弹窗就能判定这个页面存在xss, 那么扫描器是怎么判断的呢,或者说扫描器是怎么判断是否弹窗的呢 测试发现 当响应的头中content-typ ...