网站搬家 数据库,苏宁易购官网商城,安阳县教育局官网,最佳品牌营销策划公司目录
前言#xff1a;
一、什么是抽象BasePage
二、BasePage中的属性和方法
三、BasePage中的代码实现
四、抽象Page对象
五、测试用例
六、总结 前言#xff1a;
对于测试工程师来说#xff0c;WEB自动化测试是非常重要的一部分。然而#xff0c;WEB自动化测试的开… 目录
前言
一、什么是抽象BasePage
二、BasePage中的属性和方法
三、BasePage中的代码实现
四、抽象Page对象
五、测试用例
六、总结 前言
对于测试工程师来说WEB自动化测试是非常重要的一部分。然而WEB自动化测试的开发成本较高维护难度也很大。因此如何规范的开发WEB自动化测试成为了每个测试工程师需要思考的问题之一。本文将介绍如何使用Python和Selenium Webdriver来封装WEB自动化测试框架其中包括如何抽象BasePage。
一、什么是抽象BasePage
通常来说我们在开发WEB自动化测试框架时需要创建许多页面对象(Page Object)比如登录页面注册页面首页页面等等。每个页面对象都需要有很多方法如输入框输入数据点击按钮等。为了避免重复代码的产生我们可以抽象出一个BasePage。
BasePage是一个基类包含通用的方法和属性所有的页面对象都继承BasePage并通过方法重写来实现自身的方法和属性这使得代码更为简洁和规范化。
二、BasePage中的属性和方法
属性包括driver浏览器驱动实例、url当前页面的URL、title当前页面的标题。
方法包括open打开页面、find_element、find_elements、click和input。
其中find_element和find_elements是页面元素定位的方法click是点击元素的方法input是向元素输入文本的方法。
三、BasePage中的代码实现
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ECclass BasePage(object):def __init__(self, driver):self.driver driverself.url https://www.example.comself.title Exampledef open(self):self.driver.get(self.url)assert self.title in self.driver.titledef find_element(self, *loc):return self.driver.find_element(*loc)def find_elements(self, *loc):return self.driver.find_elements(*loc)def click(self, *loc):element WebDriverWait(self.driver, 10).until(EC.element_to_be_clickable(loc))element.click()def input(self, *loc, text):element WebDriverWait(self.driver, 10).until(EC.presence_of_element_located(loc))element.clear()element.send_keys(text)
四、抽象Page对象
在实际开发中我们需要创建具体的Page对象继承BasePage并重写父类的属性和方法。
以登录页面为例
class LoginPage(BasePage):def __init__(self, driver):super(LoginPage, self).__init__(driver)self.url https://www.example.com/loginself.title Logindef input_username(self, username):input_loc (By.ID, username)self.input(input_loc, username)def input_password(self, password):input_loc (By.ID, password)self.input(input_loc, password)def click_submit(self):button_loc (By.ID, submit)self.click(button_loc)
五、测试用例
在实际测试过程中我们使用Page对象来执行测试用例。
例如
from selenium import webdriver
from pageobjects import LoginPage# 创建浏览器对象
driver webdriver.Chrome()# 打开登录页面
login_page LoginPage(driver)
login_page.open()# 输入用户名
login_page.input_username(testuser)# 输入密码
login_page.input_password(testpassword)# 点击登录按钮
login_page.click_submit()# 断言是否登录成功例如判断是否跳转到首页
assert Home in driver.title# 关闭浏览器
driver.quit()
六、总结
在WEB自动化测试框架中抽象BasePage是一个非常重要的部分可以避免重复代码的产生使得代码更为简洁和规范化。在实际开发中我们需要创建具体的Page对象继承BasePage并重写父类的属性和方法。使用Page对象来执行测试用例可以有效地提高代码的可读性和可维护性。
同时在编写测试用例时需要注意以下几点
1. 尽量避免硬编码Hard-coding使用常量或配置文件代替。
2. 对错误情况进行处理例如元素定位失败等不要直接抛出异常。
3. 封装公共方法例如登录方法和退出方法等方便测试用例的编写。
4. 使用断言assert来判断测试结果是否符合预期例如判断页面标题是否正确、元素是否存在等。
总的来说抽象BasePage可以让我们更轻松、高效地编写WEB自动化测试用例提高测试质量和效率。 作为一位过来人也是希望大家少走一些弯路在这里我给大家分享一些自动化测试前进之路的必须品希望能对你带来帮助。WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等相信能使你更好的进步
留【自动化测试】即可【自动化测试交流】574737577备注ccchttp://qm.qq.com/cgi-bin/qm/qr?_wv1027k3Ro31suVzmZQQTuC3pd1DnAqOjZcVkMIauthKey3LzbiKyASmsZRXGK7rlihB36U4cUmJ1FkwmoupezXCD23%2FnD4mH5mBxDRs4GTCQFnoverify0group_code574737577