一、什么是接口测试

我们要想知道接口测试怎么做,首先要明白接口测试是什么?一般像系统内的组件接口数据交互测试、不同系统与系统之间的接口数据交互测试等,我们都可以称之为接口测试 !

那么接口测试是怎么来测试接口的呢?

接口测试就是通过接口的不同情况下的输入和与之对用的输出之间的关系,看看是否满足接口规范所规定的功能性安全性以及性能方面的要求.

简单的说:“接口测试是就是在没有前端页面或者前端还没完成的情况下,代替前端页面或者第三方使用者,来验证后端的接口实现是否符合接口规范。”

300G软件测试自学教程 [全套完整版]
分享一波:测试猿课堂为大家准备了一份总量达300G左右的【软件测试全套自学教程】
包含了完整的课件+PPT+实战项目源码+千套测试模板,内容极其珍贵,千万不要错过:

300G软测学习资料包,点击免费领取

二、接口测试的好处

  • 通过接口测试,我们可以测试出接口的稳定和正确性, 可以抛开前端的影响,迅速定位到后端的缺陷,提升测试的效率.
  • 通过接口测试, 可以为项目带来高效的缺陷监测和管理能力,可以提到软件的整体质量;

项目越复杂,系统越庞大,接口测试使用的越频繁的效果越明显

三、接口测试的原理

通过模拟客户端 or Web浏览器向服务器发送请求,服务器接收请求后对接收到的数据做处理,同时向客户端返回应答,我们模拟的客户端,接收到返回的数据后再对数据进行判断 ,如何判断呢?

1、判断请求: 是否正确, 系统默认的请求成功,会返回200状态码, 假如请求错误返回400, 404, 500等状态码

2、判断数据: 返回数据的正确性与完整性

3、判断安全性: 接口一般不会随意暴露在网上被其他人任意调用,一般我们会对接口做出一些限制,比如请求次数、请求频率限制等等

简单来说:找个能联网的工具根据接口文档,向接口服务器发送请求,获取响应,检查响应是否符合接口文档的规范

接口测试的原理

四、接口测试测试工具

接口测试需要模拟客户端发送请求获取响应,所以我们就需要一个能够发送请求获取响应的工具,也就是联网工具:
通过工具来进行接口测试

最知名的就是postman,当然还有restclient之类的 。当然也可以用jmeter,jmeter也可以用来做接口性能测试,当然我们也可以通过编写脚本(代码)进行接口测试。

一般我们使用python语言中最流行的联网库requests !

300G软测学习资料包,点击免费领取

五、如何做好接口测试

接口测试要遵循一些要点:

  • 测试接口的功能实现. 检查不同参数的数据请求时,接口返回的数据与预期结果也就是接口文档的规范的一致性.
  • 测试接口的健壮性(容错性), 比如说传递的数据类型是错误或者传递空数据,特殊字符等与接口规范不符的能否正常处理.
  • 测试接口参数的边界值. 比如说传递的数据超出了接口规范的规定的范围,或者数据足够大或者为负数时能否正常处理
  • 测试接口的性能, 接口处理和响应数据的时间,并发性等等, 当然这牵扯到代码实现的优化,需要与开发人员沟通
  • 测试接口的安全性.比如登录的用户名密码等敏感数据是否明文显示,需要权限的接口是否暴露在外面

接口测试

300G零基础学自动化软件测试-全套教程!点击加微信【ceshi169】免费领取

六、接口测试流程

1、分析接口文档和需求文档

分析接口文档或者需求文档一般会去找测试点,那么接口测试的测试点我们一般从几种方向去找

· 功能性测试点
· 性能测试点
· 安全性测试点

2、编写接口测试计划

测试计划就是功能测试计划基本一样就是知名的5w1h了

1) why——为什么要进行接口测试;
2) what—测试接口包括哪些;
3) when—测试接口不同阶段的起止时间;
4) where—相应接口文档,接口缺陷的存放位置,测试环境等;
5) who—项目有关人员组成,哪些接口分配给哪些人;
6) how—使用哪些测试工具以及测试方法进行测试。

3、编写接口测试用例

测试用例就是根据具体的哪个接口来编写,一般会分为单接口和多接口两种场景来编写测试用例

1) 单接口场景的测试

  • 正向数据:也就是能正常发送请求,正常获取响应的数据,一般我们从三个方面去组织:

    • 所有必填参数
    • 全部参数(必填参数+选填参数)
    • 参数组合(必填参数+某些选填参数)
  • 反向测试:用不属于规定范围的数据区发送请求检查服务器能否正常处理
    • 异常数据:数据为空,长度过多或者过少(边界值外),类型不符(需要数字类型传递str类型),错误的数据
    • 异常的参数:不传参数,少传参数,多传参数,传递错误的参数
    • 异常的业务数据:结合业务功能考虑输出的各种异常返回情况

2) 多接口场景的测试

  • 业务场景功能测试(站在用户角度考虑常用的使用场景)
  • 多业务场景功能测试主要是测试接口之间数据依赖

4、接口测试执行

根据设计的测试用例就可以执行测试用例当然执行的方式有几种

1. 使用postman之类的工具,一个一个进行测试,这种方式我们叫做手工测试

2. 使用jmeter之类的有自动化功能方式进行测试,这种叫做工具自动化测试

3. 我们可以自己编写测试脚本,使用测试脚本自动加载测试,这种就是自动化测试了

5、生成接口测试报告。

  • 测试完成了以后就可以生成测试报告了

我听过这个工具,说是中文版的Postman, 刚体验了下在线版,觉得真的差不多。很好用的中文代替工具,也看的出来ApiPost团队真的很用心的开发这个软件。
顺便分享一下链接:https://console.apipost.cn/register?utm_source=10006

接口测试一般怎么测?接口测试的流程和步骤相关推荐

  1. [全网最细]接口测试一般怎么测?接口测试的流程和详细步骤

    一.什么是接口测试 我们要想知道接口测试怎么做,首先要明白接口测试是什么?一般像系统内的组件接口数据交互测试.不同系统与系统之间的接口数据交互测试等,我们都可以称之为接口测试 ! 那么接口测试是怎么来 ...

  2. 「全网最细」接口测试怎么测?接口测试的流程和步骤

    一.什么是接口测试 我们要想知道接口测试怎么做,首先要明白接口测试是什么?一般像系统内的组件接口数据交互测试.不同系统与系统之间的接口数据交互测试等,我们都可以称之为接口测试 ! 那么接口测试是怎么来 ...

  3. 接口测试系列 | 莉莉丝公司接口测试实践分享

    Testerhome社区爱好者合力编写了<2021接口测试白皮书>,并于今年2月底发布.本文节选自其中的的「莉莉丝公司接口测试实践分享」章节.点击链接可下载完整版<2021接口测试白 ...

  4. 【接口测试实战(零)】接口测试简介

    文章目录 1)什么是软件接口? 软件接口的功能 2)接口自动化测试 2.1 测试点范围 1.业务功能(正常,异常场景是否实现) 正常业务的用例: 异常场景: 2.性能测试(响应时间,吞吐量,并发数,资 ...

  5. 【接口测试 】Day2-Postman实现接口测试(附项目实战)

    昨日回顾 [接口测试 ]Day1-接口测试基础(附项目实战)_小慌慌的博客-CSDN博客目录课程目标课程大纲接口测试基础接口及接口测试概念1.接口2.接口测试3.接口自动化测试HTTP协议1. HTT ...

  6. R语言使用party包中的ctree函数构建条件推理决策树的流程和步骤、条件推理决策树是传统决策树的一个重要变体、条件推理树的分裂是基于显著性测试而不是熵/纯度/同质性度量来选择分裂

    R语言使用party包中的ctree函数构建条件推理决策树的流程和步骤(Conditional inference trees).条件推理决策树是传统决策树的一个重要变体.条件推理树的分裂是基于显著性 ...

  7. ystep jQuery流程、步骤插件

    今天小菜给大家带来又一款给力jQuery插件:ystep. 从名称上大致可以看出,这是一个流程步骤插件. 如果无意外的话,这可能是小菜近期最后一个作品了...苦逼的小菜即将创业,可能就没时间折腾啦~好 ...

  8. python安装步骤图解-Python安装与卸载流程详细步骤(图解)

    Python安装流程: 一.下载 在网上(输入网址https://www.python.org/downloads/)下载Windows最新的python程序(我电脑为64位) 二.安装 根据自己的电 ...

  9. UPS不断电割接流程和步骤

    一.UPS不断电割接流程 电源割接中,对于双电源设备,可以采用断电割接方法:但是遇到单电源设备,而且该设备非常重要,不容许中断割接,往往需要采用不断电割接流程,割接流程和步骤演示如下图: UPS不断电 ...

  10. python完整安装顺序_Python安装与卸载流程详细步骤(图解)

    Python安装流程: 一.下载 在网上(输入网址https://www.python.org/downloads/)下载Windows最新的python程序(我电脑为64位) 二.安装 根据自己的电 ...

最新文章

  1. Spring Cloud(三)服务提供者 Eureka + 服务消费者(rest + Ribbon)
  2. python 离线翻译软件_AI赋能翻译,讯飞这个设备轻松搞定国际交流
  3. 安卓USB开发教程 三 USB Accessory
  4. mysql多表联查到新的表中_MySQL中的多表联查
  5. C#中如何实现控件数组
  6. 集群式游戏服务器架构方案设计开发
  7. oracle-DECODE()函数
  8. 云服务器网站301重定向跳转有什么作用?
  9. 数据库设计说明书的编写
  10. 一款小清新版的java代码生成器,springboot脚手架
  11. 完全二叉树叶子结点的算法
  12. 思科交换机不同vlan互通
  13. STM32 定时器主从模式,上电立即输出脉冲,输出有尖刺,解决方法
  14. Download EditPlus Text Editor
  15. 什么是Java的反射机制?
  16. SuperMap许可使用随手记
  17. 健身运动装备有哪些?双十一运动健身装备选购指南
  18. 缓存区 buffers 和 caches 的区别
  19. 百度网盘不启动客户端下载大文件
  20. java充值_Java实现支付宝充值

热门文章

  1. 非线性光纤光学_进展 | 二维材料复合光纤实现超高非线性效应
  2. python lmdb使用
  3. 【转】从机器学习谈起
  4. 图说报告 | “智能+”的终极版图:数字孪生世界
  5. OEM、ODM 、OBM分别是什么意思?
  6. Netty权威指南(三)Netty入门应用
  7. Ubuntu18更换软件源
  8. 信贷反欺诈场景中策略与模型的搭建|实操一大反欺诈模型
  9. 图像质量评估算法SSIM(结构相似性)
  10. web前端笔试试题一(含答案)