接口测试如何测?最全的接口测试总结,资深测试老鸟整理...

news2024/11/20 23:29:59

目录:导读

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


前言

1、接口测试的流程

1)找后端拿接口文档
2)写测试计划
3)分析接口(确认接口之间的业务关系)
4)写用例,评审用例
5)执行用例去测试(自动化:根据用例编写脚本)
6)结果分析
7)bug提交
8)修复后,回归测试

2、一般的接口文档

请求参数、返回参数、URL、请求方式

3、接口用例包含

用例标题,优先级,所属模块,资源路径,请求参数,请求方式,测试数据,预期结果(应该有结果),实际结果

4、接口测试的关注、测试点

接口测试汇总:
参数测试、返回值验证、业务数据、接口之间、DB验证

1)参数测试
针对输入参数和输出参数的测试,包括对类型、长度、校验判断等
异常参数:参数不合法输入,考虑接口内部逻辑错误的异常提示,这些体现在完备的responsecode错误代码中。

2)返回值验证
正确返回:返回的code是否正确,返回的数据是否和DB一致
异常返回:是否定义全面,存在遗漏

3)业务数据
单个参数要符合业务数据属性或定义
多个参数值之间要具有业务含义,赋值需要考虑业务上一一对应的业务关系

4)接口之间
多个接口之间的数据是否存在关联

5)DB验证
接口逻辑是否落地到DB
DB存储数据是否准确

5、有依赖关联的接口

比如B接口的请求参数是A接口的响应数据
我们需要请求A接口,拿到数据后,把需要的数据提取出来,放入B接口进行请求
具体实现的话使用我们常用的那些工具都可以,像postman,Jmeter,python脚本都行

1)postman:请求A接口,在Tests脚本里面写js代码,将数据解析后提取想要的数据,存为全局/环境变量,在B接口请求的时候关联使用({{id}})

2)Jmeter:请求A接口,给A接口添加后处理器–正则提取器,通过正则的方式,将数据提取出来变成用户变量,在B接口中关联使用(${id})

3)python: 使用requests请求A接口,拿到响应后解析成json,然后取出想要的数据,进行B接口的请求,将取出的参数塞入即可

6、Postman工具

postman是一款强大的http调试工具,一般使用它来做接口测试。

常用功能:
1)创建测试和生产环境,添加相对的环境变量,比如baseurl
2)创建接口集,里面添加项目接口
3)添加接口集,可以发起get/post/delete/put等请求
4)GET请求查询参数放入params中,post请求参数放入bady中,可以是普通键值对,json/html/xml/文件,请求头都是放入headers里面

5)pre-request script预处理脚本,在发起网络请求之前会调用的js代码,可以再里面换取一些动态的参数,比如时间戳,随机数等

6)tests脚本,再发起网络请求成功拿到响应之后调用,可以在里面添加断言,判断响应数据是否正确

7)mock测试,模拟服务器返回自己想要的测试数据

8)参数化:环境变量,全局变量,csv参数化

1.写一个csv/txt文档,把测试数据放入
2.建接口集,里面写接口
3.接口传递的参数不能写死,使用关联的方式({{key}}),key应该是csv文件表头名字
4.双击接口集,点击右上角的run,打开Runner
5.配置参数:
Iterations(迭代次数)
Delay: 延迟对应的事件发起请求
data:选择csv文件
Data file type: 选择文件的类型(text/csv)
6.点击运行

7、抓包工具

抓包:
抓包是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也可以用来检查网络安全。

常见的抓包工具:
charlers,fiddler,wires hark等等

作用:
1)定位前后端问题:
app:通过抓包看网络请求
web:浏览器按F12,点到network,在下面找到对应的网络请求,看url还有参数,如果url和参数不对,就是前端的问题,如果没有问题,看响应数据,如果响应数据有问题,那么就是后端的问题,如果数据没有问题那就是前端的问题。

2)模拟404
3)模拟弱网
4)mock测试

8、抓包遇到乱码

1)没有信任证书导致的,因为HTTPS是加密传输的

2)数据本身还做过加密,除非拿到密钥,否则没办法解密

9、Charles信任证书

把抓包工具的证书导出,在对应的浏览器/手机中信任

charles具体操作:
安装:help --> ssl proxying–> install charles root certificate
导出:help–>ssl proxying–>save Charles root certificate,选择.cer格式的证书
信任:chrome浏览器:设置 → 管理证书(安全) → 导入

10、移动端抓包

1)PC和手机在同一个网络下
2)手机需要设置代理,IP和端口号
3)信任证书
4)开启app进行抓包

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

勇敢地面对挑战,永不放弃追求。每一次努力都离成功更近一步,坚持奋斗,你将收获自己的辉煌人生。相信自己,展翅高飞!

不要被过去的失败束缚,将每一次挫折都视为成长的机会。用汗水浇灌梦想,用坚持铺就成功之路。奋斗不息,胜利必将属于你!

当你觉得无力前行时,请记住,勇气是内心最强大的武器,坚持是战胜困难的关键。奋斗不止步,迈向辉煌,你将超越自己,创造不可思议的奇迹!

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

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

相关文章

软件工程与计算总结(十三)详细设计中的模块化与信息隐藏

一.模块化与信息隐藏思想 1.设计质量 好的设计要着重满足以下3方面:可管理性、灵活性、可理解性好的设计需要侧重于间接性和可观察性——简洁性使得系统模块易于管理(理解和分解)、开发(修改与调试)和复用。实践者都…

基于适应度相关优化的BP神经网络(分类应用) - 附代码

基于适应度相关优化的BP神经网络(分类应用) - 附代码 文章目录 基于适应度相关优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.适应度相关优化BP神经网络3.1 BP神经网络参数设置3.2 适应度相关算法应用 4…

【软考】9.2 串/数组/矩阵/广义表/树

《字符串》 一种特殊的线性表,数据元素都为字符模式匹配:寻找子串第一次在主串出现的位置 模式匹配算法 1. 暴力破解法(布鲁特-福斯算法) 主串与子串一个个匹配效率低 2. KMP算法 主串后缀和子串前缀能否找到一样的元素&#xf…

轻量化Backbone | ShuffleNet+ViT结合让ViT也能有ShuffleNet轻量化的优秀能力

视觉Transformer(ViTs)在各种计算机视觉任务中表现出卓越的性能。然而,高计算复杂性阻碍了ViTs在内存和计算资源有限的设备上的适用性。尽管某些研究已经深入探讨了卷积层与自注意力机制的融合,以增强ViTs的效率,但在纯…

KOSMOS系列

Overview 总览摘要1 引言2 KOSMOS-2.52.1 Model Architecture2.1 Image and Text Representations2.3 Pre-training Data2.4 Data Processing2.5 Filtering and Quality Control 3 Experiments3.1 Evaluation3.2 Implementation Details3.3 Results3.4 Discussion 4 Related Wo…

车载多源融合定位

终端硬件由两部分组成,组合导航处理板和地磁导航处理板。 组合导航处理板负责采集加速度计、陀螺、GNSS和轮速计等数据进行组合导航解算,差分数据通过6Q主板获取到后通过串口发送至组合导航处理板。地磁导航处理板负责地磁数据采集,保存至数…

嵌入式实时操作系统的设计与开发 (启动过程学习)

b Reset; b Undef; b SWI; b PreAbort; b DataAbort; b . ;保留 b IRQ; b FIQ;建立异常向量表的过程,其中第一个指令通常都是存放在主存的零地址的。 异常向量表存放的全是汇编跳转指令,这些指令从主存的零地址(0x0)开始连续存储在…

Ubuntu下vscode dotNet downloading的问题(Cmake代码高亮)

问题描述:使用Cmake Language Support插件需要安装dotnet的支持库,我原本已经使用apt的方式安装了,但是进入vscode依旧要我下载。尝试按网上的方法修改为我指定的路径: "dotnetAcquisitionExtension.existingDotnetPath&quo…

Vsftp安装配置(超详细版)

目录 1 FTP、Vsftp介绍 1.1 FTP介绍 1.2 Vsftp介绍 1.3 Vsftp的登录类型 2 Vsftp安装配置 2.1 更换源 2.2 安装epel源 2.3 安装Vsftpd及相关依赖 2.4 vsftpd配置文件说明 2.5 vsftpd 配置详解 2.6 备份配置文件 3 vsftpd 配置匿名用户 3.1 编辑配置文件 3.2 常用的匿名FTP配置…

传输层 | UDP协议、TCP协议

之前讲过的http与https都是应用层协议,当应用层协议将报文构建好之后就要将报文往下层传输层进行传递,而传输层就是负责将数据能够从发送端传到接收端。 再谈端口号 端口号(port)标识了一个主机上进行通信的不同的应用程序,在TCP/IP协议中&…

让你的服务器变成游戏世界:打造游戏化在线社区的“秘诀”

引言 假如我有一台服务器,我希望打造一款游戏化的在线社区。那么,如何打造这样一个社区程序并成功运营呢?让我们一起来畅想吧! 一、确定社区的主题和目标群体 打造一款游戏化的在线社区,首先,我们需要明确…

【Android 性能优化:内存篇】——WebView 内存泄露治理

背景:笔者在公司项目中优化内存泄露时发现WebView 相关的内存泄露问题非常经典,一个 Fragment 页面使用的 WebView 有多条泄露路径,故记录下。 Fragment、Activity 使用WebView不释放 项目中一个Fragment 使用 Webview,在 Fragm…

区块链(12):java区块链项目之集群部署

选择3台服务器进行区块链项目部署 1 nginx部署页面 1.1 部署静态页面 1.2 nginx 反向代理的配置 修改nginx.conf文件 nginx 默认端口是http 80或者https443 将80代理到8080 location /blockchain {proxy_pass http://localhost:8080/blockchain;proxy_redirect default; …

深度学习-卷积神经网络

文章目录 应用卷积神经网络卷积处理分类问题 应用 图片分类图片检索图片分割图片风格迁移姿态估计OCR等 卷积神经网络 核概念计算机视觉中处理图片的核大小是通过经验得来的,而深度学习中的权重大小是自己学习出的。卷积VS神经网络:一个是局部观察一个…

进阶JAVA篇- LocalDate 类与 LocalTime 类、LocalDateTime 类的常用API(六)

目录 API 1.0 LocalDate 类与 LocalTime 类、LocalDateTime 类的API说明 1.1 如何创建LocalDate 类与 LocalTime 类、LocalDateTime 类的对象 1.2 LocalDate 类与 LocalTime 类、LocalDateTime 类中的以 get 开头实例方法 1.3 LocalDateTime 类中的 toLocalDat…

【Android】VirtualDisplay创建流程及原理

Android VirtualDisplay创建流程及原理 Android DisplayManager提供了createVirtualDisplay接口,用于创建虚拟屏。虚拟屏可用于录屏(网上很多资料说这个功能),分屏幕(比如一块很长的屏幕,通过虚拟屏分出不…

Windows服务器安装php+mysql环境的经验分享

php mysql环境 下载IIS Php Mysql环境集成包,集成包下载地址: 1、Windows Server 2008 一键安装Web环境包 x64 适用64位操作系统服务器:下载地址:链接: https://pan.baidu.com/s/1MMOOLGll4D7Eb5tBrdTQZw 提取码: btnx 2、Windows Server 2008 一键安装Web环境包 32 适…

【开篇】汇编语言之基础知识篇

文章目录 📋前言一. ⛳️机器语言二. ⛳️汇编语言的产生三. ⛳️汇编语言的组成四. ⛳️存储器五. ⛳️指令和数据六. ⛳️存储单元七. ⛳️CPU 对存储器的读写7.1 地址总线7.2 数据总线7.3 控制总线 📝总结 📋前言 🏠 个人主页&…

OOA/D 时统一过程(UP)中的 迭代、 进化 和 敏捷

一、迭代和进化式开发的优势 相对于顺序或“瀑布”软件开发模型,迭代和进化式开发(iterative and evolutionary development )对部分系统及早地引入了编程和测试,并重复这一循环。这种方式通常会还没有详细定义所有需求的情况下假…

阿里云易立:以云原生之力,实现大模型时代基础设施能力跃升 | KubeCon 主论坛分享

今天,由云原生计算基金会 CNCF 主办的 KubeConCloudNativeConOpenSourceSummit China 2023 主论坛在上海举办。阿里云容器服务负责人易立在主论坛发表演讲,介绍阿里云为大模型提供的基础设施能力,以及通过云原生 AI 的方式助力大模型普惠提效…