怎样从0开始搭建一个测试框架_0——总章

2024-02-25 21:08

本文主要是介绍怎样从0开始搭建一个测试框架_0——总章,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

http://blog.csdn.net/huilan_same/article/details/76572411

怎样从0开始搭建一个测试框架_0

在开始之前,请让我先声明几点:

  1. 这个“从0开始”并不是说你不需要任何基础知识,而是指框架从无到有的过程,要开始搭建还是需要一定基础
  2. 请确保你已经掌握了基本的Python语法
  3. 如果你要搭建UI框架,请确保你已经掌握了Selenium的基本用法
  4. 这个框架主要面向刚刚会写脚本但是不知道该如何走向下一步的同学,欢迎吐槽,但最好带上改进建议

思考:我们需要一个什么样的框架

既然要搭一个框架,我们首先得弄明白我们需要一个什么样的框架,这个框架要支持什么功能?

框架主要的作用就是帮助我们编写更加简单而且好维护的用例,让我们把主要精力放在测试用例的设计上,那么我们就需要把所有额外的东西抽象出来作为框架的部分。

那么,额外的东西是什么?

  1. 日志以及报告
  2. 日志级别、URL、浏览器类型等基本配置
  3. 参数化
  4. 公共方法

搭建框架目录结构

现在我们很容易就把框架的结构搭建好了:

Test_framework|--config(配置文件)|--data(数据文件)|--drivers(驱动)|--log(日志)|--report(报告)|--test(测试用例)|--utils(公共方法)|--ReadMe.md(加个说明性的文件,告诉团队成员框架需要的环境以及用法)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

也可以参照这篇目录结构,都是类似的:简单分享一个轻量级自动化测试框架目录结构设计

接下来有一些选择题要做了:

Python 2 or 3? Selenium 2 or 3?

Python 3的使用越来越多,而且3的unittest中带有subTest,能够通过子用例实现参数化。而用2的话需要unittest2或其他的库来实现,所以我们这里选用Python 3。

Selenium 3刚发布正式版不久,一些功能driver还没来得及跟上,尤其是geckodriver,所以选择Selenium 2(注意PY3的话要选择SE2.53.1)。

环境选择其实影响不大,你也可以选择你自己习惯的环境。

配置文件

配置文件我们有多种选择:ini、yaml、xml、properties、txt、py等

鉴于我之前写过一篇yaml的博文,我们这里就用yaml吧。

所以我们在config文件夹里创建config.yml文件,在utils里创建一个config.py文件读取配置,内容暂且不管。

简单的对之后的内容勾画一下

  1. 首先我们要把配置抽出来,用yaml文件放配置。所以我们要在config层添加配置文件config.yml,在utils层添加file_reader.py与config.py来管理。——怎样从0开始搭建一个测试框架_1
  2. 然后我们将python自带的logging模块封装了一下,从配置文件读取并设置固定的logger。在utils中创建了log.py。——怎样从0开始搭建一个测试框架_2
  3. 然后封装xlrd模块,读取excel,实现用例的参数化。——怎样从0开始搭建一个测试框架_3
  4. 然后是生成HTML测试报告,这个博主修改了网上原有的HTMLTestRunner,改为中文并美化,然后修改其支持PY3。你可以直接拿去用。——怎样从0开始搭建一个测试框架_4
  5. 然后我们给框架添加了发送邮件报告的能力。在utils中添加了mail.py。——怎样从0开始搭建一个测试框架_5
  6. 然后我们将测试用例用Page-Object思想进行封装,进一步划分test层的子层。——怎样从0开始搭建一个测试框架_6
  7. 接下来为了接口测试封装client类。在utils中添加了client.py。——怎样从0开始搭建一个测试框架_7
  8. 然后添加了一个简单的自定义断言,在utils中添加assertion.py,可用同样的方法自行扩展。——怎样从0开始搭建一个测试框架_8
  9. 接下来我们为了抽取响应结果,用JMESPath封装Extractor,在utils中添加extractor.py。——怎样从0开始搭建一个测试框架_9
  10. 然后是生成器。为我们自动生成固定类型的测试数据。utils下创建了generator.py。——怎样从0开始搭建一个测试框架_10
  11. 最后为了一些项目中的支持方法,如加密、签名等,创建支持库support.py。——怎样从0开始搭建一个测试框架_11

整个流程下来我们一个简单的框架就像模像样了,在此基础上可继续完善,实际用在项目中也没有什么问题,再简单结合 Jenkins 部署起来,定期或每次代码提交后可自动运行测试,直接把测试报告发送到项目成员手中,妥妥的!接下来就跟我一块学习吧。

所有的代码我都放到了GITHUB上【点我传送】,可以自己下载去学习,有什么好的建议或者问题,可以留言或者加我的QQ群:455478219【点击加群】讨论。



这篇关于怎样从0开始搭建一个测试框架_0——总章的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/746715

相关文章

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

解决若依微服务框架启动报错的问题

《解决若依微服务框架启动报错的问题》Invalidboundstatement错误通常由MyBatis映射文件未正确加载或Nacos配置未读取导致,需检查XML的namespace与方法ID是否匹配,... 目录ruoyi-system模块报错报错详情nacos文件目录总结ruoyi-systnGLNYpe

Java 与 LibreOffice 集成开发指南(环境搭建及代码示例)

《Java与LibreOffice集成开发指南(环境搭建及代码示例)》本文介绍Java与LibreOffice的集成方法,涵盖环境配置、API调用、文档转换、UNO桥接及REST接口等技术,提供... 目录1. 引言2. 环境搭建2.1 安装 LibreOffice2.2 配置 Java 开发环境2.3 配

基于Python Playwright进行前端性能测试的脚本实现

《基于PythonPlaywright进行前端性能测试的脚本实现》在当今Web应用开发中,性能优化是提升用户体验的关键因素之一,本文将介绍如何使用Playwright构建一个自动化性能测试工具,希望... 目录引言工具概述整体架构核心实现解析1. 浏览器初始化2. 性能数据收集3. 资源分析4. 关键性能指

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参

Python Web框架Flask、Streamlit、FastAPI示例详解

《PythonWeb框架Flask、Streamlit、FastAPI示例详解》本文对比分析了Flask、Streamlit和FastAPI三大PythonWeb框架:Flask轻量灵活适合传统应用... 目录概述Flask详解Flask简介安装和基础配置核心概念路由和视图模板系统数据库集成实际示例Stre

Olingo分析和实践之OData框架核心组件初始化(关键步骤)

《Olingo分析和实践之OData框架核心组件初始化(关键步骤)》ODataSpringBootService通过初始化OData实例和服务元数据,构建框架核心能力与数据模型结构,实现序列化、URI... 目录概述第一步:OData实例创建1.1 OData.newInstance() 详细分析1.1.1

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.