• Airtest之使用Poco测试Android原生应用


    >以下基于 python3.8;airtestIDE1.2.9;airtest1.1.11;pocoui1.0.82

    什么是Android原生应用,简单说就是没有使用Webview,也不是游戏app。如果一个App有Webview则是混合应用,目前市面上大部分App是混合应用。

    首先连接设备,可以参考之前文章:AirtestIDE连接安卓真机及常见问题

    连接好设备后,在AirtestIDE左下的Poco辅助窗,选择Android,此时AirtestIDE会向手机安装Pocoservice.apk,有些手机需要给予权限后才能安装成功,另外会弹一个版本相关的提示,点确定即可。

    之后AirtestIDE会启动Pocoservice,它会每隔几秒抓取手机当前界面的控件树信息,并更新到Poco辅助窗下面。

    如果Pocoservice启动失败,可能会导致Pocoservice.apk反复重装,此时可以检查以下几个方面:

    • 是否Android版本过低,Poco支持Android SDK API ≥ 19,即Android 4.4及以上

    • 请关闭PC或手机上连接的网络代理Proxy,否则可能导致连不上Poco

    • 可以尝试卸载手机中的2个Pocoservice相关的APK后,手工重新安装一遍,在AirtestIDE目录下的pocodriversandroidlib目录下能够找到这两个APK

    • 部分vivo和oppo手机需要将手机设置-输入法设置中,把Yosemite输入法设置为默认输入法+当前输入法

    一个计算器的脚本实例

    每个手机都自带计算器,首先我们需要获取手机上计算器应用的包名。打开计算器,在PC中输入命令:

    adb shell dumpsys activity top

    之后我们可以在输出中找到包名,每个系统内容可能不太一样,我的是com.miui.calculator

    接下来我们就写一个1+1=2的例子

    # -*- encoding=utf8 -*-
    
    from airtest.core.api import *
    from poco.drivers.android.uiautomation import AndroidUiautomationPoco
    
    # 连接设备、初始化日志路径
    auto_setup(__file__, logdir=True, devices=["Android:///"])
    
    # 启动计算器
    start_app("com.miui.calculator")
    sleep(3)
    
    # 初始化安卓原生poco
    poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
    
    # 依次点1+1=,这块代码可以使用IDE左下的录制功能
    poco("com.miui.calculator:id/digit_1").click()
    poco("com.miui.calculator:id/op_add").click()
    poco("com.miui.calculator:id/digit_1").click()
    poco("com.miui.calculator:id/btn_equal_s").click()
    
    # 获取结果控件的文本并断言,可以使用IDE左下的锁定功能,并找到结果控件
    r = poco("com.miui.calculator:id/result").get_text()
    assert_equal("= 2", r, "结果=2")

    录制和查找控件不会用可以看之前文章:AirtestIDE基本功能(一)

    写完后运行,正常执行完毕。点击生成报告

  • 相关阅读:
    Shell 查找和关闭进程
    如何重启MySQL,正确启动MySQL
    php 杂记
    Linux gcc编译简介、常用命令
    memset和printf(buf)编译出错
    Linux 文件操作函数
    Sizeof与Strlen的区别与联系
    获取Checkbox的值
    undefined reference to 'pthread_create'
    linux makefile文件
  • 原文地址:https://www.cnblogs.com/songzhenhua/p/15057127.html
Copyright © 2020-2023  润新知