目录
前言:
什么是 PageObject?
关于报告的输出
总结
前言:
Appium是一个用于自动化移动应用程序测试的开源工具,Python是一种简单易学且功能强大的编程语言,PO(Page Object)设计模式是一种在自动化测试中常用的设计模式。
什么是 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 生成测试报告,并且加入了截图功能。
总结
整体看来框架的搭建是很简单的,但也算是五脏俱全吧(好吧,还差几个,我知道啦)。个人觉得对于框架怎么搭,用哪种设计模式,用哪种工具,选择性还是很多的。跟 web 类似的啊,关键字,PO,RF......各取所需吧各位,而且,不同的设计模式下,代码结构如何,也是看各人选择的。
作为一位过来人也是希望大家少走一些弯路
在这里我给大家分享一些自动化测试前进之路的必须品,希望能对你带来帮助。
(软件测试相关资料,自动化测试相关资料,技术问题答疑等等)
相信能使你更好的进步!
点击下方小卡片