WEB UI 自动化测试设计思路
WEB自动化设计思路
框架的搭建是自动化测试中最重要的部分。一个好的自动化框架可以降低维护成本,提高测试的效率。
使用python3 + selenium3 + PO + YAML + DDT+ unittest/pytest
等技术编写基础测试框架,能适应日常工作的需求。
Selenium
Selenium是一个基于浏览器的自动化测试工具,提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE
、Selenium webDriver
、Selenium Grid
。
- Selenium IDE: 是Firefox的一个扩展,可以进行录制和回放,并把录制的操作以多种语言(Python、Java等)的形式到出成测试用例。
- Selenium webDriver: 提供web自动化所需的API,主要用作浏览器控制、页面元素选择和调试。不同的浏览器需要不同的webDriver。
- Selenium Grid: 提供了不同机器的不同浏览器上运行selenium测试的能力。
PO设计模式
Page Object Model(POM)设计模式简称PO模式。
将页面元素和业务逻辑分离,使得测试代码更加清晰和可维护。每个页面定义为一个对象,页面元素操作和业务流程分离,提高了代码的可读性和复用性。
- 基类:作为一个工具库。生成一系列在页面对象中可以被调用的函数。
- 页面对象类:逻辑代码部分。结合业务,提取所有可以被自动化执行的页面。包含页面的核心元素和核心流程。
- 测试用例类:测试代码部分。拼接各类页面的对象,实现最终的测试流程。
- 测试数据类:实际测试过程中需要应用的数据内容。
YAML配置管理
使用YAML文件管理页面元素和测试用例数据,便于维护和更新。
优势:
- 简洁易读:YAML的语法结构清晰,易于阅读和理解,使得配置文件的维护和版本控制更加简便。
- 通用性:适用于多种场景,包括应用程序配置、服务器配置、环境变量等。
- 集成性:YAML可以与多种编程语言和系统集成,方便进行跨平台和跨语言的操作。
- 扩展性:通过自定义标签和结构,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_name
、age
是标量,login_data
是一个映射,而hobbies
是一个序列。
数据驱动DDT
数据驱动,指在自动化测试中处理测试数据的方式。
数据驱动框架会读取数据源中的数据,把数据作为参数传递到功能函数中,并会根据数据的条数多次运行同一个功能函数。
数据驱动的数据源可以是函数外的数据集合
、CSV 文件
、Excel 表格
、TXT 文件
,以及数据库
等。
优点:
- 减少重复代码
- 数据所属的测试用例失败,不会影响到其他测试数据对应的测试用例
数据驱动框架:
- DDT(Data-Driven Tests),通常结合unittest 使用
- parameterized,是pytest实现数据驱动的常用框架
项目目录介绍
标签:WEB,Selenium,YAML,测试用例,UI,自动化,数据,页面 From: https://blog.csdn.net/llm200909/article/details/145467027config:文件路径【配置文件路径、测试用例目录路径、测试报告路径、日志目录、测试数据路径、元素控件路径】
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:主程序执行