• Airtest Project的探索和使用


    Airtest使用参考博文: https://testerhome.com/topics/12391

    1. 安装Python 3

    2. 安装pip: 安装方法参考另外一篇随笔

    pip3部署:

    C:Userscmd>python2 -m pip install --upgrade pip

    #检查pip3 python3已安装库 C:Userscmd>pip3 list

    #检查pip3 有什么库需要升级 C:Userscmd>pip3 list -o

    升级该库  C:Userscmd>pip3 install --upgrade setuptools

     

    虚拟Python virtualenv环境部署

    C:Userscmd>pip3 install virtualenv

    安装Airtest提供的Android App UI测试库pocoui

     通过pip 命令 pip install pocoui 安装poco库,这个过程等待的时间会比较长一点:

    C: Userswb-liuying.ae>pip install pocoui

    #检查都依赖安装了哪些 pip list

    官网下载Airtest Project,下载之后解压就可以直接使用

    http://airtest.netease.com/

    手机连上电脑,手机的开发者模式开关打开,还要打开“允许通过USB调试修改权限或模拟点击”的开关

    Airtest右边的设备窗模块点击刷新ADB,然后右上角点击connect连接手机,

    手机连接上后Airtest会下发一些安装,点击允许

     PocoService 
    com.netease.open.pocoservice.test
    Yosemite(与输入法相关)

    安装好了之后,鼠标点击屏幕应该是可以直接操作了

    可以通过AirtestIDE提供的辅助模块录制脚本,也可以自己编写。

    左边的poco辅助窗,可以用来定位元素,选中锁定按钮,鼠标点击你需要定位的元素,就是看到这个元素的信息

    下面是我自己编写的测试的脚本,试了两台手机可以正常跑。

    # -*- encoding=utf8 -*-
    __author__ = "wb-liuying.ae"
    __title__ = "test script title"
    __desc__ = """
    this is a test script.
    """
    from airtest.core.api import *
    from poco.drivers.android.uiautomation import AndroidUiautomationPoco
    poco = AndroidUiautomationPoco(force_restart=False)
    # start your script here

    clear_app("com.taobao.idlefish")
    sleep(1.0)
    start_app("com.taobao.idlefish")
    sleep(10.0)
    if poco("com.taobao.idlefish:id/pic"):
    poco("com.taobao.idlefish:id/action_bar_right").click()
    poco("com.taobao.idlefish:id/bar_text").long_click()
    poco(text="预发").click()
    start_app("com.taobao.idlefish")
    sleep(10.0)

    while poco("android.widget.FrameLayout").child("android:id/content").child("android.widget.RelativeLayout").child("com.android.packageinstaller:id/dialog_container").child("android.widget.LinearLayout"):
    poco("com.android.packageinstaller:id/permission_allow_button").click()
    sleep(3.0)
    items = poco("android.widget.LinearLayout").child("android:id/content").child("com.taobao.idlefish:id/main_content_layout").child("com.taobao.idlefish:id/id_indicator").child("android.widget.RelativeLayout").child("com.taobao.idlefish:id/indicator_itmes").child("android.widget.RelativeLayout").child("com.taobao.idlefish:id/tab").child("android.widget.LinearLayout").child("com.taobao.idlefish:id/tab_icon")
    items[3].click()
    poco("com.taobao.idlefish:id/login_button").click()
    poco("com.taobao.idlefish:id/ali_user_guide_account_login_btn").click()
    poco("com.taobao.idlefish:id/accountCompleteTextView").click()
    text("aq申诉测试8")
    poco("com.taobao.idlefish:id/content").click()
    text('wb-liuying.ae|Dream123!')
    poco("com.taobao.idlefish:id/loginButton").click()
    items1 = poco("android.widget.LinearLayout").child("android:id/content").child("com.taobao.idlefish:id/main_content_layout").child("com.taobao.idlefish:id/id_indicator").child("android.widget.RelativeLayout").child("com.taobao.idlefish:id/indicator_itmes").child("android.widget.RelativeLayout").child("com.taobao.idlefish:id/tab").child("android.widget.LinearLayout").child("com.taobao.idlefish:id/tab_icon")
    items1[2].click()
    poco("com.taobao.idlefish:id/vmmsi_title").click()
    items = poco("android.widget.LinearLayout").child("android:id/content").child("android.widget.LinearLayout").child("com.taobao.idlefish:id/ansm_list").child("android.widget.FrameLayout").child("android.widget.LinearLayout").child("com.taobao.idlefish:id/stub").child("com.taobao.idlefish:id/imageCard").child("com.taobao.idlefish:id/tv_title")
    items[1].click()
    sleep(10.0)
    snapshot(msg="页面显示正确")
    poco("com.taobao.idlefish:id/left_image").click()
    sleep(1.0)
    items = poco("android.widget.LinearLayout").child("android:id/content").child("android.widget.LinearLayout").child("com.taobao.idlefish:id/ansm_list").child("android.widget.FrameLayout").child("android.widget.LinearLayout").child("com.taobao.idlefish:id/stub").child("com.taobao.idlefish:id/imageCard").child("com.taobao.idlefish:id/tv_title")
    items[3].click()
    sleep(10)
    snapshot(msg="页面显示正常")
    clear_app("com.taobao.idlefish")

    脚本运行之后可以查看自动生成的报告



    使用感受:非常的好用,快捷方便。容易上手。
    遇到的问题:
    试了几台手机,有的能连接并且能操作,有几台不行。所有组件都安装了还是不能操作,不知道什么原因。

    参考的链接:
    官方文档 http://airtest.netease.com/
    Airtest的框架和使用: https://github.com/AirtestProject/airtest
    poco的框架和使用: https://github.com/AirtestProject/poco

  • 相关阅读:
    判断是否是三角形,三角形面积,三角形内外切圆半径和面积
    输入从a加到b的两个数字
    九九乘法表
    某公司销售员工的年终奖根据该员工的年销售总额s提成,年销售总额超过1万元才提成,超过部分提成比例如下:
    判断是否是闰年?
    从键盘上输入三个点的坐标值(1,1)、(2,4)、(3,2),编程求该三角形的面积。
    输入一个正方形的边长,输出正方形的外接圆和内接圆的面积。
    .输入一个4位正整数,以相反的次序输出,例如,输入1234,输出为4321。
    SecoClient在win10系统中连接失败解决方案
    PHP 关于判断输入日期是否合法
  • 原文地址:https://www.cnblogs.com/xiaohai2003ly/p/8629121.html
Copyright © 2020-2023  润新知