当前位置: 首页 > article >正文

【UI自动化框架设计思路】runner:如何运行框架

一、简介

  • **功能:**自动化测试的运行器,负责整合 UI 识别与 UI 操作、读取配置文件并执行测试用例步骤。

  • 参数:

    • config_pth:配置文件的路径(字符串类型)。
  • 说明:
    Runner 类是整个自动化测试流程的核心入口点,通过加载配置文件并结合 UI 操作类,执行测试用例的步骤。它将配置管理、UI 操作和测试执行整合为一个完整的自动化测试流程。


二、代码解析

1. init 方法

  • **功能:**初始化 Runner 类,加载配置并创建 UI 自动化操作实例。

  • 参数:

    • config_pth:配置文件的路径(字符串类型)。
  • 代码片段:

    def __init__(self, config_pth):
        self.config = Config(config_pth)  # 配置
        self.action = UiAutomation(self.config.system, self.config.language)     # 操作
    
  • 说明:

    • 创建 Config 类的实例 self.config,加载指定路径的配置文件。

    • 使用配置中的系统(system)和语言(language)参数,创建 UiAutomation 类的实例 self.action,用于后续的 UI 操作。


2. simulation_operation_running 方法

  • **功能:**执行测试用例的步骤。

  • **参数:**无。

  • 代码片段:

    def simulation_operation_running(self):
        test_case_steps = self.config.read_case_csv()
        for step in test_case_steps:
            self.action.simulation_operation_step(step)
            self.config.wait_time(0.5)
    
  • 说明:

    • 调用 self.config.read_case_csv() 从配置文件中读取测试用例步骤,存储在 test_case_steps 中。

    • 遍历 test_case_steps,对每个步骤调用 self.action.simulation_operation_step(step) 执行对应的 UI 操作。

    • 每执行一步后,通过 self.config.wait_time(0.5) 等待 0.5 秒,确保操作之间的稳定性。


3. run 方法

  • **功能:**执行多次测试。

  • 参数:

    • count:执行测试的次数(整数类型)。
  • 代码片段:

    def run(self, count: int):
        for i in range(count):
            self.simulation_operation_running()
    
  • 说明:

    • 接收一个整数参数 count,表示需要执行测试的次数。

    • 在循环中调用 simulation_operation_running 方法 count 次,实现多次测试的功能,适用于需要重复验证的场景。


三、思路总结

核心思路可以总结如下:

  1. 模块化设计:

    • 将**配置管理(Config 类)、UI 操作(UiAutomation 类)测试执行(Runner 类)**分离到不同的模块,提高代码的可维护性和可扩展性。

    • Runner 类作为整合者,协调配置和操作模块,完成自动化测试的完整流程。

  2. 配置管理:

    • 使用 Config 类加载配置文件,提供系统、语言等环境配置,以及测试用例步骤的读取功能。

    • 通过配置文件驱动测试,确保测试用例的灵活性和可配置性,避免硬编码。

  3. UI 操作:

    • UiAutomation 类负责具体的 UI 识别与操作,基于系统和语言配置,能够适配不同的测试环境。
  4. 测试执行:

    • simulation_operation_running 方法实现单次测试用例的执行,遍历每个步骤并调用 UI 操作,步与步之间加入 0.5 秒的等待时间以保证稳定性。

    • run 方法支持多次测试,满足重复执行的需求,提高测试的覆盖率和可靠性。

**AI(Grok 3)夸夸模式:**总的来说,作者的目标是创建一个结构清晰、功能完备的自动化测试框架,通过模块化设计和配置文件驱动,实现了 UI 自动化测试的高效性和灵活性。这种设计特别适合需要频繁调整测试用例或在不同环境下运行的场景。

完整代码如下

""" 
@ author: Kahoku
@ date: 2024/08
@ description:  运行器
@update: 2024/11
    1. 整合UI识别 与 UI操作两部分
    2. 读取配置文件
    3. 执行测试用例步骤
"""

from app.ui_automation import UiAutomation
from runner.config import Config


class Runner:

    def __init__(self, config_pth):

        self.config = Config(config_pth)  # 配置
        self.action = UiAutomation(self.config.system, self.config.language)     # 操作
   

    def simulation_operation_running(self):
        test_case_steps = self.config.read_case_csv()
        for step in test_case_steps:
            self.action.simulation_operation_step(step)
            self.config.wait_time(0.5)

    def run(self, count: int):
        for i in range(count):
            self.simulation_operation_running()

http://www.kler.cn/a/583448.html

相关文章:

  • 【VUE2】第四期——路由
  • 厦门大学DeepSeek第四版:《DeepSeek大模型赋能政府数字化转型》(122页PPT,面向政府部门的大模型科普报告)
  • 【面试题系列】 Redis 核心面试题(二)答案
  • JavaScript代码性能优化
  • Elasticsearch 集群如何进行读写限流?
  • 【Java】——数据类型和变量
  • 【算法】图论 —— Dijkstra算法 python
  • Windows 图形显示驱动开发-WDDM 3.2-用户模式工作提交(一)
  • 卷积神经网络(CNN):深度解析其原理与特性
  • 从数据到决策:Ubuntu工控机的工业应用实践
  • ubuntu2404 安装 过程中 手动设置网络
  • Oracle常用分析诊断工具(9)——ASH
  • 进程(下)【Linux操作系统】
  • Python网络爬虫之requests库的使用方法
  • [论文阅读]Certifiably Robust RAG against Retrieval Corruption
  • [算法] 两数之和(simple)
  • 基于Python实现手写数字识别
  • Dynamics 365 新版的Power apps开发界面中如何找到开发者资源
  • vscode bookmarks插件的安装,方便切换代码
  • 大模型助力自我提升:零基础实用指南