当前位置: 首页 > news >正文

自动化测试如何做?接口自动化测试框架必备的9个功能,测试老鸟总结...

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

当你准备使用一个接口自动化测试框架或者自造轮子的时候,或许你需要先了解下一个接口自动化测试框架必须具备什么功能。

Python自动化测试:https://www.bilibili.com/video/BV16G411x76E/

先说一下现企业场景的接口自动化测试框架模型已经配套框架。

Python接口自动化测试:Python+requests+pytest+yaml+alluer+Jenkins;
Java接口自动化测试:Java+Httpclient+TestNG+Jenkins;
当然还有很多其他二次开发的框架或工具,不过核心是一样的;

下面就来聊一聊一个接口自动化测试框架必须具备什么功能

1、校验
这个很好了解,如果没有校验,单纯的执行接口的话,那就谈不上测试了。所以支持对返回值校验是一个必须的功能。

2、数据隔离
数据隔离就是指具体的请求接口、参数、校验等数据做到与代码相隔离,便于维护,一旦需要调整接口用例、新增接口用例时可很快速的找到位置,隔离的另一个好处就是可复用,框架可以推广给其他团队,使用者可以使用相同的代码,只需要根据要求填写各自用例即可测试起来。

3、数据传递
做到数据隔离可维护后,数据传递是另外一个更重要的需求。

数据传递是指接口用例之间可以做到向下传参,例如我们通过创建订单接口创建一个订单,该接口会返回一个订单号,接下来我们要进行调用查询订单的接口,从返回的数据中与创建订单用例中的数据进行校验,此时第二个接口的请求数据是需要从第一个接口用例中的返回中提取的。

这样的例子比比皆是,所以支持数据传递是又一个必不可少的功能。

4、动态函数
实际用例场景中我们可能会有随机生成一个手机号、字符串加密等需求,在数据与代码隔离之后,此时我们就需要代码可以支持做到识别对应关键字时可以执行对应的函数进行填充。例如在数据中填写phone()时,具体执行时会被替换成150XXXXXXXX,填写random(5)时,会被替换成一个五位的随机数。等等。

5、可配置
有时,我们的需求是用例不单单只能在一个环境上执行,可能需要同一份接口用例可以在QA、预发、线上等多个环境都可以执行。所以框架需要做到可配置,便于切换,调用不同的配置文件可以在不同的环境执行。

6、日志
日志包含执行的具体执行接口、请求方式、请求参数、返回值、校验接口、请求时间、耗时等关键信息,日志的好处一来是可以便于在新增用例有问题时快速定位出哪里填写有问题,二来是发现bug时方便向开发反馈提供数据,开发可以从触发时间以及参数等信息快速定位到问题所在。

7、可视化报告
用例执行后,就是到了向团队展示结果的时候了,一个可视化的报告可以便于团队成员了解到每次自动化接口用例执行的成功数、失败数等数据。

8、用例驱动
用例的驱动模式,涉及到怎么存放测试数据,怎么描述用例,又如何复用;
考虑到效率的话还要支持并发;
当然测试报告不能光记录成功和失败,还有用例执行耗时,接口调用耗时,场景的通过率等各项数值的统计。

接口自动化测试数据驱动的具体步骤如下:

定义测试数据:根据具体的测试需求,准备符合测试场景的数据集合。
编写测试脚本:根据测试需求编写相应的测试脚本,程序中通过读取测试数据文件实现数据驱动,对接口进行自动化测试,并记录测试结果。
执行测试:使用测试框架或工具执行测试脚本,并根据测试数据驱动自动生成测试报告。
分析测试结果:根据测试报告和统计信息对测试结果进行分析和评估,发现并解决潜在的问题。

9、数据隔离
用例是否能复用应该跟用例的设计有关系,跟框架关系不是很大。
并发的话在接口自动化方面倒不是必须的,当然有是更完美的。
报告确实是越强大越好,有老板关心的数据,有开发关心的数据是最好不过了。

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

每个人都有一个属于自己的舞台,只要你努力拼搏,总会有一天闪耀光芒。不要被眼前的困难吓倒,要有勇气迎接挑战。相信自己,坚持到底,成功就在不远处!

生命就像赛车,选择了速度便不会有太多时间去后悔。大胆地加油冲刺吧!即使风雨颠簸,也要坚持不懈地追寻梦想。彼岸的风景属于勇往直前者,相信自己,绝不放弃!

生命就像一支舞曲,或快或慢,但每个人都有自己的节奏。不必担心别人跳得好坏,只需静心聆听内心的旋律,跟随自己的步伐前行。无论何时,都要相信自己,勇敢前行!

相关文章:

自动化测试如何做?接口自动化测试框架必备的9个功能,测试老鸟总结...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 当你准备使用一个…...

ANR原理篇 - ANR原理总览

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 文章目录 系列文章目录前言ANR流程概览ANR触发机制一、service超时机制二、broadcast超时机制三、provider超…...

新版Mamba体验超快的软件安装

在一文掌握Conda软件安装:虚拟环境、软件通道、加速solving、跨服务器迁移中详细介绍的conda的基本使用和遇到问题的解决方式,也提到了mamba作为一个替代工具,可以很好的加速conda的solving environemnt过程。但有时也会遇到一个很尴尬的问题…...

LDAP配置与安装

LDAP配置与安装 一、安装LDAP1、安装OpenLDAP及相关依赖包2、查看OpenLDAP版本3、配置OpenLDAP数据库4、设置OpenLDAP的管理员密码5、修改配置文件5.1. 修改{2}hdb.ldif文件5.2. 修改{1}monitor.ldif文件5.3. 修改{-1}frontend.ldif文件 6、验证LDAP的基本配置7、修改LDAP文件权…...

1-Linux环境安装JDK

Linux环境安装JDK 准备: ① Linux 环境 本文中Linux环境为 CentOS Linux 7 可使用以下命令查询 linux 系统版本: hostnamectl② 准备JDK包 进入官网 https://www.oracle.com/java/technologies/downloads/#java17下载对应jdk包 此处使用以前下载的旧…...

通胀数据回落助金价小幅回升

现货黄金窄幅震荡,目前交投于2032.92美元/盎司附近。隔夜美国通胀数据弱于市场预期,市场对美联储6月份加息预期降温,美元指数走弱,金价一度冲高至2050关口附近,不过,随后金价回吐全部涨幅,并一度…...

正则表达式的基本语法以及技巧和示例

正则表达式(Regular Expression)是一种强大的文本模式匹配工具,它使用特定的语法规则来描述和匹配字符串。在实际应用中,正则表达式可以用于搜索、替换、验证和分割文本数据。本文将详细解释正则表达式的语法和常用的使用示例。 …...

蓝牙耳机怎么挑选?小编分享2023畅销蓝牙耳机排行榜

蓝牙耳机怎么挑选?蓝牙、音质、续航、佩戴是蓝牙耳机选购时最重要的四大维度,这几年随着技术的成熟体验有了很大改善,但挑选的时候仍然要仔细对比,不然容易踩雷。小编根据销量整理了蓝牙耳机排行榜,一起看看最受消费者…...

Linux快照太有趣了!

1.首先介绍一下什么是Linux快照 VMware 的菜单栏中有虚拟机快照这个选项,形象来说快照就相当于一个备份文件,记录的是虚拟机运行到某一节点时的状态,在虚拟机的使用过程中如果发生了意外,比如系统崩溃或系统异常,此时…...

【改进粒子群优化算法】自适应惯性权重粒子群算法(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

ROS 下 激光扫描仪 YDLidar-G4 使用

环境配置: ubuntu20.04 LTS ROS noetic 编程工具:vs code,远程通过ssh访问 扫描仪:YDLidar-G4 YDLidar驱动: YDLidar SDK YDLidar ROS 功能包 此环境包含树莓派,以下过程在树莓派3B上测试通过&#xff0c…...

智能边缘:数字化时代的关键战略之一

随着物联网、云计算和人工智能等技术的快速发展,智能边缘已经成为了许多企业和组织中的重要部分。智能边缘旨在将物联网设备、应用程序和数据存储集成到一个统一的、移动的计算环境中,以提高效率、降低成本并增强数据安全性。在本文中,我们将…...

EasyRecovery16中文最新版电脑数据恢复软件下载使用教程

EasyRecovery如果需要使用它来恢复数据,请注意,尤其是当需要恢复的数据文件非常重要时,建议使用软件EasyRecovery以保障数据安全。共有三个版本,分别是个人版、专业版、企业版,这三种都可以免费下载并使用,…...

什么是鉴权?这些postman鉴权方式你又知道多少?

一、什么是鉴权? 鉴权也就是身份认证,就是验证您是否有权限从服务器访问或操作相关数据。发送请求时,通常必须包含相应的检验参数以确保请求具有访问权限并返回所需数据。通俗的讲就是一个门禁,您想要进入室内,必须通过…...

最新的经典mysql面试题及答案

互联网产品必然是需要有架构的,架构包含接入层、储蓄层、逻辑处理等等,其中存储层承载着数据落地和持久化的任务,同时给逻辑处理层提供数据查询功能支持。而一提到储蓄层必然就要说数据库了,对于数据库的掌握也是软件工程师面试时…...

算法修炼之练气篇——练气十九层

博主:命运之光 专栏:算法修炼之练气篇 前言:每天练习五道题,炼气篇大概会练习200道题左右,题目有C语言网上的题,也有洛谷上面的题,题目简单适合新手入门。(代码都是命运之光自己写的…...

记录一次Windows7操作系统渗透测试

#本文档仅用于实验,请勿用来使用恶意攻击! 《中华人民共和国网络安全法》中,恶意破坏计算机信息系统罪在第二十七条被明确规定,规定内容为: 第二十七条 任何单位和个人不得为达到破坏计算机信息系统安全的目的&#x…...

承诺协议:定义 构造

文章目录 安全性定义方案构造基于 OWP 存在性基于 DL 假设基于 OWF 存在性基于 DDH 假设 总结 安全性定义 承诺协议(Commitment Scheme)是一个两阶段的两方协议。一方是承诺者(Committer) C C C,另一方是接收者&#…...

二、easyUI中的layout(布局)组件

1.layout(布局)组件的概述 布局容器有5个区域:北、南、东、西和中间。中间区域面板是必须的,边缘的面板都是可选的。每个边缘区域面板都可以通过拖拽其边框改变大小,也可以点击折叠按钮将面板折叠起来。布局可以进行嵌…...

MySQL---聚合函数、字符串函数、数学函数、日期函数

1. 聚合函数 数据准备: create database mydb4; use mydb4;create table emp(emp_id int primary key auto_increment comment 编号,emp_name char(20) not null default comment 姓名,salary decimal(10,2) not null default 0 comment 工资,department char(20…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...

GitFlow 工作模式(详解)

今天再学项目的过程中遇到使用gitflow模式管理代码&#xff0c;因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存&#xff0c;无论是github还是gittee&#xff0c;都是一种基于git去保存代码的形式&#xff0c;这样保存代码…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量&#xff1a;setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...

【LeetCode】算法详解#6 ---除自身以外数组的乘积

1.题目介绍 给定一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O…...

数据库正常,但后端收不到数据原因及解决

从代码和日志来看&#xff0c;后端SQL查询确实返回了数据&#xff0c;但最终user对象却为null。这表明查询结果没有正确映射到User对象上。 在前后端分离&#xff0c;并且ai辅助开发的时候&#xff0c;很容易出现前后端变量名不一致情况&#xff0c;还不报错&#xff0c;只是单…...