如何从零开始搭建公司自动化测试框架

devtools/2024/12/22 22:10:57/

题主的意思,搭建的自动化测试框架要包括API测试UI测试APP测试三类。以上三类其实可以简化为两类,那就是:

1)接口自动化测试框架搭建
2)UI自动化测试框架搭建

没问题,安排,且是手把手教你如何搭建以上两类自动化测试框架。 

回到这篇主题,刷到这个问题的测试人员,可能有一部分还是从事"手工测试"的,或是一些是自学测试刚入门。为了让这类读者也能有获得感,所以我将问题拆分下,分为下面4个部分: 

1、为什么要搭建自动化测试框架
2、简介如何搭建API接口测试框架
3、简介如何搭建UI自动化测试框架
4、自动化测试框架电子书推荐

好,抓好扶手,接下来我们开始正式介绍了。

一、为什么要搭建自动化测试框架

测试如果按照是否手工划分,可以分为“手工测试”和“自动化测试”。

“手工测试”也就是用人力来进行功能测试。相比自动化测试而言执行效率慢,可以进行探索性测试和发散性测试。

“自动化测试”主要是通过所开发的软件测试工具、脚本等来替代人工进行功能测试。相比“手工测试”,不仅能解放人力,且具有良好的可操作性、可重复性和高效率等特点。

具体来说"自动化测试"的优势如下:

(1)自动化测试具有一致性和重复性的特点,而且测试更客观,提高了软件测试的准确度、精确度和可信任度。

(2)自动化测试可以将任务自动化,能够解放人力去做更重要的工作。

(3)自动化测试只需要部署好相应的场景,如高度复杂使用场景、海量数据交互、动态响应请求等,测试就可以在无人值守的状态下自动进行,并对测试结果进行分析反馈;手工测试很难实现复杂的测试。

(4)自动化测试可以模拟复杂的测试场景完成人工无法完成的测试,如负载测试、压力测试等。

(5)软件版本更新迭代后需要进行 回归测试,自动化测试有助于创建持续集成环境,使用新构建的测试环境快速进行自动化测试

可见,自动化测试优势非常多,所以最近几年企业疯狂招聘自动化测试人员。高薪的自动化测试不断的涌入,逐步替代低薪的手工测试,直接后果就是测试最近几年的平均薪资一路上涨。

△ 截图来源于职友集,显示前6年测试薪资一路上涨


自动化测试具体实施流程如下图所示:

自动化测试实施流程图

从上图可以看出,要实施自动化测试是需要搭建测试环境的,也就是要搭建测试框架。

这就是为什么我们要学习"接口自动化测试框架   搭建"和"Ui自动化测试框架搭建"的根本原因。

二、简介如何搭建API接口测试框架

在当前企业实际测试技能应用中,功能测试和接口测试应用最广泛。但相比功能测试,接口测试缺口却非常大。且接口测试在测试领域地位非常高,是软件测试工程师初级和中级分界线。

所以我们先来将接口测试框架的搭建,搭建步骤列出如下:

1)选择开发语言
2)选择Pytest作为测试框架
3)设置测试报告
4)选择代码仓库
5)部署持续集成方案
附:两套详细学习视频推荐

步骤步骤讲完之后,我们开始详细阐述每一步该如何操作(尽力能让你照着步骤搭建出来)。

1、选择一门语言

语言我们选择Python。因为相比Java,更容易入门。

python是一门简单易学,容易理解的计算机编程语言。不仅有很多的学习书籍,还有很多的学习视频。Python也早已经成为tiobe语言的No1。


2、选择PyTest作为测试框架

PyTest是一个非常成熟的全功能的Python测试框架。官方文档详细介绍了它的特点

  1. · 对失败断言语句会进行详细信息展示(无需记住self.assert*名称)

  2. · 自动发现测试模块和功能

  3. · 非常方便管理小型或参数化测试项目

  4. · 可以开箱即用运行单元测试和测试套件

  5. · 丰富的插件架构,超过 800 多个外部插件和蓬勃发展的社区

AI助手

pytest框架使用5步骤

  1. #PyTest目录结构

  2. apiTestFramework # 项目名称

  3. ├── api # 定义封装被测系统的接口

  4. ├── script # 定义测试用例脚本

  5. ├── data # 存放测试数据文件

  6. ├── report # 存放生成的测试报告

  7. ├── common # 存放通用工具类

  8. ├── config.py # 定义项目的配置信息

  9. └── pytest.ini # pytest配置文件

AI助手

3. 测试报告

执行完测试用例后,可以以HTML(网页)方式将执行结果生成报告。我们选择pytest-html。它是PyTest框架生成HTML测试报告的插件。使用方便。

第一步安装:pip install pytest-html

第二步修改配置:addopts = -s --html=report/report.html

轻松搞定。

4. 代码仓库

代码管理肯定是首选git喽。Git 分布式版本控制系统,实现版本控制和多人协同。

  1. # 常见的代码托管平台:

  2. Github

  3. 国外的基于git实现在线代码托管的仓库(企业版收费)

  4. 官网:https://github.com/

  5. Gitee

  6. 码云,是开源中国免费提供(企业版收费)

  7. 官网:https://gitee.com/

  8. Gitlab

  9. 类似Github,一般用于企业内部搭建git私服

AI助手

5. 持续集成方案

Jenkins是基于Java开发的一种开源、跨平台的持续集成工具。他能够持续自动构建/测试软件项目,实现监控定时执行的任务。

我们简单来说明一下jenkins的核心构建步骤。

1) 搭建Jenkins环境

2) 创建任务之后设置源码管理

3) 输入构建命名

4)设置定时构建

5)设置测试报告路径

6)设置构建后发送邮件

7)构建并查看结果

三、手把手教:如何搭建UI自动化测试框架

UI自动化测试框架是有很多的。我们以pytest+selenium+allure+PO模式为例子给大家简要说明一下。搭建步骤有下面几步:

1)工具环境
2)依赖包
3)工程目录
4)脚本书写步骤
1、工具环境
 
  1. a) Python解释器

  2. b) Pycharm编码工具

  3. c) Web端:

  4. d) 浏览器

  5. e) 浏览器驱动程序

AI助手

2. 依赖包
 
  1. a) Selenium

  2. b) pytest

  3. c) pytest-html

3. 工程目录

 
  1. a) base 基类python package

  2. b) page PO封装python package

  3. c) case 测试用例python package

  4. d) data 数据文件Directory

  5. e) report 测试报告Directory

  6. f) log 日志文件Directory

  7. g) screenshot 截图文件Directory

  8. h) config.py 项目配置信息文件

  9. i) utils.py 工具类文件

AI助手

4. 脚本书写步骤

a ) 初始化代码

b ) 一个测试用例脚本编写过程

c ) 引入数据驱动

d ) 引入日志

e ) 生成测试报告

PS: 若没有基础知识铺垫,再详细的文字也可能会让人不知如何下手,接下来推荐多个UI自动化测试框架视频,按照下列视频搭建即可。


http://www.ppmy.cn/devtools/144492.html

相关文章

如何写一个数字老虎机滚轮

需求描述 写一个数字滚轮,实现类似老虎机的效果,可以指定数字 实现思路 这个数字滚动组件的核心实现思路可以概括为: 视觉原理 每个数字位用一个固定高度的容器,通过 overflow: hidden 只显示一个数字容器内部包含完整的 0-9…

leecode474.一和零

这道题感觉像是01背包问题的进阶&#xff0c;容量有两个维度&#xff0c;一个是m个0&#xff0c;一个是n个1 class Solution { public:int findMaxForm(vector<string>& strs, int m, int n) {vector<vector<int>> dp(m1,vector<int>(n1,0));for(…

基于ceres优化的3d激光雷达开源算法

以下是一些基于CERES优化的开源激光雷达SLAM或相关算法&#xff1a; (1) LOAM (Lidar Odometry And Mapping) 简介: LOAM是一种经典的激光雷达里程计和建图算法&#xff0c;它通过提取特征点&#xff08;角点和平面点&#xff09;&#xff0c;利用ICP&#xff08;Iterative Cl…

Java图片拼接

最近遇到一个挺离谱的功能&#xff0c;某个表单只让上传一张图&#xff0c;多图上传会使导出失败。跟开发沟通后表示&#xff0c;这个问题处理不了。我... 遂自己思考&#xff0c;能否以曲线救国的方式拯救一下&#xff0c;即不伤及代码之根本&#xff0c;又能解决燃眉之急。灵…

【计算机网络2】计算机网络的性能能指标

目录 一 、计算机网络的性能指标 二、具体介绍 1、速 率 2、带 宽 3、吞 吐 量 4、时 延 5、时延带宽积 6、往 返 时 延 7、信道利用率 一 、计算机网络的性能指标 计算机网络的性能指标就是从不同方面度量计算机网络的性能&#xff0c;有如下7个指标&#xff1a; 速…

易快报-飞书-金蝶云星空集成项目技术分享

本文深入探讨了浙江某科技集团有限公司如何通过技术集成实现易快报、飞书和金蝶云星空的数据对接&#xff0c;重点分析了项目在安全性、时效性和细节处理方面的技术实现&#xff0c;并展示了项目成果。 1. 企业背景 浙江某科技集团有限公司&#xff0c;作为一家专注于新能源应…

Vue3之路由(Router)介绍

在构建单页面应用&#xff08;SPA&#xff09;时&#xff0c;我们需要一种有效的方式来处理不同的视图&#xff08;页面&#xff09;之间的导航&#xff0c;而无需重新加载整个页面。Vue.js 提供了一个官方的路由库 Vue Router&#xff0c;正是为了解决这一问题。Vue Router 使…

wpf mvvm 数据绑定数据(按钮文字表头都可以),根据长度进行换行,并把换行的文字居中

今天遇到了一个问题&#xff0c;就是数据表头按钮的文字换行后不能居中&#xff0c;如何查找资料后&#xff0c;也是挺简单的&#xff0c;就是绑定控件的文字&#xff0c;进行进行操作&#xff0c;下来我们以按钮为例。 在WPF中使用MVVM模式时&#xff0c;可以通过绑定按钮的文…