一、po模型介绍
1、简介
在自动化中,Selenium自动化测试中有一个名字经常被提及PageObject(思想与面向对象的特征相同),通常PO模型可以大大提高测试用例的维护效率
2、为什么要用po?
基于python selenium2开始ui自动化测试脚本的编写不是多么艰巨的任务。只需要定位到元素,执行对应元素的操作即可。我们所能做的就是元素的定位,然后进行键盘输入或鼠标动作。但随着时间的迁移,测试套件将持续的增长。脚本也将变的越来越多。如果我们需要维护10个页面,100个页面,甚至1000个呢?那么页面元素的任何改变都会让我们的脚本维护变得繁琐复杂,而且变得耗时易出错。那怎么解决呢?ui自动化中,常用的一种方式,引入Page Object(PO):页面对象模式来解决,po能让我们的测试代码变得可读性更好,可维护性高,复用性高。
3、po优势
1、PO提供了一种业务流程与页面元素操作分离的模式,这使得测试代码变得更加清晰。 2、页面对象与用例分离,使得我们更好的复用对象。 3、可复用的页面方法代码会变得更加优化 4、更加有效的命名方式使得我们更加清晰的知道方法所操作的UI元素。 # 总结: 重用,业务和对象分离,代码结构清晰,方便代码维护
二、Po的设计模式
三、PO的核心要素
1.在PO模式中抽离封装集成一个BasePage类,该基类应该拥有一个只实现webdriver实例的属性 2.每一个page都继承BasePage,通过driver来管理本page中元素,将page中的操作封装成一个个方法 3.TestCase继承unittest.Testcase类,并依赖page类,从而实现相应的测试步骤 # 总结 PO设计模式中的BasePage基类对应案例中的BasePage.py文件 PO模式中的pages中的案例显示Search.py PO模式设计中TestCase对应案例中的TestCase.py