接口测试详细讲解

article/2025/10/21 20:28:38

转载别人的,Mark一下

 

超详细——接口测试总结与分享

  金字塔模型回顾

  金字塔模型

  通过之前对金字塔结构的学习,大概了解到了金字塔模型想告诉我们的几个道理:

  1.越底层,越稳定。

  金字塔主要观点认为单元测试的稳定性高,需要多投入。

  2.越底层,越高效。

  程序的问题,最终还得落在具体的代码上,所以底层的测试更容易发现问题。

  3.越底层,越低成本。

  越底层测试能越早发现问题,越早发现问题,修复的成本自然越低。

  4.越底层,越难实施。

  越底层的实现对技术专业性要求越高,这点跟第三点有点矛盾,往往越专业的人才也意味着人力成本越高。

  综合下金字塔模型,我们提出了橄榄模型(不倒翁模型),拿接口测试和UI层测试以及单元测试做了比较,最终认定接口(API)测试可以获得较高的投资回报。

  橄榄模型

  接口测试

  什么是接口(API)

  API全称Application Programming Interface,这里面我们其实不用去关注AP,只需要I上就可以。一个API就是一个Interface。我们无时不刻不在使用interfaces。我们乘坐电梯里面的按钮是一个interface。我们开车一个踩油门它也是一个interface。我们计算机操作系统也是有很多的接口。(这是目前个人找到比较好理解的一段解释)

  接口就是一个位于复杂系统之上并且能简化你的任务,它就像一个中间人让你不需要了解详细的所有细节。那我们今天要讲的Web API就是这么一类东西。像谷歌搜索系统,它提供了搜索接口,简化了你的搜索任务。再像用户登录页面,我们只需要调用我们的登录接口,我们就可以达到登录系统的目的。

  现在市面上有非常多种风格的Web API,目前最流行的是也容易访问的一种风格是REST或者叫RESTful 风格的API。从现在开始,以下我提到的所有API都是指RESTful风格的API。

  什么是接口测试和为什么要做接口测试

  接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

  现在很多系统前后端架构是分离的,从安全层面来说,只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前端太容易了), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。

  如今系统越来越复杂,传统的靠前端测试已经大大降低了效率,而且现在我们都推崇测试前移,希望测试能更早的介入测试,那接口测试就是一种及早介入的方式。例如传统测试,你是不是得等前后端都完成你才能进行测试,才能进行自动化代码编写。 而如果是接口测试,只需要前后端定义好接口,那这时自动化就可以介入编写接口自动化测试代码,手工测试只需要后端代码完成就可以介入测试后端逻辑而不用等待前端工作完成。

  接口测试的策略

  接口测试也是属于功能测试,所以跟我们以往的功能测试流程并没有太大区别,测试流程依旧是:1.测试接口文档(需求文档) 2.根据接口文档编写测试用例(用例编写完全可以按照以往规则来编写,例如等价类划分,边界值等设计方法) 3. 执行测试,查看不同的参数请求,接口的返回的数据是否达到预期。

  接口测试点

  image.png

  来个实例

  假如我们现在拿到了如下的一个接口文档(豆瓣图书开源API:https://developers.douban.com/wiki/?title=book_v2)

  image.png

  从文档中我们可以大体知道这个接口的一些信息,例如接口是GET请求,请求协议是https,请求的接口服务器地址是api.douban.com,接口的路径是/v2/book/search,接口可以带有四个参数q(查询的关键字),tag(查询的tag),start(取结果的offset),count(取结果的条数),如果接口请求正常返回状态200,返回大体如下结果:

  {

        "start": 0,

        "count": 10,

        "total": 30,

        "books" : [Book, ]

      }

  假设这个文档是完善的(个人认为开发文档还可以把参数类型写上)这时我们根据这个文档,我们设计了如下一个测试用例:

  用q=自动化测试,start=0,count=1作为参数请求搜索图书接口,那么接口请求的状态码应该是200,reponse应该返回count=1,start=0等等。

  最后我们去执行测试用例,假设我现在没有别的接口测试用例工具,我们就通过浏览器来测试这个GET请求的接口,那么我就可以在浏览器低质栏输入:https://api.douban.com/v2/book/search?q=自动化测试&start=0&count=1,并判断返回信息是否有误。

  image.png

  JSONView 引入

  我们发现直接从Chrome打开我们的查询图书的接口请求,返回的 数据为JSON格式,但是浏览器显示排版难以阅读,这时我们可以考虑安装一些插件来便于我们阅读,例如JSONView插件:

  https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc 。插件安装完后我们再次请求搜索图书接口,我们看到格式化后的排版:

  image.png

  当然类似的格式化JSON的插件工具非常多,可以自己找个喜欢方便的便可。

  Postman 引入

  我们刚刚通过浏览器来测试我们的一个GET请求的接口的一个测试用例,但是平时我们的接口请求方法除了GET还有POST,PUT,DELETE等等,那么浏览器毕竟不是专业的接口测试软件,而且它也无法测试POST这类型的的接口,那么我们就需要找一个专业的接口测试软件:Postman。

  Postman 的安装

  以前的Postman 除了mac版本都需要在Chrome的插件安装,但现在也推出Win和liunx的PC版,所以我们现在只需要到官方网站:https://www.getpostman.com/ 去根据自己的操作系统下载对应的版本便可。

  image.png

  首次使用

  建议去注册个账号,登录使用,可以不同电脑上方便数据同步。

  GET请求

  image.png

  POST 请求

  POST 请求例子,通过Postman 配置好请求方法,地址,参数后发起请求,最后如下:

  Post Demo

  也许你也有疑问,如果开发没有完备的接口文档,我如何知道他API的信息?

  这时我们就得通过一些抓包工具抓取这些API信息。

  常见抓包工具

  HTTP抓包工具:Fiddler、Charles、Firebug、开发者工具等等。。。

  Chrome开发者工具简单演示

  1.打开Chrome 浏览器,按下F12快捷打开Chrome开发者工具

  2.点击Network 标签

  3.勾选 Preserve log选项,确保页面刷新不会把已抓到的请求清空

  image.png

  4.打开网站首页,输入登录名和密码,点击登录

  5.查看开发者工具,可以找到如下图Login的请求接口

  image.png

  6.查看Login 请求的详细信息

  请求方法:POST

  请求的URL:http://test.logwing.com/Home/Login

  请求参数格式:Content-Type: application/x-www-form-urlencoded

  请求参数:UserName=XXX&Password=XXXX&CheckCode=&Remember=false&LoginCheckCode=7119

  请求结果类型:Content-Type: application/json; charset=utf-8

  请求结果:

 

  response

  更多关于Chrome开发者工具帮助中文帮助文档可以参考:https://github.com/CN-Chrome-DevTools/CN-Chrome-DevTools

  Fiddler

  Chrome开发者工具依赖于Chrome浏览器,也只能抓取Chrome浏览器发起的请求,如果我们想获取所有程序发起的请求,我们就可以通过Fiddler来抓取。

  简介

  Fiddler(中文名称:小提琴)是一个HTTP的调试代理,以代理服务器的方式,监听系统的Http网络数据流动,Fiddler可以也可以让你检查所有的HTTP通讯,设置断点,以及Fiddle所有的“进出”的数据(我一般用来抓包),Fiddler还包含一个简单却功能强大的基于JScript .NET事件脚本子系统,它可以支持众多的HTTP调试任务。

  工作原理

  Fiddler是以代理WEB服务器的形式工作的,浏览器与服务器之间通过建立TCP连接以HTTP协议进行通信,浏览器默认通过自己发送HTTP请求到服务器,它使用代理地址:127.0.0.1, 端口:8888. 当Fiddler开启会自动设置代理, 退出的时候它会自动注销代理,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler。

  工作原理.png

  简单演示

  抓取http请求

  1.启动Fiddler。

  2.点击Fiddler主界面右下角的监听程序,选择ie浏览器则该系统上所有的浏览器发起的http请求都将被抓取。

  image.png

  3.打开chrome浏览器 ,打开官网首页,输入用户名密码登录。

  4.查看Fiddler主面板,可以查看到Login请求。

  5.查看Login请求的信息

  可以查看到跟Chrome插件查看到类似的信息。

  request\response

  请求参数


 

 

 

http://www.51testing.com/html/46/n-3722746.html


http://chatgpt.dhexx.cn/article/NSH0awoJ.shtml

相关文章

POSTMAN接口测试流程

POSTMAN接口测试流程 一、首先是了解基本的测试步骤 设计测试用例配置PostMan测试环境根据测试用例在PostMan填写接口信息执行并分析结果与需求文档是否一致 二、接下来直接进入POSTMAN的配置 (1)先创建一个Collection用例集,并且简单配置一…

接口测试流程

接口测试流程 一、编写接口测试计划二、编写、评审接口测试用例三、执行接口测试四、接口自动化持续集成要点 接口测试一般遵循如下流程,细节部分可根据实际项目调整 一、编写接口测试计划 接口测试计划和功能测试计划的目标一致,都是为了确定需求、确定…

简述 Mock 接口测试

在开发过程中经常会有前后端开发进度不统一的时候,为了避免前后端开发进度相互影响,这时候就需要用到 Mock 来协助我们进行对接。 那么什么是 Mock 接口测试?它对我们的开发工作有什么帮助?今天我们就来浅谈一下 Mock 接口测试的…

【接口测试 】Day1-接口测试基础(附项目实战)

目录 课程目标 课程大纲 接口测试基础 接口及接口测试概念 1. 接口 2. 接口测试 3. 接口自动化测试 HTTP协议 1. HTTP协议介绍 2. URL 3. HTTP请求 4. HTTP响应 5. 状态码(Status Codes)[科普] 接口规范 1. 传统接口风格 接口测试流程 1. 接口测试流程…

网络安全中接口测试的解决方案

Eolink新一代API测试神器 一、接口测试1、接口2、接口测试 二、网络安全中的接口测试,具体场景1、接口安全测试2、传统测试工具3、具体测试场景 三、Eolink的解决方案1、解决传统测试的痛点2、Eolink 测试接口 四、Eolink的使用体验五、Eolink评价1、网络安全行业内…

postman接口测试

一、介绍 postman是一款强大的api调试、http请求工具;可以帮助测试api,提供强大的web api 和 http请求调试,能发送任何类型的http请求(GET、POST、PUT、UPDATE、、、);并且能带参数和headers。 二、接口…

接口测试基础

持续更新… 标记 接口测试基础 1. 接口测试概述1.1 生活中的接口和软件程序的接口1.2 接口测试的定义1.3 接口测试的范围和适用场景 2. 接口测试必备条件2.1 接口测试的必要条件2.2 标准和规范的接口文档2.3 如何获取接口信息 3. 接口测试必备的知识3.1 常见的接口传输协议和标…

为什么人到了中年会喜欢上养花?养花能给人带来什么?

看到这个问题,我也来凑凑热闹,我快五十了,在去年以前对花我也只是欣赏,每次看到漂亮的花花草草也仅限于惊叹怎么会如此美丽,最多买点鲜切花回来插瓶,从来没有想过自己也会开始养花,后来因为朋友…

春-黄花开了......

春天又一次来到大地,春光明媚,百花盛开.其中,最抢眼的不过是一片一片的油菜花了,那金黄色的一片,看上去是那样的惹人注目. 不少人都拍了不少的油菜花PP,这里,我也来发一点有金黄色小花的PP,但它不是油菜花哟,是什么小草的花,我也不清楚.好了,大家欣赏欣赏图片吧!

春暖花开

今天是个晴朗的好天气,因计划去金牛湖风景区转转,早早地就爬了起来。 第一次做S8,感觉真不一样,地铁站点露天的较多,沿途欣赏了好多美丽景色,黄灿灿的油菜花,绿油油的麦田,羞答答的垂…

开在春天里的花

开在春天里的花 2008、04、07

很花的花

小时候听过一个故事,珍妮和她的七朵小花,但这次我发的这个花,一朵顶七朵啊! 这个花很花,使我见过的色彩最全面和到位的一个鲜花哦! 里面包括了整个颜色系,你说这是一个什么颜色的花啊&#xff1…

14年之花开不败

12年我正式进入提高班,直到现在应该是整整2年了吧。米老师说:现代是一个大数据时代。我理解的大数据时代,很简单:你一直都在做,知识、思想积累,这些东西都是数据,坚持的时间越长,数据…

忘掉种过的花

离职前百感交集的碎碎念 文章灵感来源于耳机里随机播到的《喜帖街》里第一句歌词。 “忘掉种过的花,重新的出发,放弃理想吧”。 忘掉种过的花 对我个人的职业生涯影响比较大的人有两位,其中之一是上家公司的HRBP。她在和我的离职沟通中对…

逐渐从土里长出来的小花

从土里逐渐长出来的小花&#xff08;这是长出来后的样子&#xff0c;图片压缩了出现了重影~&#xff09; 代码在这里&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title&g…

老师计算机组合照说说,和老师合影留念发朋友圈说说

老师和学生的留念照发朋友圈该怎么形容 &#xff0c; 1&#xff1a;希望老师越来越美&#xff0c;同学学习越来越好 合影留念的好句子 好花不常开好景不长在合影拍照片美好留下来 和一位老同学合影发朋友圈,说点什么好呢? 通过合影的内容来发朋友圈&#xff0c;自己怎么想的就…

好花不常开

csdn的FCKeditor为什么如此脆弱&#xff0c;刚写好的内容&#xff0c;设置一下格式&#xff0c;就弹出vs2005叫我调试&#xff0c;眼看着那好不易打的字&#xff0c;就这么没有了。 外边的破雨还在下个不停&#xff0c;越下越冷&#xff0c;看来明天打算去游泳的念头又可以打消…

如何利用Matlab对Comtrade99格式的故障录波文件进行数据读取

如何利用Matlab对Comtrade99格式的故障录波文件进行数据读取 近来看了几个采用Matlab对标准故障录波数据进行读取的例子&#xff0c;自己参照着动手实践了下&#xff0c;发现有些问题&#xff0c;现在记录下来以备大家参考。 图形用户界面&#xff08;Graphical User Interfac…

一带一路专题:农业、经济、地理距离、友好城市等七大维度面板数据

一、中国对一带一路沿线国家农产品进出口额 1、数据来源&#xff1a;UN comtrade数据库 2、时间跨度&#xff1a;2008-2020 3、区域范围&#xff1a;世界 4、指标说明&#xff1a; 数据中包含原始处理数据 部分数据如下&#xff1a; 二、一带一路人均GDP数据和经济自由度…

中国纺织业对“一带一路”沿线国家出口数据(含64个国家经纬度数据)

数据集名称&#xff1a;中国纺织业对“一带一路”沿线国家出口数据&#xff08;含64个国家经纬度数据&#xff09; 数据来源&#xff1a;联合国商品贸易统计数据库&#xff08;https://comtrade.un.org/data&#xff09; 相关说明&#xff1a;统计单位为亿美元。采用的是HS&a…