Appium+Python+PO 设计模式 入门笔记

**原文链接:http://www.cnblogs.com/LOVEYU/articles/8266915.html
整理一下python selenium自动化测试实践中使用较多的po设计模式。

为什么要用PO?

po能让我们的测试代码变得可读性更好,可维护性高,复用性高。

基于python selenium2开始开始ui自动化测试脚本的编写不是多么艰巨的任务。只需要定位到元素,执行对应元素的操作即可。**
Appium+Python+PO 设计模式 入门笔记_第1张图片

什么是PageObject?

1、页面对象模型(PO)是一种设计模式,用来管理维护一组web元素的对象库
2、在PO下,应用程序的每一个页面都有一个对应的page class
3、每一个page class维护着该web页的元素集和操作这些元素的方法
4、page class中的方法命名最好根据对应的业务场景进行,例如通常登录后我们需要等待几秒钟,

PO的优势:

1、PO提供了一种业务流程与页面元素操作分离的模式,这使得测试代码变得更加清晰。
2、页面对象与用例分离,使得我们更好的复用对象。
3、可复用的页面方法代码会变得更加优化
4、更加有效的命名方式使得我们更加清晰的知道方法所操作的UI元素。例如我们要回到首页,
方法命名为:gotoHomePage(),通过方法名即可清晰的知道具体的功能实现。

Appium+Python+PO 设计模式 入门笔记_第2张图片
Base内重新封装的是基础的webdriver方法和一些你自己测试用例有需要的公用方法,PO内的其他Page都是继承自Base
appium与selenium的唯一不同就是对driver的设置上

Appium+Python+PO 设计模式 入门笔记_第3张图片
在这里driver的调用,我感觉自己还没写好,我的需求是只在Base内定义好driver,指定好端口,所有测试用例共用一个driver,直接在测试用例内调用,我调试过了,自己python水平也是一般,没改出来,后期我再改善一下这个。
Appium+Python+PO 设计模式 入门笔记_第4张图片
**直接在Page内封装整个业务流程的方法,测试用例中代码量会少很多。(当然写在测试用例中也是可以的)
简单说明下:

  • 场景:登录业务
  • Page内:a.输入用户名 b.输入密码 c.点击登录按钮;A.登录方法(包含abc)
  • 测试用例内: 1.直接调用Page的A;2.顺序调用Page的abc
    这两种方式各有各的利弊,各取所需吧**
    Appium+Python+PO 设计模式 入门笔记_第5张图片
    测试用例我用的是unittest
    我这个demo没有写断言,没有打log,测试数据也没有放到外部文件。这些都是后期要改善的。

关于报告的输出

Appium+Python+PO 设计模式 入门笔记_第6张图片

总结:

demo(https://github.com/JennyHui/appium)
整体看来框架的搭建是很简单的,但也算是五脏俱全吧(好吧,还差几个,我知道啦)。个人觉得对于框架怎么搭,用哪种设计模式,用哪种工具,选择性还是很多的。跟web类似的啊,关键字,PO,RF…各取所需吧各位,而且,不同的设计模式下,代码结构如何,也是看各人选择的。

下一阶段学习,就像我写的完善driver调用,打log,加断言,测试数据移至excel,有些人页面元素也想放到config内,这一点大家可以根据项目来权衡。

你可能感兴趣的:(总结)