接口自动化测试要做什么?

作者:不辣的皮皮
链接:https://www.zhihu.com/question/384727359/answer/1124441469
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

可以分为四个步骤/阶段。

原理 》 业务逻辑》 工具》 自动化测试脚本与框架

所谓原理,指的是接口是什么,依赖于何协议来进行传输,请求和响应是如何发生并完成其效果的。

拿http协议来说,你需要学习计算机网络,并且理解你的测试是在网络七层中的第七层。你还需要知道http协议有请求,有响应,以及其中包含了什么。

restful api风格也是值得一看的东西。

所谓业务逻辑,指的是你要测试的服务,是怎样利用上述协议能力,达成自己需要的业务逻辑的。此处大概率你需要研发给出一个清楚的接口文档。

例如,登录后的session,可以用login请求(body中带用户名密码),响应返回session token(利用响应头的set cookie)实现。

例如,当接口返回不正常时,它可以使用响应状态码非200来表达,也可以是响应体json中的code字段。

这样,你不仅理解了该如何进行一次接口请求,也知道怎么样的接口响应是预期值(从而得知什么样的情况是bug)

在以上两点搞明白了之后,你就可以用工具来进行“手工的”接口测试了。

你需要的工具一般分为两类:

一是请求发送和收取工具,例如postman和jmeter。当然jmeter可以作为简易的自动化or性能测试工具。

二是抓包工具,这主要是进行辅助验证。正所谓,“遇事不决先抓包”,黄金定律,切莫瞎猜,眼见为实。工具例如chrome开发者工具F12,fiddler,wireshark,tcpdump等。如果你同时有涉及UI的测试,chrome开发者工具就很重要了,可以帮助你分辨前端bug或后端bug。

最后,我们才开始把上述过程自动化。

此时你需要选择你的语言和框架,例如pytest on python,testng on java。这个教程就很多了,此处就不多说了。

而后,你还可以进行的是:

1 让研发提供的接口文档标准化。例如使用swagger和thrift。这样你可以自动生成部分测试代码。

2 自动化环境准备,数据准备。

3 自动化持续集成,即代码合入,环境部署,测试,打包发布这一整条流水线。

4 优化测试框架。

切忌跳过前面几个步骤,直接看自动化测试框架,循序渐进为好。

 总结

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

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

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/608927.shtml

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

相关文章

【现代密码学】笔记3.1-3.3 --规约证明、伪随机性《introduction to modern cryphtography》

【现代密码学】笔记3.1-3.3 --规约证明、伪随机性《introduction to modern cryphtography》 写在最前面私钥加密与伪随机性 第一部分密码学的计算方法论计算安全加密的定义:对称加密算法 伪随机性伪随机生成器(PRG) 规约法规约证明 构造安全…

Python算法例34 寻找丢失的数

1. 问题描述 给一个由1~n的整数随机组成的一个字符串序列,其中丢失了一个整数,本例将找到它。 2. 问题示例 给出n20,str19201234567891011121314151618,丢失的数是17。 3. 代码实现 def find_missing_number(n, string):nums…

正则表达式手册

文章目录 一、表达式全集二、常见的正则表达式1. 校验数字的表达式2. 校验字符的表达式3. 特殊需求表达式 一、表达式全集 字符描述\将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“n”匹配字符“n”。“\n”匹配一…

【代码随想录】刷题笔记Day47

前言 又过了个愉快的周末~大组会终于不用开了,理论上已经可以回家了!但是我多留学校几天吧,回家实在太无聊了,也没太多学习的氛围 198. 打家劫舍 - 力扣(LeetCode) dp[i]含义 考虑下标i(包括…

【leetcode】力扣算法之两数相加【中等难度】

题目描述 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都…

Qt5.14.2实现将html文件转换为pdf文件

文章目录 简介源码widget.cppwidget.uihtml文件演示效果简介 QPdfWriter是Qt框架中用于创建和写入PDF文件的类。它允许您在您的Qt应用程序中动态生成并输出PDF文档,以便进行打印、保存或导出。 QPdfWriter类提供了以下一些常用的函数和方法,可以让您创建和定制PDF文件: 构…

ASM磁盘管理:从初始化参数到自动化管理的全面解析

文章目录 一、引言二、ASM初始化参数三、ASM三大系统权限四、ASM实例的启停1.Oracle ASM的启停可以通过两种方式进行2.查看集群中的资源状态3.配置 ASM资源随着系统启动而启动4.配置数据库实例随着ASM启动而启动 五、数据库实例与ASM的交互六、 启动策略详解七、 ASM后台进程八…

Hugging face库

1. Transformers 是NLP, CV, audio,speech processing 任务的库。 它包含了超过10000个预训练的模型,涵盖了各种NLP任务,如文本分类,问答,文本生成,情感分析等。Transformers库支持多种深度学习框架&#…

MySQL决战:MySQL数据导入导出

目录 前言 一.navact数据导入导出(第三方工具) 1.导入数据 2.数据导出 二. mysqldump命令导入导出数据 1.mysqldump介绍 2.数据导出 3.数据导入 三.load data file进行数据导入导出(只限于单表) 1.数据导出 增加导出权…

python算法每日一练:连续子数组的最大和

这是一道关于动态规划的算法题: 题目描述: 给定一个整数数组 nums,请找出该数组中连续子数组的最大和,并返回这个最大和。 示例: 输入:[-2, 1, -3, 4, -1, 2, 1, -5, 4] 输出:6 解释&#xff…

linux系统基础知识-基础IO

IO 概念引入位图的概念IO的系统调用函数openwriteread()close简单使用样例: 文件描述符fd默认文件流stdin/stdout/stderr文件描述符的分配规则 重定向的概念输出重定向输入重定向追加重定向dup2()系统调用总结 文件缓冲区深入理解缓冲区的概念输出缓冲区部分代码解释…

WEB 3D技术 three.js 线框几何体

本文 我们说一下 线框几何体 想将一个几何体 以线框形式展现 threeJS中 有两种类可以实现 第一种 WireframeGeometry 这种几何体 其实就类似于 将材质中的 wireframe 开启 这种方法 之前我们也用过 还有一种 就是 EdgesGeometry 边缘几何体 我们先将代码写成这样 import .…

【深度学习每日小知识】Data Augmentation 数据增强

数据增强是通过对原始数据进行各种转换和修改来人工生成附加数据的过程,旨在增加机器学习模型中训练数据的大小和多样性。这对于计算机视觉领域尤为重要,因为图像经常被用作输入数据。 计算机视觉中的数据增强 数据增强的主要目标是解决过拟合问题&…

使用迭代优化递归程

王有志,一个分享硬核Java技术的互金摸鱼侠加入Java人的提桶跑路群:共同富裕的Java人 今天我们将会分析上篇文章中递归算法存在的问题,并通过迭代去优化。 递归存在的问题 上一篇中,我们计算了序号10以内的斐波那契数。今天为了清…

【Leetcode】236.二叉树的最近公共祖先

一、题目 1、题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 示例1…

商品秒杀总结

秒杀模块编写思维总结 分为两种模式一个是限时购买,一个是限裤购买。 我们这里使用的是指定时间段下面的限库购买 单独使用一个库来存储数据,下面有两张表,一张表是具体的商品,一张表是订单。用户下的订单数据都要放到redis 中…

【Linux】journalctl和dmesg日志的区别

journalctl 和 dmesg 是两个在 Linux 系统中查看日志信息的工具,它们提供了不同层次和角度的系统日志。 journalctl: journalctl 是 systemd-journald 服务的一个前端,用于检查和查询系统日志。它使用 systemd 的日志系统,将日志信…

每日coding

今天无意点进一个回文串的题目,对于回文串我第一印象就用双指针,但是确实没写出来,看了评论区题解,绝大多数都是用dp来做的,但是找到一个用双指针做的,刚好延续思路,先把题目贴出来。 5、最长回…

64、图片预处理:Normalize

上一篇介绍了图像预处理中 resize 和 crop 的概念,在仓库的 python 预处理函数中,在 resize 和 crop之后,还有几个预处理的过程:一个是归一化,另外就是transpose 和reshape。 这一节就介绍一下,为什么在推理之前还需要对图像进行归一化。 归一化(Normalization) 在深…

Python用法:if __name__ == “__main__“的作用

文章目录 前言一、__name__是什么二、if __ name__ == __ main__语句的使用1.tempconv.py2.calc.py三、存在的问题查看__name__属性:四、总结前言 与C语言不同,Python是一种解释型脚本语言,在执行之前不同要将所有代码先编译成中间代码,Python程序运行时是从模块顶行开始,…