09 web 自动化之 KDT 关键字驱动详解

一、什么是关键字驱动?

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 Library

class 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 文件数据--后续更新
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值