什么是接口测试,接口测试怎么玩,接口自动化测试怎么玩?

news2025/7/21 13:27:07

前言

最近在找工作,因为是做纯服务端测试的,所以面试过程中面试官难免会问,怎么设计接口测试用例,怎么做接口自动化测试?会象征性的考一下基本功。

下面就接口测试,或者说服务端测试,梳理一下我的思路吧~

一、什么是接口

Q:什么是接口?
A:举个例子吧,渴了想喝水,旁边刚好有个饮水机,水龙头就是一个接口

那么在程序中道理也是一样的,你在应用程序上买衣服、订餐、租房子、订机票这些衣食住行,其实都在访问对应程序的接口。

以我下面要举的例子说明:

有个登录页面,你要登上网站,就需要输入你的账号密码,把账号密码作为请求参数打登录接口,这时客户端会给服务器发个登录请求,服务器鉴权和校验通过之后,就登上去了。

到这里就完成了一次接口的请求,或者说跑完了一条接口测试用例。

二、常见的接口请求类型有哪些?

常用的接口请求类型有:post get put delete

平常面试会问到get和post的区别,不懂百度一下

那么,要设计接口测试用例,首先需要接口契约,也就是接口文档。

接口文档长啥样,看下面~

三、接口文档范例

测试功能为登录页面:https://xxx/account/signin(url我打码了)
接口地址:https://xxx/account/signin(想了想接口也打码吧,毕竟是要收费的)
请求方式:POST
接口描述:某网站登录接口

【接口入参】

【接口返回】 

【接口请求示例】

{ "account": "1801367@qq.com", "password": "191004" }

【接口返回示例】

{ "code": 0, "msg": "", "data": { "name": null, "avatar": null, "id": "7", "account": "18067@qq.com", "role": 3 } }

了解了接口契约,怎么设计接口测试用例呢,请继续往下看。

四、怎么设计接口测试用例

首先你得有个框架

测接口也测了好几年了,梳理一份用例模板,简单参考下,不全的欢迎补充~

 

所以基于这套模板,我们可以设计一下接口契约中的登录接口的用例

五、基于登录接口设计测试用例

1.参数校验

  • account
    • 必填:不填,空字符串,传null,不传该字段
    • 字符串类型:传int型或其他类型
    • 长度校验:假如范围[1-20],小于1、大于20,在1-20范围内,传超长
    • 枚举:无
  • password
    • 必填:不填,空字符串,传null,不传该字段
    • 字符串类型:传int型或其他类型
    • 长度校验:假如范围[1-20],小于1、大于20,在1-20范围内,传超长
    • 枚举:无

2.参数组合

  • 账号密码正确,登录成功,返回数据拿到用户角色及用户信息
  • 账号错,密码对,登录失败,code1
  • 账号对,密码错,登录失败,code1
  • 账号错,密码错,登录失败,code1

3.业务逻辑

  • 数据流转:登录账号为数据库成员,登上去后接口返回data为数据库查到的数据
  • 权限:管理员账号、普通用户账号、运营账号
  • 账号类型:qq邮箱、企业邮箱或其他类型邮箱,正常登录,手机号不支持
  • 多端登录是否有逻辑处理,要不要限制有最多几个用户登录

4.安全性

  • 密码明文可见
  • 抓包不能抓到
  • 登录鉴权,前端和服务端都要做
  • token时效性
  • sql注入

5.性能

  • 响应时间200ms
  • 并发数(登录我感觉没必要考虑高并发,具体业务场景具体分析)

6.日志

  • 测接口时,关注日志

7.监控

  • 接口功能上线了,要关注下业务请求和各种异常监控

六、接口测试常用什么工具

  • postman
  • jmeter
  • linux命令 curl 发一个接口请求
  • python、java写脚本

以上都可以,第四个用于做接口自动化测试

七、接口自动化测试思路

第一步:把手工case通过写代码的方式,转成自动化测试的case,设置case的断言,然后去跑这批case让他自动执行,先让代码可以粗陋的跑起来

第二步:减少重复性代码,把测试数据整合做成参数化读取,进行数据驱动

第三步:优化代码可读性,抽离通用模块

八、接口自动化测试实战演练

完成第一步,很简单,写出来一个,其他的复制粘贴,改断言,改参数

那么问题是什么?

  • 新增一条用例,我要在代码里改一条,参数也放在代码里,看起来累,改起来也很累。

完成第二步,把用例放在excel中,通过pytest自带的装饰器进行参数化

 

这里解决了第一步改参数的问题,但是这里依然存在问题

  • 代码重复量大,后面再增加一条用例,那块重复的要再写一遍
  • 获取excel数据的方法放在测试用例中,代码可读性差,我们的测试用例最好不要包含前置条件。

完成第三步,提取读excel数据部分,放在单独的文件中,把参数转换和发起请求这部分提起来。

同时优化了一下获取excel数据部分,上一步我们是读区域,这样可扩展性差,如果后期我要在excel里加用例,就需要改这块的区域,所以让他直接读这一列,这样后期随便加不影响。

 

这样看着就清爽多了,加用例,只需要改excel,然后在testcase中加用例,而用例里基本上就实现断言就行。

如果还想加一些日志,或者需要查库做断言等等,可以再优化下。

最后:下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!【100%无套路免费领取】

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

  全套资料获取方式:点击下方小卡片自行领取即可

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

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

相关文章

Spring framework Day19:Spring AOP xml配置示例二

一、开始学习 1、新建项目&#xff0c;结构如下 2、添加 spring 依赖 <!-- spring 的核心依赖 --><dependencies><!-- https://mvnrepository.com/artifact/org.springframework/spring-context --><dependency><groupId>org.springframework&l…

2023,简历石沉大海?软件测试岗位真的已经饱和了....

各大互联网公司的接连裁员&#xff0c;政策限制的行业接连消失&#xff0c;让今年的求职雪上加霜&#xff0c;想躺平却没有资本&#xff0c;还有人说软件测试岗位饱和了&#xff0c;对此很多求职者深信不疑&#xff0c;因为投出去的简历回复的越来越少了。 另一面企业招人真的…

Redis数据结构之ziplist

前言 Redis 为了提高内存效率&#xff0c;设计了一种特殊的数据结构 ziplist&#xff08;压缩列表&#xff09;。ziplist 本质是一段字节数组&#xff0c;采用了一种紧凑的、连续存储的格式&#xff0c;可以有效地压缩数据&#xff0c;提高内存效率。 hash、zset 在数据量比较…

CSS 基础知识-01

CSS 基础知识 1.CSS概述2. CSS引入方式3. 选择器4.文字控制属性5. 复合选择器6. CSS 特性7.背景属性8.显示模式9.选择器10.盒子模型 1.CSS概述 2. CSS引入方式 3. 选择器 4.文字控制属性 5. 复合选择器 6. CSS 特性 7.背景属性 8.显示模式 9.选择器 <!DOCTYPE html> <…

AutoGPT:自动化GPT原理及应用实践

一、AutoGPT介绍 想象一下&#xff0c;生活在这样一个世界里&#xff0c;你有一个人工智能助手&#xff0c;它不仅能够理解你的需求&#xff0c;而且还能够与你一起学习与成长。人工智能已无缝融入我们工作、生活&#xff0c;并帮助我们有效完成各种目标。大模型技术的发展与应…

【数据分享】2022年我国30米分辨率的地形粗糙度(起伏度)数据(免费获取)

地形数据&#xff0c;也叫DEM数据&#xff0c;是我们在各项研究中最常使用的数据之一。之前我们分享过2022年哥白尼30米分辨率的DEM数据&#xff0c;该数据被公认为是全球最佳的开源DEM数据之一&#xff0c;甚至没有之一&#xff08;可查看之前的文章获悉详情&#xff09;&…

Jmeter的性能测试

性能测试的概念 定义&#xff1a;软件的性能是软件的一种非功能特性&#xff0c;它关注的不是软件是否能够完成特定的功能&#xff0c;而是在完成该功能时展示出来的及时性。 由定义可知性能关注的是软件的非功能特性&#xff0c;所以一般来说性能测试介入的时机是在功能测试…

particles 粒子背景插件在vue3中的使用

particles 粒子背景插件在vue3中的使用 概述使用完整代码概述 npm 链接 https://www.npmjs.com/package/particles.vue3 GitHub地址 https://github.com/tsparticles/vue3 配置参数说明: color: String类型 默认’#dedede’。粒子颜色。particleOpacity: Number类型 默认0.7。…

【Linux】线程互斥与同步

文章目录 一.Linux线程互斥1.进程线程间的互斥相关背景概念2互斥量mutex3.互斥量的接口4.互斥量实现原理探究 二.可重入VS线程安全1.概念2.常见的线程不安全的情况3.常见的线程安全的情况4.常见的不可重入的情况5.常见的可重入的情况6.可重入与线程安全联系7.可重入与线程安全区…

【halcon】halcon轮廓总结之select_contours_xld

前言 select_contours_xld 我认为是一个非常常用且实用的算子&#xff0c;用于对轮廓进行筛选。 简介 这段文档描述了一个名为"SelectContoursXld"的操作&#xff0c;用于根据不同特征选择XLD&#xff08;XLD是一种图像数据表示形式&#xff0c;表示轮廓线&#x…

使用 Bard 的 Google Hotel 插件查询酒店

使用 Bard 的 Google Hotel 插件&#xff0c;您可以通过以下步骤找到符合您需求的酒店&#xff1a; 在 Google 搜索中打开 Bard 插件。输入您要搜索的城市或酒店名称。选择您要搜索的日期和入住人数。选择您要搜索的酒店类型和价格范围。单击“搜索”按钮。 Find hotels for a…

OpenCV实战完美实现眨眼疲劳检测!!

目录 1&#xff0c;项目流程 2&#xff0c;代码实现 3&#xff0c;结果展示 应用场景主要是在监控系统和驾驶员安全监测中&#xff1a; 监控系统&#xff1a;可以将该项目应用于监控摄像头的视频流中&#xff0c;实时检测闭眼行为。通过实时计算闭眼次数和眼睛长宽比&#x…

ubuntu20.04安装FTP服务

安装 sudo apt-get install vsftpd# 设置开机启动并启动ftp服务 systemctl enable vsftpd systemctl start vsftpd#查看其运行状态 systemctl status vsftpd #重启服务 systemctl restart vsftpdftp用户 sudo useradd -d /home/ftp/ftptest -m ftptest sudo passwd ftptest…

数字签名 及 数字证书 原理笔记

这里是对 数字签名 及 数字证书 原理该视频做的一个笔记&#xff0c;链接 前言 如果对一些加密算法不懂可以参考这篇文章 数字签名 小明发送文件给小红时对文件做出签名 将文件进行hash算法加密得到hash值&#xff0c;并且对该hash值使用私钥进行加密&#xff08;私钥加密的…

接口加密解决方案:Python的各种加密实现!

01、前言 在现代软件开发中&#xff0c;接口测试已经成为了不可或缺的一部分。随着互联网的普及&#xff0c;越来越多的应用程序都采用了接口作为数据传输的方式。接口测试的目的是确保接口的正确性、稳定性和安全性&#xff0c;从而保障系统的正常运行。 在接口测试中&…

【python海洋专题二十三】共用坐标轴

点击蓝字,关注我们 共用坐标轴上期画出subplot 但是坐标轴觉得多余 本期内容 优化坐标轴 1:未优化 优化 关键语句 # % 不显示坐标刻度 plt.xticks([])往期推荐 图片 【python海洋专题一】查看数据nc文件的属性并输出属性到txt文件 【python海洋专题二】读取水…

关于 Invalid bound statement (not found): 错误的解决

关于 Invalid bound statement not found: 错误的解决 前言错误原因解决方法1. 检查SQL映射文件2. 检查MyBatis配置3. 检查SQL语句4. 检查命名约定5. 清除缓存6. 启用日志记录 重点注意 结语 我是将军我一直都在&#xff0c;。&#xff01; 前言 当开发Java Spring Boot应用程…

手把手教你随机合并全部视频添加同一个文案的方法

今天&#xff0c;我将为你介绍一个简单易行的方法&#xff0c;只需两个步骤&#xff0c;让你轻松实现批量合并视频。 1. 在浏览器中搜索并下载“固乔智剪软件”&#xff0c;然后打开软件。这款软件是一款专业的视频剪辑工具&#xff0c;它提供了多种视频剪辑功能&#xff0c;包…

OpenCV模板匹配实现银行卡数字识别

目录 1&#xff0c;项目流程 2&#xff0c;代码流程解读 2.1 导入工具包 2.2 设置参数 2.3 指定信用卡类型 2.4 展示图像 ​编辑 2.5 读取一个模板图像 2.6 转化为灰度图--------->再转化为二值图像 2.7 计算轮廓 ​编辑 2.8 导入我们要识别的图像&…

设计海报都有哪些好用的软件推荐

在新媒体时代&#xff0c;设计在各个方面都是不可分割的。它最初是设计师的工作&#xff0c;并逐渐成为新媒体编辑的必要技能。 网页内容需要图片和文字&#xff0c;应用程序需要独特的风格基调&#xff0c;人们更喜欢分享视频和图片&#xff0c;而不是简单的文本。因此&#…