zoukankan      html  css  js  c++  java
  • AppCrawler——安卓端的自动化遍历测试

     AppCrawler, 一个基于自动遍历的app爬虫工具. 支持android和iOS, 支持真机和模拟器. 最大的特点是灵活性. 可通过配置来设定遍历的规则.

    为什么要进行自动化遍历测试?

    自动遍历的价值

    自动化探索测试, 遍历基本的界面, 了解主要界面的可用性. 比如兼容性, 基本功能

    利用遍历获取app的加载时间和性能数据, 需要借助其他的性能数据抓取工具,比如OneApm, NewRelic

    利用遍历验证app的内存泄漏以及稳定性等功能, 需要借助LeakCanary和MLeaksFinder

    自动化回归测试.

    UI diff 验证新老版本的功能差异. 并识别细节的问题

    抓取接口请求 辅助验证一些模块基本接口, 并辅助分析接口调用流程.

    用了appcrawler有什么优点,可以得到什么样的收益?

    • 各大云市场上自动遍历功能都多有限制企业无法自由定制.
    • 可通过配置来设定遍历的规则,解决monkey等工具可控性差的缺点
    • 发现深层次的UI兼容性问题
    • 通过新老版本的diff可以发现每个版本的UI变动范围

    这个工具可以在时间不允许的情况下测试,遍历软件的所有的控件(把每个按钮都点到),最起码能保证,不会出现crash等现象,能减少一些不必要的工作量;然后测试人员可以把主要的精力放在测试主要的功能点上;

    appcrawler的缺点?

    该工具无法处理弹框,广告之类的h5东西,因为对应的toch事件不能触发恰好触发到对应的点;

    启动参数介绍

    java -jar appcrawler.jar

    app爬虫, 用于自动遍历测试. 支持Android和iOS, 支持真机和模拟器

    Usage: java -jar appcrawler.jar [options]

    -a, --app <value> Android或者iOS的文件地址, 可以是网络地址, 赋值给appium的app选项

    -c, --conf <value> 配置文件地址

    -p, --platform <value> 平台类型android或者ios, 默认会根据app后缀名自动判断

    -t, --maxTime <value> 最大运行时间. 单位为秒. 超过此值会退出. 默认最长运行3个小时

    -u, --appium <value> appium的url地址

    -o, --output <value> 遍历结果的保存目录. 里面会存放遍历生成的截图, 思维导图和日志

    --capability k1=v1,k2=v2...

    appium capability选项, 这个参数会覆盖-c指定的配置模板参数, 用于在模板配置之上的参数微调

    -r, --report <value> 输出html和xml报告

    -vv, --verbose 是否展示更多debug信息

    --help

    示例

    java -jar appcrawler.jar -a xueqiu.apk

    java -jar appcrawler.jar -a xueqiu.apk --capability noReset=true

    java -jar appcrawler.jar -c conf/xueqiu.yaml -p android -o result/

    java -jar appcrawler.jar -c xueqiu.yaml --capability udid=[你的udid] -a Snowball.app

    java -jar appcrawler.jar -c xueqiu.yaml -a Snowball.app -u 4730

    java -jar appcrawler.jar -c xueqiu.yaml -a Snowball.app -u http://127.0.0.1:4730/wd/hub

    java -jar appcrawler.jar --report result/

    安装依赖

    mac下安装appium

    #安装node和依赖

    brew install node

    brew install ideviceinstaller

    brew install libimobiledevice

    #安装appium

    npm install -g appium

    #检查appium环境正确性

    appium-doctor

    真机或者模拟器均可. 确保adb devices可以看到就行

     

    启动appium

    使用此工具需要一定的appium基础知识, 请自行google.

    目前已经在appium 1.5.3下做过测试

    启动appium

    appium --session-override

    运行

    工具以jar包方式发布,需要java8以上的运行环境

    java -jar appcrawler.jar

     

    快速遍历

    #查看帮助文档

    java -jar appcrawler.jar

    #运行测试

    java -jar appcrawler.jar -a xueqiu.apk

     

    配置文件运行方式

    #配置文件的方式运行

    #Android测试

    java -jar appcrawler.jar -c conf/xueqiu.yaml -a xueqiu.apk

    #iOS测试

    java -jar appcrawler.jar -c conf/xueqiu.yaml -a xueqiu.app

     

    输出结果

    默认在当前目录下会生成一个包含输出结果的目录, 以时间命名. 包含了如下的测试结果

    • 所有遍历过的控件组成的思维导图
    • 包含了遍历覆盖的html报告
    • 用于做diff分析的数据文件
     

    示例

  • 相关阅读:
    nginx优化之配置文件优化一常用参数
    Centos7+LVS-DR+Apache负载均衡web实验
    LVS负载均衡原理
    Centos7+LVS-NAT+apache实验
    CentOS7.6 使用ceph-deploy部署mimic 13.2.8集群(一)
    linux关闭ACPI电源管理模块
    Jenkins + pipeline + Git + PHP (九)
    Jenkins-Master-slave架构(八)
    Jenkins参数化构建(七)
    Jenkins连接Git仓库时候报错Permission denied, please try again.
  • 原文地址:https://www.cnblogs.com/hlsam/p/13162334.html
Copyright © 2011-2022 走看看