主要分为六部分
框架基础
基于appium进行改造,主要是拦截appium每次运行要安装的辅助apk
算法基础
遍历程序是基于深度优先遍历算法上进行改进的, 以应用的首页为根节点,检索页面上所有可操作的元素,对这些元素进行操作(如点击)后,产生的新的页面, 记录这些页面,然后以根节点产生而来的第一个页面为起始页面,重复上述的操作.遇到获取的页面上没有 可操作的元素或者遇到之前访问过的页面,则返回上一级页面,对他的邻近节点继续操作;
页面定义
页面可操作元素是根据 xpath来定位的. 页面的定义是根据页面中所有可操作元素的路径组成形成一个id来标识页面. 因此,如果页面中所有的可操作元素都一样,就认为是同一个页面,不一样则表示不同的页面. 程序会记录页面中已经操作过的元素,因此如果出现,如一个页面点击一个按钮,这个按钮产生变化,虽然会产生 一个新的页面,但是不会产生更多的操作元素,也不会去重复操作已操作过的元素.
路径记录与重定向 每一步操作都会记录,从首页到当前页面的操作路径,防止页面变动,或者返回异常时,无法找到记录在内存中的 待操作的元素.这种情况,会根据记录的路径,重启重新找寻元素. 对路径重寻,做优化定位. 如 进入c页面,开始时需要经过 a->b->c,b可能是条件出现的页面,或者只会出现一次的页面. 当路径重寻时,a到不了b,重试a直接到c,如果到达成功,则会将路径优化为 a->c. 弹窗 分为安装弹窗和应用弹窗 安装弹窗,会根据不同的设备,采用不同的xpath定位,自动点掉安装提示框,达到自动安装的功能. 应用弹窗,需要用户自己需要处理的弹窗路径(xpath),在每次操作前,会尝试判断是否存在弹窗影响, 存在的话,会将弹窗点掉. 配置用例 封装appium操作的api,提供json格式的写入方式,用这种方式支持嵌入手动配置的脚本运行.
以上就是关于4399AT UI自动化测试工具的设计原理大概介绍~