• 0
  • 0
分享

  这节,我们再思考下,如果我们每条用例,都去一步一步,先元素定位,然后写操作,然后写各种方法。那这个代码量是不是就有点偏多了。另外也不方便维护,比如哪天APP的某个元素定位迭代修改了,还得一个一个去改对应用例的逻辑。

  所以,我们这边引入了PO设计模式。

  将uiautomator2方法,元素定位,页面操作,测试用例全部分离。

  这样可以大大减少我们代码量,更为方便的维护我们的测试用例。

  PO模式

  页面对象模型(PO)是一种设计模式,用来管理维护一组页面元素的对象库。在PO下,应用程序的每一个页面都有一个对应的Page类。每一个Page类维护着该页面的元素集和操作这些元素的方法。以上对po模式不太理解的同学,可以忽略以上解释。反正也看不懂,我们直接上代码。

  一、base类

1-1.png

  我们在base类里面,将一些通用的方法,进行封装。如图举例,就是一个对元素点击事件和输入内容操作的封装,将resourceId,xpath,text等三种元素定位的点击和输入内容方式,封装到click和send_keys。以及一个断言元素是否存在的方法。

  二、page类

1-2.png

  如图,我们先引入Base类,然后声明一个页面类(Home)去继承Base类。

  然后在Home类中,用Base类中封装的方法,进行页面操作,从而达到封装页面操作的目的。

  图中还有页面的部分元素定位,也都按页面进行分离。

  三、测试用例的编写

1-3.png

  创建歌单名111的歌单,断言页面添加歌曲的元素存在:

1-4.png

  这样一看,是否写起用例来,就非常迅速而且直观可读了呢?

  四、脚本配置设置

  上面介绍完了元素定位,通用方法的封装,页面操作的封装,测试用例的编写。

  我们不要忘了一些配置参数的设置,比如:连接手机的设备号,启动应用的包名,登录的账号密码等等。

1-5.png

  不要问我为什么总是云音乐。。因为我对云音乐爱的深沉(此条五毛)

  五、设备连接

1-6.png

  六、设备初始化,启动程序

1-7.png

1-8.png

  这里的pytest.mark.usefixtures类似于setup、teardown的作用。

  有关pytest的装饰器的知识,本文不做展开,可以自己下去了解学习。

  七、运行

  最后我们运行下,看下测试结果:

1-9.png

  执行用例成功~

1-10.png


作者:影子大人の博客    

来源:http://www.51testing.com/html/46/n-7792746.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   随着科技的发展和进步,自动化测试的应用越来越广泛深入,作为一种软件质量管控的重要手段,自动化测试通过将人为驱动的测试行为转为机器执行的一种过程。在替代大量重复性工作和提高回归测试效率方面发挥了很大的优势。  目前,自动化测试还不能完全的取代人工测试,自动化测试是否能够有效开展依赖于系统的稳定性。对于投产周期短,需求变更频繁,版本更新频率较高,甚至存在系统架构重构的可能性的系统,使用自动化测试工具录制的案例,在系统迭代更新后,需要频繁的修改调试自动化脚本,成本较高,因此此类系统不适用于自动化测试;对于部分优化升级系统,系统架构都趋于稳定,程序版本稳定,特别是投产周期长,需要频繁重复执行测试案...
            15 14 776
            分享
          •        在当今移动互联网盛行的时代,网络的形态除了有线连接,还有2G/3G/4G/5G/WiFi等多种手机网络连接方式。不同的协议、不同的制式、不同的速率,使移动应用运行的场景更加丰富。目前移动端产品的使用用户所处的网络并非完全流畅的网络环境,因移动端产品使用场景多变,如进地铁、上公交、进电梯等,使得弱网测试显得尤为重要。毕竟考虑到各种场景的客户端展示及容错,能极大提升产品印象和用户体验。本文就和大家分享一下如何上手弱网测试,弱网测试工具的使用。1. 什么是弱网测试?       弱网测试作为健壮性测试的重要...
            12 12 3042
            分享
          • 今天的组织应该彻底了解实施有效的测试自动化策略和持续测试策略之间的关键区别。采用持续测试方法当然是一种更好的方法,并且比传统的软件测试自动化更具优势。尽管有时这两个术语是同义词,但每个术语的功能和含义存在显着差异。让我们先了解一下构建理想的连续测试方法的各种概念:持续测试不再是软件世界中的新概念。它已成为软件开发生命周期 (SDLC)不可或缺的一部分。持续的测试使组织能够在产品开发的每个阶段保持软件质量。早期测试和频繁测试有助于提高软件产品的整体竞争力。借助与移动DevOps战略保持一致的强大的持续测试方法,已经不再停留在理论阶段,这已成为现实。持续测试和DevOps在DevOps中, 持续一...
            0 0 1219
            分享
          •   相信很多测试人员在进入职场时都面临过一个问题:大厂VS创业公司,到底该如何进行选择呢?  别着急,让我们先看看两者测试相关的区别。  大厂和创业公司,不管从测试流程、测试角色划分、测试用例设计还是使用的测试工具上,都是有比较明显的区别的。笔者在大厂和创业公司分别呆过三年,今天简单来总结下大厂和创业公司测试流程的区别。  大厂的测试流程  大厂的测试流程,每一步都有会议记录,需求变更严格走变更流程,会输出规格书、prd和原型图以及设计图。  创业公司的测试流程  创业公司的测试流程,一个会议会同时确认好几个事情,需求变更看大小,不麻烦就直接做上去了,基本只有原型图和设计图。  看完梳理的流程...
            0 0 842
            分享
          •   作为软件测试的垂直领域深耕者,不仅要精于软件测试技术,更要关注行业软件测试需求,最直观的需求莫过于企业招聘需求,最近有不少求职的朋友跟我诉苦,企业对接口测试的要求越来越多了,都跪在了接口测试上,这让我一阵惊喜(有点不地道),惊喜的是自己对接口测试还是有点研究,今天就以本文来谈一下面试中哪些常见的接口测试问题。  在面试中涉及接口测试的问题,无非下面几种:  · 简历中怎样体现接口测试能力  · 接口测试的流程  · 接口测试的工具及使用  · 项目中怎么做接口测试的  · 接口测试怎么进行持续集成的  下面我们就一个个来看如何轻松应对这些问题:  一、简历中如何优雅地体现接口测试能力  简...
            0 0 759
            分享
      • 51testing软件测试圈微信