大师网-带你快速走向大师之路 解决你在学习过程中的疑惑,带你快速进入大师之门。节省时间,提升效率

Python+appium+pageobject:UI自动化框架设计

憋了很久,终于要开始写了...

高手勿喷,纯小白感悟分享

感谢:各位大佬在技术上的支持

一. 先上图,全局把控

自己理解的框架有了框架,各个模块人员可以并行完成用例编写,互不干预,类似轮子,轮子在哪辆车上都能用,在这儿在那儿都能用,复用性强,只要有Python测试基础,随拿随用,随用随改

1)设计思路:

2个月,从最初的要啥控件元素写啥控件元素,只知道把流程走通,到后来想到控件复用,再到最后想到页面分层,不同层的控件分模块写,采用继承的方式,这样提高了控件的复用性,不需要你用哪个页面,再去开着UIAutomator去找,前期工作中我把所有页面的元素全部找出来,然后封装各页面控件元素。

1)PageObject模式:页面分层,提高复用性。

2)日志+用例+公用方法(截图、滑动、时间戳等自己写的小工具也在内)+页面元素定位+配置文件信息+测试报告+运行模块+测试数据源——分模块管理,互不影响,随时组装,即拿即用。

2)设计理由:

采用上述说的pageobject设计模式的好处很明显,控件复用性大大提高了,并且就算前端开发或者UI改了某个元素,会直接报错,并且只需要改一处位置,在写用例的时候,只需要调用我封装好的个页面元素封装好的方法,就跟看图说话一样,这样作为脚本开发人员,最大限度的把精力集中在测试用例的编写,测试场景的设计上,不用每次停下来找控件元素,你说好不好?

3)可行性分析:

自我探索发现+效仿前人+查阅大量资料+appium&Python基础知识丰富,并且尝试最简模式下跑通用例,认为是可行的,对于我来完成它没有太大难度了,优化的部分放在二期工程或者三期工程吧。搭框架不易,理解更不易,且搭且珍惜吧!

二. 各模块梳理介绍

1. 配置文件信息

用途:存储截图路径、日志路径、日志名、连接信息

代码截图:

① 连接信息

② 日志名、截图路径、日志路径

③ 加入了读取配置文件信息的方法,利用系统自带的configparser模块进行改写



读取方式为:传入config(配置文件)中的path_Section【标签名】和path_No【字段名】,用于获取对应字段名对应的字段值。

值得注意的是:这里把配置文件的路径做成了获取系统路径+当前路径拼接的方式(好处:相较于直接写绝对路径,当你更换了计算机,在别的pc上面运行时,不需要再次改路径名)

2. data测试数据模块

目的:用于存放测试数据


值得注意的是:如果要介入xls格式的excel文件来存储信息并读取,需要安装xlrd模块,自行百度Python相关模块