| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发测试 -> 软件测试之从0到1完成UI自动化测试框架搭建系列(3) -> 正文阅读 |
|
[开发测试]软件测试之从0到1完成UI自动化测试框架搭建系列(3) |
上节,我们讲了下,如何运用uiautomator2+atx+pytest进行自动化的单元测试。 这节,我们再思考下,如果我们每条用例,都去一步一步,先元素定位,然后写操作,然后写各种方法。那这个代码量是不是就有点偏多了。另外也不方便维护,比如哪天APP的某个元素定位迭代修改了,还得一个一个去改对应用例的逻辑。 所以,我们这边引入了PO设计模式。 将uiautomator2方法,元素定位,页面操作,测试用例全部分离。 这样可以大大减少我们代码量,更为方便的维护我们的测试用例。 PO模式页面对象模型(PO)是一种设计模式,用来管理维护一组页面元素的对象库 在PO下,应用程序的每一个页面都有一个对应的Page类 每一个Page类维护着该页面的元素集和操作这些元素的方法 以上对po模式不太理解的同学,可以忽略以上解释。反正也看不懂,我们直接上代码。 一、base类?? 我们在base类里面,将一些通用的方法,进行封装。如图举例,就是一个对元素点击事件和输入内容操作的封装,将resourceId,xpath,text等三种元素定位的点击和输入内容方式,封装到click和send_keys。以及一个断言元素是否存在的方法。 二、page类如图,我们先引入Base类,然后声明一个页面类(Home)去继承Base类。 然后在Home类中,用Base类中封装的方法,进行页面操作,从而达到封装页面操作的目的。 图中还有页面的部分元素定位,也都按页面进行分离。 三、测试用例的编写? ?创建歌单名111的歌单,断言页面添加歌曲的元素存在 这样一看,是否写起用例来,就非常迅速而且直观可读了呢? 四、脚本配置设置上面介绍完了元素定位,通用方法的封装,页面操作的封装,测试用例的编写 我们不要忘了一些配置参数的设置,比如:连接手机的设备号,启动应用的包名,登录的账号密码等等。 ?不要问我为什么总是云音乐。。因为我对云音乐爱的深沉(此条五毛) ?五、设备连接六、设备初始化,启动程序? ? ?这里的pytest.mark.usefixtures类似于setup、teardown的作用。 有关pytest的装饰器的知识,本文不做展开,可以自己下去了解学习。 七、运行最后我们运行下,看下测试结果 执行用例成功~ 好了,这节uiautomator2+atx+po的课程就到这里了,下次我们再讲下怎么加allure测试报告? |
|
开发测试 最新文章 |
pytest系列——allure之生成测试报告(Wind |
某大厂软件测试岗一面笔试题+二面问答题面试 |
iperf 学习笔记 |
关于Python中使用selenium八大定位方法 |
【软件测试】为什么提升不了?8年测试总结再 |
软件测试复习 |
PHP笔记-Smarty模板引擎的使用 |
C++Test使用入门 |
【Java】单元测试 |
Net core 3.x 获取客户端地址 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/18 1:31:43- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |