文章目录
- 一、什么是关键字驱动?
- 1、什么是关键字驱动?(以关键字函数驱动测试)
- 2、项目业务实现转化为关键字函数?
- 3、三种设计模式对比
- 二、实战
- 1、文件目录
- 2、library.py 文件内容
- 3、test_login.py 文件内容
一、什么是关键字驱动?
1、什么是关键字驱动?(以关键字函数驱动测试)
关键字驱动又叫动作字驱动,把项目业务封装成关键字函数,再基于关键字函数实现自动化测试
2、项目业务实现转化为关键字函数?
- 覆盖项目业务 = 用例集合覆盖测试
- 用例集合 = 一个一个用例实现覆盖测试
- 覆盖用例 = 多个操作步骤组成=多个关键字函数
- 操作步骤封装成对应的关键字函数
- 比如:登录用例
登录用例=多个操作步骤组成 基于每个操作步骤封装对应的关键字函数
登录用例:
1、打开浏览器 关键字函数 open_browser()
2、加载项目地址 关键字函数 load_url()
3、输入用户名 关键字函数 input()
4、输入密码 关键字函数 input()
5、点击登录 关键字函数 click()
3、三种设计模式对比
- pom :把每个页面当做一个对象来进行编程 实现某个业务流程的测试=调用页面对象的一
些属性及方法实现测试 - 数据驱动:用外部数据驱动测试
- 关键字驱动:所有业务流程封装成对应的函数 实现某个业务流程的测试 = 调用多个关键字
方法,实现业务流程的测试 难点:封装什么样的关键字函数?
二、实战
1、文件目录
2、library.py 文件内容
from selenium import webdriver
class Library:# 登录用例 = 多个操作步骤组成 基于每个操作步骤封装对应的关键字函数# 登录用例:# 1、打开浏览器- 关键字函数- open_browser()# 2、加载项目地址- 关键字函数- load_url()# 3、输入用户名- 关键字函数- input()# 4、输入密码- 关键字函数- input()# 5、点击登录- 关键字函数- click()def open_browser(self,browser):# 传入的浏览器参数保持首字母大写browser = browser.capitalize()# 获取不同类型的浏览器驱动self.driver = getattr(webdriver, browser)()# 使用原来的方式-打开 Edge 浏览器# self.driver = webdriver.Edge()# 打开其他浏览器def load_url(self, url):self.driver.get(url)def locator(self, loc):return self.driver.find_element(*loc)def input(self, loc, text):# 获取元素el = self.locator(loc)# 输入el.send_keys(text)def click(self, loc):# 获取元素el = self.locator(loc)# 点击el.click()
3、test_login.py 文件内容
import time
import unittest
from selenium.webdriver.common.by import By
from TestKDT.keywords.library import Libraryclass TestCase01(unittest.TestCase):def test_login(self):"""基于关机子驱动 = 调用多个关键字函数登录用例:1、打开浏览器- 关键字函数- open_browser()2、加载项目地址- 关键字函数- load_url()3、输入用户名- 关键字函数- input()4、输入密码- 关键字函数- input()5、点击登录- 关键字函数- click():return:"""lib = Library()lib.open_browser('edge')lib.load_url(url='http://116.62.63.211/shop/user/logininfo.html')time.sleep(3)username = "hc_test"password = "hctest123"el_login = (By.XPATH, '//button[text()="登录"]')el_username = (By.NAME, "accounts")el_password = (By.XPATH, '//input[@type="password"]')lib.input(loc=el_username,text=username)lib.input(loc=el_password,text=password)lib.click(loc=el_login)# 关键字驱动自动化测试框架:只要维护 excel yaml 文件数据--后续更新