您的位置:首页 > 移动开发

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

2015-04-08 09:30 405 查看

什么是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内,这一点大家可以根据项目来权衡。

如果我可以,你也可以,因为我是菜鸟。请在一个礼拜之内搞定你的代码结构哦
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: