• 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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • selenium 中隐藏元素如何定位?       面试题:selenium 中隐藏元素如何定位?这个是很多面试官喜欢问的一个题, 如果单纯的定位的话,隐藏元素和普通不隐藏元素定位没啥区别,用正常定位方 法就行了       但是很多面试官自己都搞不清楚啥叫定位,啥叫操作元素(如 click,clear,send_keys)隐藏元素       面试 web 自动化必然会问到 selenium,问 selenium 相关的问题定位是最基本的, 也是自动化的根本,所以面试离不开...
            12 13 1181
            分享
          •   如今,对于智能汽车的用户们来说,通过后期的系统软件更新,汽车厂商们往往能够逐步完善和提升车主们的使用体验,为他们带来更多的全新功能。人体近日,智车派注意到,有消息指出,特斯拉已经向其内部员工推出了新的软件系统更新,本次更新中包括大量的全新功能和特斯拉汽车系统的UI升级。  根据介绍,本次系统更新之后,特斯拉汽车将可以为用户提供两种不同的字体大小,帮助使用者更好地阅读屏幕内容;在设置和控制菜单中添加了搜索功能,可以帮助车主们更快地查找到自己需要的信息;在其导航系统中改进了“兴趣点”,能够直接展示对应地区的图片和其它信息。此外,此次更新之后,特斯拉车主们还可以调整亮度和加速模式等设置,或执行切...
            0 0 421
            分享
          • 在罗永浩之后,粉丝量匹敌李佳琦的刘畊宏也从抖音跳到了淘宝。10月31日,刘畊宏妻子王婉霏ViVi在淘宝首播,还上线了自有品牌VIVICYCLE,主打健身服饰品类。然而,热闹的直播只是少数人的盛宴。多位从业者坦言,今年“双11”部分中小主播薪资被腰斩,部分单品投流费用甚至超过九成,没“底子”也难做供应链,更有人感慨“现在的电商不太适合机构创业者和个体主播了”。随着行业“二八定律”加速固化,后来者居上的几率越来越渺茫。头部主播迁移中小主播薪资2万变1万10月31日晚间7点,刘畊宏妻子王婉霏ViVi现身“ViVi肥油咔咔掉”淘宝直播间向粉丝介绍团队和商品。北京商报记者看到,直播间上架的商品链接共34...
            0 0 371
            分享
          • 质量大于数量的测试: “这里有 10,000 个错误……祝你好运!” 测试人员,请永远不要为数量而拍摄。识别最重要的错误和故障,并帮助公司或开发人员理解错误,比仅测试数量要有用十倍。学会优先考虑:根据“质量高于数量”,优先考虑你测试的东西是非常重要的。在应用程序的微小细节之前测试应用程序的关键任务部分将帮助您首先识别最有价值的错误。这也将允许开发团队尽快修复其应用程序中最重要的部分。练习和提高你的书面沟通技巧:每个人都可以对,写作?(哈!)。好的测试人员必须具备出色的书面沟通技巧,才能编写好的测试用例、错误报告等。这些测试工件是 QA 的重要组成部分,必须详细且易于使用。从...
            0 0 1052
            分享
          • 1、Android APP 内存不足时, 系统如何结束进程获得内存?答:系统优先结束被挂起(暂停)的进程,释放内存2、APP 测试常见的严重问题有哪些? 分别引起的原因有哪些?答:常见的有 crash、ANR(应用无响应、卡死),一般由设备碎片化、网络波动大、内存泄漏、代码编写错误3、请简单介绍你曾使用过的一款 APP 自动化测试工具 ?答:开放性问题,带点主观意见对比其他熟悉的自动化工具的优缺点自动化的简要方案(简要的同时关键内容请具体)。(提示: appnium 等)4、Android 测试与 web 测试有什么区别?答:相同点:设计测试用例均依据等价类、边界值等方法,测试原理相同;大多数...
            15 16 2716
            分享
      • 51testing软件测试圈微信