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

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

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

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

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

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

(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测试框架。官方文档详细介绍了它的特点

· 对失败断言语句会进行详细信息展示(无需记住self.assert*名称)
· 自动发现测试模块和功能
· 非常方便管理小型或参数化测试项目
· 可以开箱即用运行单元测试和测试套件
· 丰富的插件架构,超过 800 多个外部插件和蓬勃发展的社区

pytest框架使用5步骤

#PyTest目录结构
apiTestFramework # 项目名称 
├── api # 定义封装被测系统的接口 
├── script # 定义测试用例脚本 
├── data # 存放测试数据文件 
├── report # 存放生成的测试报告 
├── common # 存放通用工具类 
├── config.py # 定义项目的配置信息 
└── pytest.ini # pytest配置文件

3. 测试报告

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

第一步安装:pip install pytest-html

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

轻松搞定。

4. 代码仓库

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

# 常见的代码托管平台: 
Github 国外的基于git实现在线代码托管的仓库(企业版收费) 官网:https://github.com/ 
Gitee 码云,是开源中国免费提供(企业版收费)官网:https://gitee.com/ 
Gitlab 类似Github,一般用于企业内部搭建git私服

5. 持续集成方案

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

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

1) 搭建Jenkins环境

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

3) 输入构建命名

4)设置定时构建

5)设置测试报告路径

6)设置构建后发送邮件

7)构建并查看结果

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

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

1)工具环境
2)依赖包
3)工程目录
4)脚本书写步骤

1、工具环境

a)	Python解释器
b)	Pycharm编码工具
c)	Web端:
d)	浏览器
e)	浏览器驱动程序

2. 依赖包

a)	Selenium
b)	pytest
c)	pytest-html

3. 工程目录

a)	base      	基类python package
b)	page      	PO封装python package
c)	case 	  	测试用例python package
d)	data       	数据文件Directory
e)	report    	测试报告Directory
f)	log         	日志文件Directory
g)	screenshot    	截图文件Directory
h)	config.py       项目配置信息文件
i)	utils.py        工具类文件

4. 脚本书写步骤

a ) 初始化代码

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

c ) 引入数据驱动

d ) 引入日志

e ) 生成测试报告

 

 总结

如果你对此文有任何疑问,如果你也需要接口项目实战,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入我们,加入方式在文章的最后面

  自动化测试相关教程推荐:

2023最新自动化测试自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂!!_哔哩哔哩_bilibili

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibili

测试开发相关教程推荐

2023全网最牛,字节测试开发大佬现场教学,从零开始教你成为年薪百万的测试开发工程师_哔哩哔哩_bilibili

postman/jmeter/fiddler测试工具类教程推荐

讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程,学jmeter接口测试一套教程就够了!!_哔哩哔哩_bilibili

2023自学fiddler抓包,请一定要看完【如何1天学会fiddler抓包】的全网最详细视频教程!!_哔哩哔哩_bilibili

2023全网封神,B站讲的最详细的Postman接口测试实战教学,小白都能学会_哔哩哔哩_bilibili

  总结:

 光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

测试开发视频教程、学习笔记领取传送门!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/594050.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SSE和websocket

SSE (Server-Sent Events,服务器推送事件) 是一种用于实现服务器向客户端推送实时数据的 Web 技术。 SSE 允许服务器在建立的 HTTP 连接上发送事件流,而不需要客户端发起请求。相比于传统的请求-响应模式,它提供了一种服务器主动推送数据给客…

Python控制程控电源(USB)

文章目录 前言一、环境搭建1.软件安装2.硬件安装二、设置程控电源连接方式三、Python代码四、验证结果五、pyd文件前言 随着智能电动汽车行业的持续发展,汽车电子或嵌入式设备在软硬件的测试中,都会使用程控电源供电,特别是自动化测试、压力测试场景必定使用到程控电源控制…

nifi详细介绍--一款开箱即用、功能强大可靠,可用于处理和分发数据的大数据组件

目录 目录 一、引言 二、NiFi 的历史背景介绍 三、NiFi 是什么? 核心特性 应用领域 四、NIFI 入门 五 、NiFi 工作流程 六、实际应用场景 七、优势总结 一、引言 NiFi(Apache NiFi),全名为“Niagara Files”&#xff0…

Docker把容器打包成镜像并迁移到另外一台服务器上运行

在Docker中,您可以通过两个步骤将容器打包成镜像,并将该镜像保存到本地文件系统中。以下是具体步骤: 将容器提交为镜像: 使用 docker commit 命令可以将现有的容器状态保存为新的镜像。这个过程类似于创建一个镜像的快照。 假设您…

Oracle修改用户密码

文章目录 Oracle修改用户密码Oracle用户锁定常见的两种状态Oracle用户锁定和解锁 Oracle修改用户密码 使用sys或system使用sysdba权限登录,然后执行以下命令修改密码: alter user 用户名 identified by 密码;密码过期导致的锁定,也通过修改…

StratifiedGroupKFold解释和代码实现

StratifiedGroupKFold解释和代码实现 文章目录 一、StratifiedGroupKFold解释和代码实现是什么?二、 实验数据设置2.1 实验数据生成代码2.2 代码结果 三、实验代码3.1 实验代码3.2 实验结果3.3 结果解释 四、样本类别类别不平衡 一、StratifiedGroupKFold解释和代码…

Redis:原理速成+项目实战——初识Redis、Redis的安装及启动、Redis客户端

👨‍🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习 🌌上期文章:首期文章 📚订阅专栏:Redis速成 希望文章对你们有所帮助 在此之前,我做过的项目里面也用到了…

利用深度学习图像识别技术实现教室人数识别

引言 在现代教育环境中,高效管理和监控教室成为了一个重要议题。随着人工智能技术的迅猛发展,特别是深度学习和图像识别领域的突破,我们现在可以通过智能系统来自动识别教室内的人数,从而实现更加智能化的教室管理。 深度学习与图…

LeetCode 84. 柱状图中最大的矩形

84. 柱状图中最大的矩形 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例 1: 输入:heights [2,1,5,6,2,3] 输出:10 解释…

Spring-IOC综述

文章迁移自语雀。 怎么查看spring的文档 ioc综述 说到spring的ioc,其实就是控制反转,为啥需要控制反转呢,其实是为了功能的增强,如果不用spring, 我们直接使用工厂方法,静态工厂方法, 都是是可以获取到对象的,但是如果需求变了,我们在类的生成时,添加了很多信息,使用工厂就不…

【INTEL(ALTERA)】Arria V FPGA GPIO 引脚上的内部箝位二极管是否始终处于活动状态?

说明 当设备未通电或未配置设备时,英特尔 Arria V FPGA GPIO 引脚上的内部箝位二极管是否处于活动状态? 解决方法 根据 Arria V 器件手册:第 1 卷:设备接口和集成,片上钳位二极管功能通过 英特尔 Quartus Prime 软件…

【鸿蒙杂谈①】——鸿蒙基础介绍及应用领域

1.前言 小伙伴们大家好,最近被复习整的痛苦无比,所以今天咱们了解 一点轻松的东西,至于高并发就先放放吧。好了,废话不多说,咱们进入正题。 相信小伙伴们都已经看到了最近鸿蒙的势头了,那鸿蒙究竟是怎么发…

《Linux C编程实战》笔记:实现自己的myshell

ok,考完试成功复活 这次是自己的shell命令程序的示例 流程图: 关键函数 1.void print_prompt() 函数说明:这个函数打印myshell提示符,即“myshell$$”. 2.void get_input(char *buf) 函数说明:获得一条指令&#…

阿里云免费SSL证书有效期只有3个月?

阿里云免费SSL证书签发有效期从12个月缩短至3个月:尊敬的用户,根据供应商变更要求,免费证书(默认证书)的签发有效期将由12个月缩短至3个月。 免费证书(升级证书)的有效期不会改变。 没错&#…

Vue3-32-路由-重定向路由

什么是重定向 路由的重定向 :将匹配到的路由 【替换】 为另一个路由。 redirect : 重定向的关键字。 重定向的特点 1、重定向是路由的直接替换,路由的地址是直接改变的; 2、在没有子路由配置的情况下,重定向的路由可以省略 component 属性的配…

Langchain访问OpenAI ChatGPT API Account deactivated的另类方法,访问跳板机API

笔者曾经写过 ChatGPT OpenAI API请求限制 尝试解决 Account deactivated. Please contact us through our help center at help.openai.com if you need assistance. 结果如何? 没有啥用。目前发现一条曲线救国的方案。 1. 在官方 openai 库中使用 此处为最新Op…

【IC覆盖率】

覆盖率分享 1 覆盖率提高策略2 覆盖率类型2.1 代码覆盖率2.2 功能覆盖率2.3 Waive提高覆盖率 覆盖率是用于衡量设计的完备性,进行指导分析发现没覆盖到的盲区,通过修改约束或者追加定向case来提到覆盖率; 1 覆盖率提高策略 1.首先最先的是每…

全国计算机等级考试| 二级Python | 真题及解析(10)

一、选择题 1.要实现将实数型变量a的值保留三位小数,以下python可以实现的是( ) A.a%0.001 B.a//0.001 C.round(a,3) D.round(3,a) 2.在Python中要交换变量a和b中的值,应使用的语句组是( )。 A…

基于SpringBoot的医院档案管理系统设计与实现

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot的医院档案管理系统设计与…

思科校园网搭建及配置综合小型实验

思科校园网搭建及配置综合小型实验 实验拓扑配置步骤配置聚合链路配置VTP,vlan域模板第一步 配置二层VLAN第二步 配置生成树第三步 配置相关IP地址第四步 配置DHCP及DHCP中继第五步 配置三层的网关冗余协议 双机热备及OSPF第六步 配置静态路由,NAT地址转换及其他配置…