当前位置:   article > 正文

基于关键字驱动设计Web UI自动化测试框架!

基于关键字驱动设计Web UI自动化测试框架!

引言

在自动化测试领域,关键字驱动测试(Keyword-Driven Testing, KDT)是一种高效且灵活的方法,它通过抽象测试用例中的操作为关键字,实现了测试用例与测试代码的分离,从而提高了测试脚本的可维护性和可扩展性。本文将详细介绍如何设计并实现一个基于关键字驱动的 Web UI 自动化测试框架,包括配置文件读取、Excel 测试用例管理、关键字驱动类实现以及测试执行逻辑,旨在提供一个可发布的完整解决方案。

框架概述

该框架围绕关键字驱动设计,通过封装底层逻辑代码为关键字驱动类,并使用 Excel 文件管理测试用例,实现了测试用例与测试代码的分离。框架的主要组成部分包括:

配置文件:用于存储浏览器设置等配置信息。 Excel 测试用例:以表格形式存储测试用例,包括关键字、定位器、参数等信息。 关键字驱动类:封装元素定位、操作等底层逻辑代码为关键字方法。 工具函数:用于读取配置文件和 Excel 文件。 测试执行程序:整合所有部分,执行测试用例并生成报告(尽管本文未详细展示报告生成部分)。

框架实现

配置文件读取 (config/settings.py)

创建一个 Python 模块来读取配置文件,支持动态调整浏览器设置。

  1. # config/settings.py
  2. import configparser
  3. def load_settings(file_path='config/settings.ini'):
  4.     config = configparser.ConfigParser()
  5.     config.read(file_path)
  6.     browser_settings = {}
  7.     if 'Browser' in config:
  8.         browser_settings['driver_path'= config['Browser']['driver_path']
  9.         # 可以根据需要添加更多浏览器选项
  10.     return browser_settings

Excel 测试用例读取 (tools/excel_reader.py)

使用 pandas 库读取 Excel 文件中的测试用例。

  1. # tools/excel_reader.py
  2. import pandas as pd
  3. def read_excel_test_cases(file_path):
  4.     return pd.read_excel(file_path, engine='openpyxl')

关键字驱动类 (keys/keyword_driver.py)

封装元素定位和操作方法为关键字。

  1. # keys/keyword_driver.py
  2. from selenium.webdriver.common.by import By
  3. from Base.selenium_wrapper import find_element  # 假设Base目录下有selenium封装
  4. class KeywordDriver:
  5.     def __init__(self, driver):
  6.         self.driver = driver
  7.     def type_text(self, locator, text):
  8.         element = find_element(self.driver, locator['type'], locator['value'])
  9.         element.clear()
  10.         element.send_keys(text)
  11.     def click_element(self, locator):
  12.         element = find_element(self.driver, locator['click'], locator['value'])
  13.         element.click()
  14.     # 可以继续添加其他关键字方法

测试执行逻辑 (main.py)

整合所有部分,执行测试用例。

  1. # main.py
  2. from selenium import webdriver
  3. from config.settings import load_settings
  4. from tools.excel_reader import read_excel_test_cases
  5. from keys.keyword_driver import KeywordDriver
  6. def execute_tests(test_cases, driver):
  7.     keyword_driver = KeywordDriver(driver)
  8.     for index, row in test_cases.iterrows():
  9.         keyword = row['keyword']
  10.         locator = {'type': row['locator_type'], 'value': row['locator_value']}
  11.         param = row.get('param')  # 使用get方法避免KeyError
  12.         if keyword == 'type_text':
  13.             keyword_driver.type_text(locator, param)
  14.         elif keyword == 'click_element':
  15.             keyword_driver.click_element(locator)
  16.         else:
  17.             print(f"Unsupported keyword: {keyword}")
  18. def main():
  19.     browser_settings = load_settings()
  20.     driver = webdriver.Chrome(executable_path=browser_settings['driver_path'])
  21.     test_cases = read_excel_test_cases('data/test_cases.xlsx')
  22.     execute_tests(test_cases, driver)
  23.     driver.quit()
  24. if __name__ == '__main__':
  25.     main()

Excel 测试用例格式

Excel 测试用例文件(如 data/test_cases.xlsx)应包含以下列:

  • keyword: 关键字(如 type_text, click_element)

  • locator_type: 定位器类型(如 id, xpath)

  • locator_value: 定位器值

  • param: 参数(可选,根据关键字需要)

确保 Excel 文件的格式与代码中读取的方式相匹配。

注意事项

  • 确保所有依赖库(如 selenium, pandas, openpyxl)已安装。

  • 根据实际需求调整配置文件、Excel 模板和代码逻辑。

  • 考虑添加异常处理和日志记录以增强框架的健壮性和可调试性。

  • 对于更复杂的测试用例,可能需要扩展关键字驱动类以支持更多的关键字和方法。

  • 报告生成部分可以根据需要集成 Allure 或其他测试报告工具。

通过上述实现,我们构建了一个基于关键字驱动的 Web UI 自动化测试框架,它支持灵活的测试用例管理和高效的测试执行,为 Web 应用的自动化测试提供了有力的支持。

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/908263
推荐阅读
相关标签
  

闽ICP备14008679号