1.PO模型介绍
在自动化中,Selenium自动化测试中有一个名字经常被提及PageObject(思想与面向对象的特征相同),通常PO模型可以大大提高测试用例的维护效率
2.PO的核心要素
1.在PO模式中抽离封装集成一个BasePage类,该基类应该拥有一个只实现webdriver实例的属性
2.每一个page都继承BasePage,通过driver来管理本page中元素,将page中的操作封装成一个个方法
3.TestCase继承unittest.Testcase类,并依赖page类,从而实现相应的测试步骤
非PO实现![](https://img-blog.csdnimg.cn/bdc9c1cf79ba48ed9a3448052f0e06e8.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAZzE5OTc0NjczODc0,size_20,color_FFFFFF,t_70,g_se,x_16)
实现BasePage![](https://img-blog.csdnimg.cn/17a98c89e42b4f6f993875aca0e4ffcf.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAZzE5OTc0NjczODc0,size_20,color_FFFFFF,t_70,g_se,x_16)
实现SearchPage![](https://img-blog.csdnimg.cn/ced2aad786a3489491d0e342e737f26b.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAZzE5OTc0NjczODc0,size_20,color_FFFFFF,t_70,g_se,x_16)
实现TestCase![](https://img-blog.csdnimg.cn/63de2b2a242e413285c3df089500d053.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAZzE5OTc0NjczODc0,size_20,color_FFFFFF,t_70,g_se,x_16)
组织代码
生成测试报告![](https://img-blog.csdnimg.cn/8ead60fcc3714700859871ecc8039d05.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAZzE5OTc0NjczODc0,size_20,color_FFFFFF,t_70,g_se,x_16)
PO模式的优点
1:PO提供了一种业务流程与页面元素操作分离的模式,这使得测试代码变得更加清晰
2:页面对象与用例分离,使得我们更好的复用对象
3:可复用的页面方法代码会变得更加优化
4:更加有效的命令方式使得我们更加清晰的知道方法所操作的UI元素