PO设计模式

Appium+python测试app实例
Appium-PO设计模式
Selenium的PO模式(Page Object Model)|
Appium+Java+PO+testng 设计模式Appium+Python+PO 设计模式 入门笔记

python sys.path.append()和sys.path.insert()

什么是PageObject?
属于selenium的一种设计模式,套用在appium身上了(实践表明,合适,因为selenium和appium"本是同根生")
个人对于PO的理解就是,页面元素 - 页面业务操作步骤的方法 - 测试用例 (我知道抽象,大家自行谷哥了解下)

下图是我的代码结构:
Data:测试数据。后期准备把代码中会所有测试数据都整合到excel或者xml内,Data文件夹就是这个用处
PO:所有Page。以Base页面为基础(看下图分析,来理解PO)
Public:一些公共的方法,比如测试报告脚本,封装好的
Result:测试结果,包括测试报告和截图
TestCase:测试用例都放这儿
run_case:测试套件,利用HTMLTestRunner.py,输出测试报告到/Result下
在这里插入图片描述
Base内重新封装的是基础的webdriver方法和一些你自己测试用例有需要的公用方法,PO内的其他Page都是继承自Base
appium与selenium的唯一不同就是对driver的设置上
在这里插入图片描述
在这里driver的调用,我感觉自己还没写好,我的需求是只在Base内定义好driver,指定好端口,所有测试用例共用一个driver,直接在测试用例内调用,我调试过了,自己python水平也是一般,没改出来,后期我再改善一下这个。
在这里插入图片描述
直接在Page内封装整个业务流程的方法,测试用例中代码量会少很多。(当然写在测试用例中也是可以的)
简单说明下:

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

关于报告的输出
在这里插入图片描述
通过测试套件去驱动HTMLTestRunner生成测试报告,并且加入了截图功能(这些都是参考selenium大神Ray的,请参照他的coding:https://coding.net/u/tsbc/p/PySelenium_PO/git)
在这里插入图片描述
总结
demo(https://github.com/JennyHui/appium)
整体看来框架的搭建是很简单的,但也算是五脏俱全吧(好吧,还差几个,我知道啦)。个人觉得对于框架怎么搭,用哪种设计模式,用哪种工具,选择性还是很多的。跟web类似的啊,关键字,PO,RF…各取所需吧各位,而且,不同的设计模式下,代码结构如何,也是看各人选择的。

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

问题:
1、关于self.driver未定义,实例如下:

def __init__(self, driver(或appium_driver)):
	self.driver = driver(appium_driver)

不应用于基础页面(base.py)初始化,该仅是用于web自动化调用浏览器driver,所以删去即可

2、关于测试页面test.py的类引用,现将类实例化(po = login),避免引用时出现没有创建函数现象。

猜你喜欢

转载自blog.csdn.net/qq_22820783/article/details/85090449
今日推荐