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

题主的意思,搭建的自动化测试框架要包括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.mzph.cn/news/890300.shtml

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

相关文章

基于java web在线商城购物系统源码+论文

一、环境信息 开发语言:JAVA JDK版本:JDK8及以上 数据库:MySql5.6及以上 Maven版本:任意版本 操作系统:Windows、macOS 开发工具:Idea、Eclipse、MyEclipse 开发框架:SpringbootHTMLjQueryMysq…

光谱相机在农业的应用

一、作物生长监测1、营养状况评估 原理:不同的营养元素在植物体内的含量变化会导致植物叶片或其他组织的光谱反射率特性发生改变。例如,氮元素是植物叶绿素的重要组成部分,植物缺氮时,叶绿素含量下降,其在可见光波段&a…

【WRF教程第3.1期】预处理系统 WPS 详解:以4.5版本为例

预处理系统 WPS 详解:以4.5版本为例 每个 WPS 程序的功能程序1:geogrid程序2:ungrib程序3:metgrid WPS运行(Running the WPS)步骤1:Define model domains with geogrid步骤2:Extract…

桌面图形界面生成原理:从流水灯到电脑屏幕

桌面图形界面是我们在使用电脑时接触最多的一个部分。它的美观、简洁、易用都给我们的生活带来了极大的便利。但是,你是否想过,这样的界面是如何生成的呢?让我们从流水灯的原理开始,一步步揭开桌面图形界面生成的奥秘。 一、流水…

IIC I2C子协议 SMBus协议 通信协议原理 时序 SMBus深度剖析

引言:系统管理总线(SMBus)是一种双线接口,通过该接口,各种系统组件芯片和设备可以相互以及与系统其他部分通信。它基于IC总线的操作原理。附录B提供了一些SMBus特性与IC总线不同的方式的描述。 SMBus为系统和电源管理相…

深入浅出:内网黄金票据与白银票据

在域环境中,Kerberos认证是确保安全通信的基石,而黄金票据和白银票据则是攻击者常用的两种经典手段。为了帮助大家更形象地理解它们的工作原理及防御措施,我们不妨将其与在私人电影院购票的情景做类比。具体内容参考如下图示即可:…

三维天地ELN助力职业卫生领域实验室无纸化、自动化

平台简介 随着国家对环保行业的日益重视,与环保行业息息相关的检测行业方法体系也越来越完善和规范。北京三维天地科技股份有限公司(以下简称“三维天地”)长期以来专注于实验室数智化建设,在环保行业拥有众多成功案例,通过自主研发的实验室信息管理系统(SW-LIMS),为客户提供完…

【渗透测试】|brupsuit的使用

一、 1.1爆破模块: 1、将拦截发送到intruder模块 2、在intruder模块设置pyaload位置 3、选择攻击类型 4、 5、设置好攻击类型和payload集就可以点击开始攻击,点击后弹出具体攻击详情 6、【payloads】模块相关 6.1 payload集为【简单列表】 添加&…

SpringBoot+Vue3实现阿里云视频点播 实现教育网站 在上面上传对应的视频,用户开会员以后才能查看视频

要使用阿里云视频点播(VOD)实现一个教育网站,其中用户需要成为会员后才能查看视频,这个过程包括上传视频、设置权限控制、构建前端播放页面以及确保只有付费会员可以访问视频内容。 1. 视频上传与管理 创建阿里云账号&#xff…

Docker搭建kafka环境

系统:MacOS Sonoma 14.1 Docker版本:Docker version 27.3.1, build ce12230 Docker desktop版本:Docker Desktop 4.36.0 (175267) 1.拉取镜像 先打开Docker Desktop,然后在终端执行命令 docker pull lensesio/fast-data-dev …

B树的性质和插入过程

性质 平衡性:所有叶子节点都在同一层多路:m 阶 B 树 最多: m 个分支,m-1 个元素 最少: 根节点 2 个分支 1个元素 其他节点 ⌈ m / 2 ⌉ \lceil m/2\rceil ⌈m/2⌉ 个分支 ⌈ m / 2 ⌉ \lceil m/2\rceil ⌈m/2⌉ −…

基于预测反馈的情感分析情境学习

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

Qt设置部件的阴影效果

QT中的比如QWidget,QLabel,QPushbutton,QCheckBox都可以设置阴影效果,就像这样: 以QWidget为例,开始尝试使用样式表的形式添加阴影,但没有效果,写法如下: QWidget#widget1::shadow{color: rgb…

AS-REP Roasting离线爆破攻击

针对一个域内用户,其账户选项有个设置叫作 “不要求 kerberos 预身份验证”,它默认是关闭的。 当 “不要求 kerberos 预身份验证” 选项被勾选,会出现以下效果: as-req 报文中不需要添加用户 hash 加密的时间戳,自动返…

JMeter配置原件-计数器

一、面临的问题: 由于本人的【函数助手对话框】中counter计数器每次加2,且只显示偶数(如下图所示),因此借助【配置原件-计数器】来实现计数功能。 如果有大佬知道解决方式,麻烦评论区解答一下,谢谢。 二、配置原件-c…

基于“2+1 链动模式商城小程序”的微商服务营销策略探究

摘要:本文探讨在竞争激烈的市场经济与移动互联网时代背景下,微商面临的机遇与挑战。着重分析“21 链动模式商城小程序”如何助力微商改变思路,通过重视服务、提升服务质量,以服务营销放大利润,实现从传统微商模式向更具…

Grad-CAM-解释CNN决策过程的可视化技术

Grad-CAM(Gradient-weighted Class Activation Mapping)是一种用于解释卷积神经网络(CNN)决策过程的可视化技术。其核心思想是通过计算分类分数相对于网络确定的卷积特征的梯度,来识别图像中哪些部分对分类结果最为重要…

文件防泄漏 | 文件防泄漏软件解决方案分享,网络数据泄露防护系统

文件防泄漏 | 文件防泄漏软件解决方案分享,网络数据泄露防护系统 企业面临的一大挑战是数据安全和隐私保护。 网络数据泄露不仅会导致经济损失,还会损害企业的声誉和客户关系。 为了应对这一挑战,域智盾软件应运而生,成为众多企…

EGO Swarm翻译

目录 摘要 Ⅰ 介绍 Ⅱ 相关工作 A . 单四旋翼局部规划 B . 拓扑规划 C. 分布式无人机集群 Ⅲ 基于梯度的局部规划隐式拓扑轨迹生成 A.无需ESDF梯度的局部路径规划 B.隐式拓扑轨迹生成 Ⅳ 无人机集群导航 A 机间避碰 B. 定位漂移补偿 C. 从深度图像中去除agent Ⅴ …

直流充电桩基本工作原理

1、控制导引电路 2、电动汽车直流快充工作原理 1)第一阶段 未充电自然状态阶段 充电枪处于自然阶段,充电枪上的按钮没有按下,也就是电路图中的开关S处于接通状态,此时R1 、 R2串联,检测点1处的电压为6V 2)…