Sonic-UI自动化用例编写教程与建议
UI测试被业界列入测试金字塔的顶层,由此可见,UI测试具有单元测试、接口测试不能完成的部分,具有不可替代性。在多数情况下,UI测试的职能,是在单元测试、接口测试中业务逻辑测试充分时,致力于功能验证测试、用户行为测试、设备兼容性测试等;部分UI测试具有重复性高、耗时、简单等特点,把这部分工作用UI自动化代替,能让团队把更多精力放在另一些不合适用自动化测试实现的复杂交互场景中。因此,为了能达到降本提效的目的,探索UI自动化具有一定的必要性。本文主要简要介绍如何在Sonic开源云真机平台编写UI自动化用例。
目录
前言
一、UI自动化测试流程
二、Sonic编写UI自动化用例编写的主要步骤
1.前置准备
2.添加控件
3.添加控件交互操作
4.断言
三、用例编写的相关建议
总结
前言
UI测试被业界列入测试金字塔的顶层,由此可见,UI测试具有单元测试、接口测试不能完成的部分,具有不可替代性。在多数情况下,UI测试的职能,是在单元测试、接口测试中业务逻辑测试充分时,致力于功能验证测试、用户行为测试、设备兼容性测试等;部分UI测试具有重复性高、耗时、简单等特点,把这部分工作用UI自动化代替,能让团队把更多精力放在另一些不合适用自动化测试实现的复杂交互场景中。因此,为了能达到降本提效的目的,探索UI自动化具有一定的必要性。本文主要简要介绍如何在Sonic开源云真机平台编写UI自动化用例。
一、UI自动化测试流程
- 需求分析
- 用例设计(测试数据、测试步骤等)
- 编写UI自动化用例(编写执行脚本)
- 测试报告
二、Sonic编写UI自动化用例编写的主要步骤
主要包括三个步骤:添加控件(通过唯一属性值定位控件元素)、测试步骤中添加控件交互操作(选择目标控件操作)、测试步骤中添加断言(校验执行结果)
1.前置准备
选择任一设备——进入到被测试应用——切换至需被测试页面——获取该页面控件元素
2.添加控件
确定目标对象,通过查看树结构,选取目标对象与其它对象能唯一区别的对象属性,如resource id、Xpath、class_name、坐标、图像定位等,复制该属性值后添加控件元素;
3.添加控件交互操作
测试步骤中,选择目标控件相关的操作:如判断控件元素是否存在、点击、输入文本、拖拽、清除输入框等;
4.断言
测试步骤中,添加对应的断言,如验证文本、添加自定义文本等方式,用于验证执行结果
三、用例编写的相关建议
用例编写的编写策略在一定程度上会影响脚本的稳定性以及运行效率,因此,结合个人使用情况,抛砖引玉,给出以下几点建议。欢迎大家补充!
1.首次加载页面,点击控件元素前,建议添加判断控件元素是否存在的步骤,可避免页面加载时间长导致定位页面元素失败的问题(类似于隐式等待、显示等待);
2.存在调用接口的操作前端控件后,建议添加断言,以捕捉接口失败或调用出错等情况;
3.创建和清理测试数据,建议通过数据库和接口的方式操作,如果UI自动化脚本过长可能会导致稳定性降低;
4.建议每个UI用例都可以独立运行,不要有相互依赖;
5.重复使用的部分可添加为公共步骤,其它用例引入公共步骤的形式,这样控件变更时,可减少维护成本(类似于PO面向对象的模式);
6.页面挡控件元素不能被遮挡;
7.选择具体唯一性的属性进行定位;
总结
依托与Sonic开源测试平台,浅谈APP端UI自动化用例编写的实践经验与建议。
Sonic-UI自动化用例编写教程与建议相关推荐
- 移动测试架构演进 | 蚂蚁金服自动化用例管理探索
作者:周力(问瑾),蚂蚁金服技术专家.本文围绕支付宝面向移动应用日志复杂的测试工作,如何思考演进出成熟稳定的测试用例管理展开讨论和总结. 相比普通测试用例,自动化用例在形式.实现方式及内容上有一定的特 ...
- 使用python编写一个完整的接口自动化用例
使用python编写一个完整的接口自动化用例 以聚合数据的 查询天气接口为例: import requestsclass HttpRequests: def __init__(self,url, pa ...
- 自动化测试用例设计原则(接口自动化用例设计的基本原则)
自动化测试用例设计原则: 1.一个脚本是一个完整的场景,从用户登陆操作到用户退出系统关闭浏览器. 2.一个脚本脚本只验证一个功能点,不要试图用户登陆系统后把所有的功能都进行验证再退出系统 3.尽量只做 ...
- 自动化用例设计原则+web自动化框架
自动化用例设计原则 web自动化框架 PO模式就是页面对象和测试用例的分离. PageObjects放页面对象,封装元素定位和元素操作(也可以单独把元素定位放到PageLocators层) basep ...
- swagger python自动化用例_自动生成robot自动化测试用例
#!/usr/bin/env python """解析swagger接口返回值自动生成接口自动化用例 将新增的用例写入到文件末尾,已存在的用例则不重新写入"&q ...
- python实现处理swagger接口文档,转换为yaml格式的自动化用例
前言 之前有很多小伙伴反馈,希望我出一期 将swagger文档转换为 yaml格式的自动化用例,那么本期福利来咯~~这一篇文档,将会带领你们实现 如何通过 swagger文档转换为 yaml格式的用例 ...
- WEB自动化测试用例如何设计?如何提高WEB自动化用例脚本的稳定性
用例设计: 自动化用例是从功能测试用例里面提取出来的,主要提取的是冒烟用例和回归测试的用例,提取需要遵守一下的原则. 1,优先覆盖核心功能用例,核心流程用例. 2,尽量不要选复杂的用例. 3,选取一些 ...
- 2020,8种必备Selenium编写自动化用例的技巧
在开始自动化时,您可能会遇到各种可能包含在自动化代码中的方法,技术,框架和工具.有时,与提供更好的灵活性或解决问题的更好方法相比,这种多功能性导致代码更加复杂.在编写自动化代码时,重要的是我们能够清楚 ...
- python接口自动化用例管理_python接口自动化测试(六)-unittest-单个用例管理
前面五节主要介绍了环境搭建和requests库的使用,可以使用这些进行接口请求的发送.但是如何管理接口案例?返回结果如何自动校验?这些内容光靠上面五节是不行的,因此从本节开始我们引入python单元测 ...
- mitmproxy抓包 | Python实时生成接口自动化用例(三)
抓包工具mitmproxy环境配置使用(一) 抓包工具mitmproxy | mitmweb基本用法(二) 前面已经给大家分享了mitmproxy的环境配置和基本使用,文章浏览量很高,相信对抓包工具感 ...
最新文章
- python找出值为nan_Python Numpy:找到list中的np.nan值方法
- [CTO札记]从生活来看‘服务心态’
- 【阿里云课程】神经网络:从生物学机制到全连接神经网络的局限性
- int指令---汇编学习笔记
- AI:IPPR的数学表示-CNN基本结构分析( Conv层、Pooling层、FCN层/softmax层)
- 一条SQL语句的执行过程
- vue使用canvas开发漂亮的多功能手写板组件
- NumberUtils的 isParsable(String)和isCreatable(String)方法
- 【DL】一文读懂深度学习中的N种卷积
- uuid java 36位_java 生成UUID 36位码 36位码
- 奇安信与360的恩怨情仇:A股决战企业安全
- 简述电子计算机发展五个阶段,简述erp发展的5个阶段
- matlab下载(Mac+Linux+Windows)
- android 开启wifi代码,Android编程打开WiFi
- 什么是 docker?docker和虚拟机有什么差别和不同?
- Android 音视频开发之基础篇 使用 imageview绘制一张图片
- S3C2440系统中断(转)
- word插入题注以及将编号由一.1改为1.1
- UniAPP-Android原生插件开发与打包
- pku 2251 Dungeon Master 基本BFS