文章目录
前言
相信曾经了解过、学习过或者使用过的童鞋都有过这样的苦恼,尤其是在面试自动化测试岗位的时候:你们的框架是怎么样的?是你搭建的吗?你搭建了哪些东西呢?一连三问,一脸懵逼。我也遇到过,今天我就斗胆将我的学习过程记录分享,让大家参考指正。废话不多说,先上目录架构。
一、PO设计模式
PageObject简称PO,表示页面对象。即将页面当成对象,页面元素即是对象的属性,元素操作即是对象的方法。因此PO设计模式实现了代码的分层设计,将页面元素、元素操作和页面业务进行分离,减少代码维护量、提高测试用例的可读性。
1.PO设计的核心思想
1.基础层:(common层)封装基础类BasePage,基础类可以包含WebDriver实例的属性,如驱动的定义、对元素定位的二次封装等。
2.页面层:(page层)每一个页面类都要继承基础类BasePage,并将页面元素的操作封装成一个个的方法。
3.用例层:(testcase层)用例类必须继承unitest.Testcase类,并调用page类的方法实现相应测试步骤和用例的断言。
2.优快云登录功能PO分层设计
1.实现基础类BasePage
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
class BasePage:
# 定义项目地址和浏览器驱动
def __init__(self, url, driver):
self.url = url
self.driver = driver
# 重写find_element方法,添加元素是否存在判断
def find_element(self, *locator):
try:
WebDriverWait(self.driver, 20).until(expected_conditions.visibility_of_element_located(locator))
# 使用find_element(by, loc)定位法
return self.driver.find_element(*locator)
except:
print(*locator)
2.实现登录页面类LoginPage
2.1 实现登录页面元素定位类LoginPageLocator
个人习惯将元素定位和页面类分开
from selenium.webdriver.common.by import By
class LoginPageLocator:

文章介绍了自动化测试中的PO设计模式,用于组织和简化页面对象的代码,以及如何使用Excel进行数据驱动测试。作者通过实例展示了基础类BasePage、登录页面类LoginPage的实现,并提供了用例层testLogin的代码。此外,还提到了使用pandas处理Excel数据以及用例截图和日志模块的相关内容。

最低0.47元/天 解锁文章
497

被折叠的 条评论
为什么被折叠?



