首页 > 其他分享 >WEB UI 自动化测试设计思路

WEB UI 自动化测试设计思路

时间:2025-02-07 14:29:33浏览次数:7  
标签:WEB Selenium YAML 测试用例 UI 自动化 数据 页面

WEB UI 自动化测试设计思路

WEB自动化设计思路

框架的搭建是自动化测试中最重要的部分。一个好的自动化框架可以降低维护成本,提高测试的效率。
使用python3 + selenium3 + PO + YAML + DDT+ unittest/pytest等技术编写基础测试框架,能适应日常工作的需求。

Selenium

Selenium是一个基于浏览器的自动化测试工具,提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDESelenium webDriverSelenium Grid

  1. Selenium IDE: 是Firefox的一个扩展,可以进行录制和回放,并把录制的操作以多种语言(Python、Java等)的形式到出成测试用例。
  2. Selenium webDriver: 提供web自动化所需的API,主要用作浏览器控制、页面元素选择和调试。不同的浏览器需要不同的webDriver。
  3. Selenium Grid: 提供了不同机器的不同浏览器上运行selenium测试的能力。

PO设计模式

Page Object Model(POM)设计模式‌简称PO模式。
将页面元素和业务逻辑分离,使得测试代码更加清晰和可维护。每个页面定义为一个对象,页面元素操作和业务流程分离,提高了代码的可读性和复用性‌。

  1. 基类:作为一个工具库。生成一系列在页面对象中可以被调用的函数。
  2. 页面对象类:逻辑代码部分。结合业务,提取所有可以被自动化执行的页面。包含页面的核心元素和核心流程。
  3. 测试用例类:测试代码部分。拼接各类页面的对象,实现最终的测试流程。
  4. 测试数据类:实际测试过程中需要应用的数据内容。

YAML配置管理

使用YAML文件管理页面元素和测试用例数据,便于维护和更新‌。
优势:

  1. 简洁易读:YAML的语法结构清晰,易于阅读和理解,使得配置文件的维护和版本控制更加简便。
  2. 通用性:适用于多种场景,包括应用程序配置、服务器配置、环境变量等。
  3. 集成性:YAML可以与多种编程语言和系统集成,方便进行跨平台和跨语言的操作。
  4. 扩展性:通过自定义标签和结构,YAML可以支持更复杂的配置需求。

YAML作为一种数据序列化格式,它的基本数据类型包括标量、序列和映射。
标量是最基本的数据类型,代表单一的值,如字符串、整数、浮点数、布尔值和null值。
序列是元素的有序集合,使用短横线-表示。
映射是键值对的集合,使用冒号:分隔键和值。

 login_data:
	test_data_01:
		user_name: "admin"
		password: "123456"
	test_data_02:
		user_name: "test"
		password: "123456"
other_name: "zhangsan"
age: 18
hobbies:
	- Reading
	- Writing

在这个例子中,other_nameage是标量,login_data是一个映射,而hobbies是一个序列。

数据驱动DDT

数据驱动,指在自动化测试中处理测试数据的方式。

数据驱动框架会读取数据源中的数据,把数据作为参数传递到功能函数中,并会根据数据的条数多次运行同一个功能函数。

数据驱动的数据源可以是函数外的数据集合CSV 文件Excel 表格TXT 文件,以及数据库等。

优点:

  • 减少重复代码
  • 数据所属的测试用例失败,不会影响到其他测试数据对应的测试用例

数据驱动框架:

  • DDT(Data-Driven Tests),通常结合unittest 使用
  • parameterized,是pytest实现数据驱动的常用框架

项目目录介绍

config:文件路径【配置文件路径、测试用例目录路径、测试报告路径、日志目录、测试数据路径、元素控件路径】
database:配置文件【webURL地址、邮箱数据】
driver:驱动程序【浏览器驱动程序文件】
package:第三方库包【HTMLTestRunner】
public:通用模块
【models:driver浏览器驱动、GetYaml解析yaml、log日志模块、myunit自定义类、newReport获取最新报告、screenshot截图、sendmail发送邮件】
【page_obj:base基础类、loginPage登录页面、setupPage设置页面】
testcase:测试用例
testyaml:页面元素,如login.yaml
run_ui:主程序执行

标签:WEB,Selenium,YAML,测试用例,UI,自动化,数据,页面
From: https://blog.csdn.net/llm200909/article/details/145467027

相关文章