zoukankan      html  css  js  c++  java
  • airtest+pytest实战教程01-环境配置

    前言

    airtest是一款跨平台的UI自动化编辑器,主要为游戏而设计,但同时也可以适用于移动端的自动化测试。

    airtest里面有两大体系,airtest和pocoui支撑着整个测试框架。

    • airtest
      • 主要通过图像对比然后在界面上进行点击和识别的操作。
    • pocoui
      • 该模块功能很强大,与uiautomator2有异曲同工之妙。

    下载安装

    进入官网下载安装

    点击下载即可。

    image.png

    下载完成后是一个压缩包。

    解压到一个文件夹中,比如我就是在D盘根目录进行解压的。解压后打开文件夹。

    找到AirtestIDE.exe双击打开。

    QQ截图20200620124721.png

    打开后会弹出登录界面,点击skip跳过。

    QQ截图20200620124541.png

    我们就进入到了主界面。

    QQ截图20200620124635.png

    入门教程

    这里我就不介绍了,官方教程里有一个5分钟入门,可以打开看一看。

    https://airtest.doc.io.netease.com/tutorial/1_quick_start_guide/

    airtest也是需要编写脚本的,使用的语言是python。

    所以在学习这个工具的时候也需要一定的python基础。

    airtest同时支持2和3,推荐使用python3。

    搭建环境

    airtestIDE安装好了,现在我们应该准备其他的环境。如adb,安卓设备环境。

    ADB环境搭建

    QQ截图20200620125036.png

    • 配置环境变量。

    QQ截图20200620125057.png

    • 验证adb安装

      QQ截图20200620125119.png

    mumu模拟器

    下载安装网易mumu模拟器


    由于没有多余的安卓手机,自己也只有一个主力机。所以我只能考虑用模拟器进行本系列的教程。
    
    百般挑选之后我选择了网易的mumu模拟器。主要原因是它和airtestIDE同属网易开发的,天然亲近。
    

    下载地址:http://mumu.163.com/

    配置ADB

    因为网易mumu是模拟器所以我们需要设置一下adb。

    教程:http://mumu.163.com/2017/12/19/25241_730476.html

    启动链接

    启动airtest,启动mumu模拟器

    • 在airtestIDE中可以看到箭头1所指的区域,没有出来设备
      QQ截图20200620125141.png

    • 所以我们选择箭头2所指的选项,点击远程设备链接,点击连接

    QQ截图20200620125207.png

    • 这时可以看到设备出来了。

    QQ截图20200620125228.png

    • 点击connect右键的箭头,选择USE javacap,然后点击connect

      此时airtest和mumu模拟器的链接就大功告成了。

    QQ截图20200620125250.png

    配置说明

    至于为什么要选择javacap和安卓设备的链接问题,请移步官方提供的文档:

    http://airtest.netease.com/docs/cn/2_device_connection/3_emulator_connection.html

    获取APP包名

    pycharm中已经成功链接了mumu模拟器,并打印出了设备的相关信息.

    接下来我们就要获取APP的包名,先看我们准备用那个app作为教程中所使用的app呢。

    我在这里选择的是智学网app进行测试,在mumu模拟器的应用市场就可以下载到。

    QQ截图20200620161419.png

    接下来我们要获取应用的包名,获取包名我常用的有两种方法。

    adb命令行获取包名

    首先我们先查看一下mumu模拟器的版本。进入设置—关于里面。

    QQ截图20200620130702.png

    是安卓6.0.1版本的。

    • MacOS系统

      • 安卓8.0以下
      adb shell dumpsys activity activities | grep mFocusedActivity
      
      • 安卓8.0以上
      adb shell dumpsys activity activities | grep mResumedActivity
      
    • Windows系统

      • 安卓8.0以下
      adb shell dumpsys activity activities | findstr mFocusedActivity
      
      • 安卓8.0以上
      adb shell dumpsys activity activities | findstr mResumedActivity
      

    我们在mumu模拟器中运行智学网app,然后打开cmd。输入Windows安卓8.0以下的命令。

    注意:如果遇到报错

    error: no devices/emulators found
    

    我们先在cmd中执行一下命令: adb connect 127.0.0.1:7555

    然后再进行获取包名的命令就可以了。

    QQ截图20200620164201.png

    airtest获取包名

    那么在脚本中我们应该怎样获取包名呢,airtest已经为我们内置了一个获取包名的方法:

    首先我们导入airtest包中的Android模块。

    然后使用模块的get_top_activity()获取并打印出顶层的安卓活动。

    运行脚本:请看图片中箭头所指部分。

    QQ截图20200620163948.png

    可以看到打印结果的包名和活动名是不是和adb命令行获取的一样。

    在airtest在获取包名很简单吧,当然ADB命令行获取也更方便,不用导入脚本。

    自己想使用那种方式安卓应用包名都可以。

    进行到这里我们的airtest测试环境就配置好了。

  • 相关阅读:
    字符串中去除连续相同的字符保留一个
    截取字符串中最后一个中文词语(MS SQL)
    WebForms UnobtrusiveValidationMode requires a ScriptResourceMapping for 'jquery'. Please add a ScriptResourceMapping named jquery(case-sensitive).
    Unexpected error from external database driver (1)
    RDLC报表显示存储于数据库的图片
    从angularjs传递参数至Web API
    angularjs呼叫Web API
    创建Web API并使用
    打印网页中某一段内容
    在angularjs实现一个时钟
  • 原文地址:https://www.cnblogs.com/wxhou/p/12927433.html
Copyright © 2011-2022 走看看