zoukankan      html  css  js  c++  java
  • 稳定性1: 智能遍历基于uiautomator

    1.概述

    从新功能的稳定性出发,用monkey过于随机无法覆盖新功能的稳定性和找出新功能中可能出现crash的地方。基于uiautomator安卓自动化框架,实现对新功能的循环遍历,增加遍历的可控性,以发现更多新功能稳定性的问题。

    2.总体功能介绍

    1. 默认遍历逻辑: 基于深度,后进先出。同时可实现在不同节点场景的回调方法,达到控制遍历的效果
    2. 支持新功能遍历,回调实现onback方法,设定遍历层级。不设定以默认模式开启

    以onback为导向/导流,在遍历完指定次数后,回到新功能入口,可设置把新功能的入口元素为白名单,以不断循环覆盖提高新功能整体的操作覆盖率

    1. 遍历开始后开启一条线程实时监控logcat,当报错时记录 时间,errorlog,操作日志,截图,性能抓取
    2. 支持多种回调场景的自定义(实现Custom_Setting):
    • onBack  遍历完设定的层级后回退
    • onActionSUCCESSFUL  当进入页面后点击成功后的自定义操作
    • onNotElementHandle  当进入页面后无法找到任何控件后的操作
    • onException 任意动作抛出异常后处理动作

    E.  支持基于 Element点击和Random点击 模式

    抓取元素逻辑

    clickedList  已点击的元素list

    whiteList   优先级高,在白名单内比clikedlist高

    抓取:默认抓取id,text,context_desc(webview)各前5个元素,抓取过程中过滤掉clickedList  和保护whilelist,直到各类型都满足最大为5个有效操作控件

    判断成功操作逻辑

    方案1: 点击前后页面的控件总数或者前5个控件信息的MD5

    方案2: 点击前后图片对比(目前选择)

    超过0.2的差异度算跳转成功,超过0.4算页面切换成功

    action随机性

    基于坐标点击

    在出现键盘的时候可以设别输入随机数后按前进

    随机概率长按

    随机概率双击

    点击/后退逻辑

    获取前准备:确保处于被测应用activity下,屏幕没被锁

    获取元素

    每次抓取15个有限点击元素,15个中随机抽取一个做操作,操作不成功后remove掉并加入clikedlist,再从剩余14个中抽取操作,连续点击5次无效后,认定页面大多数元素无点击效果,进入下面的上滑和回退处理逻辑

    若出现当前页面所有点都已经点击过且再无出现新的跳转页面时,工具会判断当前工程是否还有未完成点击的页面,且判断当前页面能否跳转过去。判断的准则是从当前页面按广度搜索下一级跳转的页面,如果有未完成的页面则跳转,若一级页面无跳转,则遍历二级的子页面,以此类推,直到找到一条可回退的路径。

    遍历效果:

    1. 报错信息+截图+详细log  实时发送

    2.报错堆栈+操作信息+进程是否存在信息

    详细的操作信息:

    遍历逻辑: 基于深度,后进先出。同时可实现在不同节点场景的回调方法,达到控制遍历的效果。

    onback:设置遍历的层数,遍历完这些层级会调用onback

    onsuccess/failed:点击成功失败

    onnoelement:当没有元素可点击

    获取元素

    clickedList  已点击的元素list

    whiteList   优先级高,在白名单内比clikedlist高

    抓取:默认抓取id,text,context_desc(webview)各前5个元素,在抓取过程中就会处理这些list里面的元素

    判断跳转

    点击前后图片对比(目前选择)  /  超过0.2的差异度算跳转成功,超过0.4算页面切换成功

    结果报告

    开启一个额外的线程在监控log,在遇到某些报错关键字(Falt,beging on crash,ANR in)的时候,会启动抓取下面信息:

    详细缓存log日志,如果ANR讲抓取trace

    操作日志,每次点击的坐标,进入的网站/activity

    截图

    发送邮件,上传平台

  • 相关阅读:
    CSS Frameworks Collection(css框架收集)
    CSS:IE与Firefox的CSS兼容大全
    一般的 DIV + CSS 三栏式排版
    C#获取与修改HTML DOM元素信息
    101 LINQ Samples
    IE,Firefox,Chrome都可用的阴影效果
    QT中字符串编码的选用
    QT中字符串及其编码
    QT多项目编译顺序
    QT字符串编码知识汇编
  • 原文地址:https://www.cnblogs.com/season-xie/p/6337919.html
Copyright © 2011-2022 走看看