美文网首页Android收藏集
android自动化测试实践

android自动化测试实践

作者: 紫阚 | 来源:发表于2019-08-01 16:24 被阅读2次

    目标:提高软件质量,减少测试成本

    黑盒

    测试app的稳定性,成本低不需要开发写用例

    Maxim基于安卓原生的MonkeyTest优化,解决了monekey因为随机事件不可控,点到状态栏(点开了飞行导致没网、或者脱离了当前app)的问题,使用深度优先的算法,遍历app节点树

    安卓版本支持 5、6、7、8、9

    维护:不需要 执行:开发/测试均可

    操作过程

    1、克隆库到本地

    已经clone过的,可以换成拉取命令 git pull

    git clone https://github.com/zhangzhao4444/Maxim.git

    如果pull有更新,记得执行第二步把framework.jar、monkey.jar推到手机上

    2、初始化操作,把配置信息传到手机上

    一台机子初始化过后,可跳过此步骤

    2.1 切到库目录,把测试框架传到手机上

    以下framework.jar、monkey.jar是第一步根目录里的
    创建一个文件 max.config,内容:max.randomPickFromStringList = true
    创建一个文件 max.strings,内容:11223344

    adb push framework.jar /sdcard

    adb push monkey.jar /sdcard

    adb push max.config /sdcard

    adb push max.strings /sdcard

    2.2 屏蔽掉系统输入法

    系统输入法会吞噬大部分monkey操作,导致在一个输入框内循环,跳不出去,因此我们要安装特定的输入法
    ADBKeyboard.apk在仓库的test目录内有,安装到手机上

    adb install ADBKeyboard.apk

    在系统的输入法中选择ADBKeyboard.apk

    3、安装线上包,开启所有权限,登陆测试账号

    开启 “开发者选项” -> "USB调试(安全设置) 允许通过usb调试修改权限或模拟点击"

    4、插上设备,执行

    替换包名即可;--running-minutes执行时间单位分钟,–throttle指令间隔,单位毫秒

    打开cmd窗口,输入以下命令:

    adb shell CLASSPATH=/sdcard/monkey.jar:/sdcard/framework.jar exec app_process /system/bin tv.panda.test.monkey.Monkey -p 你要替换的包名 --uiautomatordfs --running-minutes 60 --throttle 500

    可选模式

    --uiautomatormix 混合模式(70%控件解析随机点击,其余30%按原Monkey事件概率分布)
    --uiautomatordfs DFS深度遍历算法(优化版)(注 Android5不支持dfs)

    maxim.png

    5、终止条件

    时间执行完毕后,结束,中途崩溃会重新启动app测试(但会记录崩溃信息)

    拔掉数据线、关闭cmd窗口

    白盒

    基于完整测试用例,测试业务功能是否正常

    espresso是安卓提供的测试框架,而Barista二次优化后,简化了开发编写用例成本

    维护:开发 执行:开发/测试均可

    典型的用例流程:1、创造测试环境 2、执行操作 3、断言结果

    操作过程

    1、编写测试用例,最好和主干代码隔离,单独一个分支维护

    2、找到俩角色类,执行红框里按钮

    安卓8.0以上在安装后,需要快速手动点击app图标唤醒,系统不支持自动唤醒。

    barista.png

    3、终止条件

    遇到崩溃提前退出,输出错误堆栈;或者跑完测试时间,顺利结束

    相关文章

      网友评论

        本文标题:android自动化测试实践

        本文链接:https://www.haomeiwen.com/subject/qwccdctx.html