如何搭建自动化测试平台

“自动化测试”有何优势?
  • 具有一致性和重复性的特点,而且测试更客观,提高了软件测试的准确度、精确度和可信任度。

  • 可将任务自动化,能够解放人力去做更重要的工作。

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

  • 可以模拟复杂的测试场景完成人工无法完成的测试,如负载测试、压力测试等。

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

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

自动化测试平台一般搭建步骤:

确定需求:明确需要测试的API接口和功能,以及测试平台的具体要求。

框架技术选择:

  • 大多数框架采用java语言或是python语言来实现,考虑到python容易掌握,各种库也比较全,所以采用python语言来实现。python自动化框架最常用的有unittest和pytest,两者都可以,这里采用python自带的unittest。

  • 对于WEB UI自动化测试,没有别的选择,基本都是采用selenium来驱动浏览器来完成。

  • 对于接口自动化测试,可采用的办法较多,postman、jmeter都可以,但灵活性都不如直接采用python的request库。

  • 数据驱动,由于unittest没有直接可用的dataprovider,采用常见的ddt来实现。

  • 测试数据,第1阶段采用excel管理,对于大型系统,建议直接采用数据库进行管理。

编写测试用例:根据API接口文档和需求,编写测试用例,包括正常流程和异常流程的测试场景。

API测试用例主要由4个部分组成,分别是:用例的基础信息、前置步骤、请求脚本以及断言。

前置步骤用于为执行用例请求做前置准备,分为:前置请求、生成随机数据、前置等待3种类型。

请求脚本中包含了:选择请求方式、维护URL、维护请求头、请求参数或请求体,同时还能从对应的响应结果中提取出变量供后续的用例引用。

断言用于对用例执行后的响应结果做判断,判断请求执行后的响应结果是否满足我们的预期。若满足,则称之为:通过断言;不满足,则为:不满足断言;

配置环境:搭建测试环境,包括安装和配置开发工具、测试框架、数据库等。

开发工具环境:

1.Python解释器

2.Pycharm编码工具

Web端:

1.浏览器

2.浏览器驱动程序

依赖包:

1.Selenium

2.pytest

3.pytest-html

工程目录:

1.base-基类python package

2.page-PO封装python package

3.case-测试用例python package

4.data-数据文件Directory

5.report-测试报告Directory

6.log-日志文件Directory

7.screenshot-截图文件Directory

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

9.utils.py-工具类文件

实现接口自动化:使用测试框架提供的API和工具,编写自动化测试脚本,发送请求并验证响应结果。

数据准备:根据测试用例的需求,准备测试数据,包括创建、修改、删除等操作。

执行测试:执行自动化测试脚本,生成测试报告,并进行结果分析和问题定位。

持续集成工具:将自动化测试脚本集成到持续集成工具中,如Jenkins、Travis CI等,实现自动触发和定时执行。

监控和报警:设置监控和报警机制,及时发现和解决测试环境和接口异常。

维护和优化:定期维护和优化测试用例和测试脚本,保证测试平台的稳定性和可靠性。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【CKA模拟题】StorageClass实战案例分析

Useful Resources: Storage Classes , Persistent Volumes Claim , Pods 题干 For this question, please set this context (In exam, diff cluster name) kubectl config use-context kubernetes-adminkubernetes Create a Storage Class named fast-storage with a provis…

用于无人机小型化设计的高精度温补晶振

用于无人机小型化设计的高精度温补晶振:TG2016SMN和TG2520SMN。无人机的发展可以说是非常的迅速,在安防,农业,交通,电力,直播等领域经常能看到无人机大显身手。无人机的应用场最是非常的广泛,功能更强&…

EVM Layer2 主流解决方案

深度解析主流 EVM Layer 2 解决方案:zk Rollups 和 Optimistic Rollups 随着以太坊网络的不断演进和 DeFi 生态系统的迅速增长,以太坊 Layer 2 解决方案日益受到关注。 其中,zk Rollups 和 Optimistic Rollups 作为两种备受瞩目的主流 EVM&…

【学习】成为优秀的软件测试工程师需要学哪些知识

成为软件测试工程师,需要学习的内容非常的多,但是无非是这几大类,今天就和小编一起来看看这些知识,你是否都已经掌握。 01、测试环境的搭建 本部分主要是学习从操作系统开始,有关的计算机基础知识、软件和硬件知识、…

Python基于深度学习的人脸识别项目源码+演示视频,利用OpenCV进行人脸检测与识别 preview

​ 一、原理介绍 该人脸识别实例是一个基于深度学习和计算机视觉技术的应用,主要利用OpenCV和Python作为开发工具。系统采用了一系列算法和技术,其中包括以下几个关键步骤: 图像预处理:首先,对输入图像进行预处理&am…

[Leetcode笔记] 动态规划相关

前言 写题目写到了一些和动态规划相关的内容,所以在这里记录一下 LCR 089 题解思路 总的来说,就是用一个数组去存储当前的最优解,然后从0开始一路向上顺推过去,求得最后一位的最优解。 class Solution { public:int rob(vect…

CAD绘制A1图框的技巧

CAD如何绘制A1图框?这里给大家介绍下: 输入REC,绘制矩形第一点 输入D并输入841,594 文章源自四五设计网-https://www.45te.com/44546.html 输入O,框选图框,将其偏移10文章源自四五设计网-https://www.45te.com/44546…

mysql 判断一张表是否存在的方法

查询表是否存在 使用 SHOW TABLES SHOW TABLES LIKE %tbl_tabl%;结果: 查询 INFORMATION_SCHEMA // like 匹配 SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA test AND TABLE_NAME like %tbl%; // 完全匹配 SELECT TABLE_NAME FROM INFORMATION_SC…

OSPF实验1

1,配置IP地址 [R1]dis ip interface brief Interface IP Address/Mask Physical Protocol GigabitEthernet0/0/0 200.1.1.1/24 up up GigabitEthernet0/0/1 10.1.1.1/24 up …

车载通信与DDS标准解读系列(4):DDSI-RTPS协议

▎什么是RTPS 在DDS协议中,主要描述了实现数据分发服务的DCPS模型和QoS策略,但是我们还不清楚数据怎样在网络中传输,想要了解这些内容,就需要请出咱们的数据搬运工——RTPS。 RTPS全称是Real-Time Publish-Subscribe Protocol&a…

8.java openCV4.x 入门-Mat之多维元组(Tuple)

专栏简介 💒个人主页 📰专栏目录 点击上方查看更多内容 📖心灵鸡汤📖我们唯一拥有的就是今天,唯一能把握的也是今天建议把本文当作笔记来看,据说专栏目录里面有相应视频🤫 🧭文…

【原创教程】EPLAN中伺服的制图方法

首先在EPLAN里制作伺服之前,需要有伺服的手册,根据手册里的各个引脚号的说明来制图,这里我们讲解西门子和三菱这两种品牌型号的。 1、下图是西门子的伺服,型号为:6SL3040-1LA01-0AA0 2、第一步我们需要绘制出黑盒来表示伺服的整体外框 选择插入—盒子—黑盒 3、在图纸…

ansible-自动化工具

一、ansible概述 不是C/S架构,就是一种工具 1:linux自动化运维 编写程序实现运维自动化:shell python 工具模式自动化: ①OS Provisioning: RedHat satellite;PXE(可实现dhcp和tftp&#…

cache/TLB里分别都有什么?

快速链接: 【精选】ARMv8/ARMv9架构入门到精通-[目录] 👈👈👈 cache cache里都有什么? 或者问cache line(即每个entry)里都有什么? 答案是 : TAG DATA invalid bit dirty bit 那么TAG里又都…

归并排序和分治

归并排序 归并排序是利用归并的思想实现的排序方法,该算法采用经典的分治策略(分治法将问题分成一些小的问题然后递归求解,而治的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。 分而治之 可以看到这种结构…

LeetCode-142. 环形链表 II【哈希表 链表 双指针】

LeetCode-142. 环形链表 II【哈希表 链表 双指针】 题目描述:解题思路一:快慢指针 判断是否有环见解题思路二:set()解题思路三:0 题目描述: 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如…

The Sandbox 与 Otherworld 合作推出元宇宙网络漫画中心

​ The Sandbox 将与韩国初创公司 Otherworld 合作,建立一个元宇宙网络动漫中心,为用户提供基于 KakaoPage 热门 IP 的各种体验。 Solo Leveling 是此次合作的第一个 IP。这部网络动画将深入主人公Sung Jinwoo的生活,并与 NFT 进行整合。随后…

面试算法-122-翻转二叉树

题目 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] 解 class Solution {public TreeNode invertTree(TreeNode root) {return dfs(…

SpringBoot项目启动成功,但是调用接口直接报NOT FOUND 404

问题描述 SpringBoot项目启动成功,但是调用接口直接报NOT FOUND 404 解决办法 启动类中ComponentScan(basePackages {“com.afclab”})中的扫包路径和项目路径不一样,导致扫不到Controller等组件,修改成和项目路径一样就可以解决&#xf…

科技团队治理能力成长路线图

点击👆蓝字 关注我们 本文观点|吴穹 主笔|AI小助手 温馨提示:干货长文,建议收藏阅读喔~ 引言 2024年3月20日,吴穹博士于上海交通大学上海高级金融学院同一众信托行业金融科技管理者进行了《金融…