目录
前言:
随着移动应用的普及,APP 自动化测试成为了一个越来越受关注的领域。在这个领域中,框架的选择对于测试效果和效率有着至关重要的影响。
APP 自动化框架设计分享
在分享前 首先先祝大家新年快乐,再祝 testerhome 继续这样越来越好~~
前言:
最近几个月都很忙,这一陈会延续到明年4月~~元旦都在加班~所以我很”焦灼“!
下面是分享的这个是我个人的想法,可能大家觉得不合理的地方都可以提出来,我会虚心接纳大家的建议~!大家互勉~谢谢!
框架需要解决的问题:
• 渠道包->多渠道包核心用例自动化
• 多设备覆盖安装,安装卸载更新等测试
• 多设备核心用例适配测试
• 验证主要页面(包括 webview)检查是否加载成功
• 离线主流程覆盖
• 一些重复性操作可以通过框架简单实现
框架目标定位:
• 让 Tester 无需编写代码 通过简单数据驱动方式实现通用简单的自动化
• 跟开发约定一些 UI 上的元素标准和规范建立自动化规范流程化
• 结合实时抓包组件和性能监控插件方便分节点定位问题
• 自动异常捕获,CrashLog 收集汇总等等
• 每一步都有 Log、截图(甚至做到录制)方便复现问题
• 实行单台服务器多设备并行 根据配置不同机型执行不同 case 并统一会汇总报告
关于自动化的一些疑问:
--->自动化的时候用例错误了怎么办?下面的会继续跑么?
当发生错误时会优先检查检查设备状态,网络状态当用例发生错误时(如果是webview会等待20秒刷新页面)回到上一步等待30s切换回来重复执行,如果还是发生错误会在报告说明,继续执行下一条用例
--->我们怎么去用这个东西呢?数据我们怎么去准备?数据准备麻烦么?
当测试人员有自动化测试需求时只需要配置好数据模板在网页选择执行的机器点击开始运行即可
数据准备:数据准备为每一个自动化测试工程师的难题,因为每一步动作都需要用uiautomatorviewer 或者hierarchyviewer 去一个一个找元素
针对这个我们解决方法是:跟开发约定界面控件命名规范,元素控件值按我们约定的格式命名 只需打开app找到需要点击控件名称的首字母填入文档中即可(当然这种办法只会解决部分问题)
自动化跑完之后如果发生异常了怎么办?自动化跑完之后发生异常我们如何分析?
根据目前设计的框架,三种定位问题的方法:
>1,第一是跑自动化时会实时抓取Devices设备所有logcat日志并解析异常Log(包括crash日志)
>2,第二是跑自动化时会实时截取实时app发送的所有API的内容以及状态方便定位区分前后端问题
>3,第三是跑自动化时会实时截图甚至可以录制视频,还有测试人员自定义的一些检查点作为主要的定位路径
关于 UI 控件命名规范::
跟开发约定界面控件命名规范,元素控件值按我们约定的格式命名 这样可以提高自动化效率,以及减轻版本迭代自动化工作量!
以下示例:
以页面为整体 控件为类型 各类型的控件拼音首字母为控件标识 统一格式为:应用缩写页面名称控件类型_控件首字母
button格式:
比如主页的搜索按钮 控件的格式为:TT_H