网络分层和数据

上一小节中介绍了接口测试中一些必要重要的定义,这一节我们来讨论一下在学习接口测试过程中我们要关注的最重要的东西:网络分层和数据。

首先,我们来尝试理解一下,为什么网络是要分层的呢?

我们可以想象一个整个互联网,有无数的终端,很多很多协议,无数的交换机和路由器。随着时代不断发展,这张网络越来越大,甚至你家的冰箱可能都能上网。

为了描述这样的超级复杂的系统,计算机网络采用了分层的方法,来描述这种复杂性。

我们在日常生活中的一个类似的例子是:乘飞机旅行

这里,我们把在机场乘坐飞机旅行的过程按照分层的模型划分成5个层次。

对其中任意一个层次来说,它都和它下面的层次一起提供了某种功能,比如:

1. 在票务层及以下层次,提供了一个人和他的行李从一个机场柜台到另一个机场柜台的转移。

2. 在行李层及以下层次,提供了一个人和他的行李从一个机场的行李托运处到另一个机场的行李托运处的转移。

3. 在登机口层及以下层次,提供了一个人和他的行李从一个机场的登机口到另一个机场的登机口的转移。

4.在起飞着陆层及以下层次,提供了一个人和他的行李从一个机场的跑道到另一个机场的跑道的转移。

上述四点也就是各层向它上面的层次提供的服务。比如:

这里值得注意的是,每一层本身都有一定的功能,比如登机口层提供了登机和离机功能。

同时,每一层都使用它以下的所有层次提供的服务,比如登机口层的功能是建立在起飞着陆层和飞行层提供的把人和行李从一个机场的跑道转移到另一个机场的跑道的服务之上的。

计算机网络也使用类似的分层方式来描述,我们只需要关注各层次本身的功能和向上提供的服务,就可以理解计算机网络这个复杂的系统。

以下是两种网络分层方法:

这里,大家可以从左边的5层因特网协议栈开始学习。右边的7层 ISO标准的OSI参考模型是国际标准化组织试图对网络协议栈进行标准化的时候搞出来的一套东西。我们大概知道他每一层对应原来的5层协议栈中的哪一层就好,有兴趣的话可以通过搜索去获取更多学习资料。搜索关键字: OSI 7层模型

这里的5个层次,下一小节会简单给大家介绍下,开始介绍之前,先说一下分层和接口测试的关系吧。

前面也说了,在分层模型描述下的复杂系统,它的每一个层次都会具备自己的功能,以及向更上方的层次提供服务。服务就是 service,而接口测试有的时候又叫服务测试。比如 web service测试—— 网络服务测试。换言之,我们做接口测试,其实测试的就是待测软件提供的服务。而现在大多数待测软件是网络程序,它使用了互联网各个层次的服务,又在其上附加了自己的功能,并提供给用户用。

因此,我们可以这样来理解接口测试:

这里,一个待测软件,提供给用户用的很多很多接口就是我们接口测试要测试的服务。

同样的,一个复杂的待测软件内部也可以有很多接口,也可以分层次,比如是这样:

像这样,一个待测软件里也分了很多层次,这个图上是一个超级简单的3层结构。那么这里数据库层提供了数据存储的服务,service层和它以下的层次一起提供了各种业务逻辑处理功能,而UI层和它以下的层次一起提供了基于界面的业务逻辑处理功能。

到这里为止,我们知道了更广义的接口测试,在系统的各个层次上提供的服务,都可以做接口测试。

下一节我们接着介绍网络的5个层次的作用,这关系到我们接口测试的实现方式。


本文首发于测试进阶公众号(test_up)

并同步发布于测试进阶知乎专栏和知识星球。

接口测试教程正在我的知识星球火热更新中,

扫码即可加入,10月1日前只需50元。

网络协议分层_接口测试之网络分层和数据相关推荐

  1. Wireshark数据抓包分析(网络协议篇)第1章网络协议抓包概述

    Wireshark数据抓包分析(网络协议篇)第1章网络协议抓包概述 网络协议是用于不同计算机之间进行网络通信的.网络协议是网络上所有设备(如网络服务器.计算机.交换机.路由器等)之间通信规则的集合,它 ...

  2. java的网络协议学习_协议简史:如何学习网络协议?

    大学时,学到网络协议的7层模型时,老师教了大家一个顺口溜:物数网传会表应.并说这是重点,年年必考,5分的题目摆在这里,你们爱背不背. 考试的时候,果然遇到这个问题,搜索枯肠,只能想到这7个字的第一个字 ...

  3. python网络编程内容_图解Python网络编程

    Python Python开发 Python语言 图解Python网络编程 本篇索引 (1)基本原理 本篇指的网络编程,仅仅是指如何在两台或多台计算机之间,通过网络收发数据包:而不涉及具体的应用层功能 ...

  4. 网络协议—三要素与五层网络协议

    三要素 语法:就是这一段内容要符合一定的规则和格式.例如,括号要成对,结束要使用分号等. 语义:就是这一段内容要代表某种意义.例如数字减去数字是有意义的,数字减去文本一般来说就没有意义. 顺序:就是先 ...

  5. 网络协议及网络软件框架设计网络协议

    >>Drew的主页--->网络协议 主页 VxWorks ARM PowerPC 硬件驱动 网络协议 程序示例 下载 个人兴趣 网络协议及网络软件框架设计 网络协议 TCP/IP ( ...

  6. 浅谈网络协议(一) 为什么要学网络协议

    2019独角兽企业重金招聘Python工程师标准>>> 最近在学习网易研究院云技术部首席架构师刘超先生的趣谈网络协议,开一个系列记录一下. 本系列文章是在原作的基础上修正,并加以自己 ...

  7. 【网络协议】专题总结以及网络协议高频面试题汇总(8篇)

    这是一份超详细的HTTP协议攻略,内容大纲如下: 内容如下(点击即可跳转): 一篇文章带你详解 HTTP 协议(上) 一篇文章带你详解 HTTP 协议之报文首部及字段详解(中) 一篇文章带你详解 HT ...

  8. Linux的网络协议族是什么,Linux 网络协议的概述

    网络层协议 网络层协议主要包括 IP.ICMP(网络控制报文协议).ARP(地址解析协议) IP协议 该协议被设计成互联分组交换通信网,以形成一个网际通信环境.它负责在源主机和目的地主机之间传输来自其 ...

  9. python网络协议编辑器_python模块:网络协议和支持

    python模块:网络协议和支持 webbrowser 调用浏览器显示html文件 webbrowser.open('map.html') uuid/hmac/hashlib生成唯一ID 在有些情况下 ...

最新文章

  1. 期末考试中微积分的证明题的分析:Taylor级数展开
  2. IOS笔记 本地化多语言支持
  3. 东北大学软件项目管理与过程改进_工程项目管理信息化实施方案
  4. android标题显示栏菜单在标题之下,Android菜单项标题不显示
  5. 检测网络状态的工具类
  6. jQuery插件编写基础之“又见弹窗”
  7. java吃豆人代码讲解_在吃豆人的这一关里,隐藏着来自程序员的深深恶意
  8. android 读取俄文csv乱码,android导出CSV,中文乱码问题
  9. levy过程、扩散过程、随机过程带跳
  10. 拓端tecdat|R平方/相关性取决于预测变量的方差
  11. [转载] LINUS:利用二级指针删除单向链表
  12. Java面试题及答案整理
  13. Linux下Weblogic部署安装
  14. Android 系统(44)---多语言
  15. NeRF 源码分析解读(二)
  16. 北京航空航天大学夏令营机试题
  17. 要多大内存才满足_什么是延迟满足能力?“延迟满足”能力对孩子有多重要家长要清楚...
  18. 希尔排序实现与复杂度、稳定性分析
  19. 微软云-Azure使用避坑宝典(1)
  20. QQ 浏览器(iOS版)崩溃信息研究

热门文章

  1. Linux CNTOS7 修改网络配置
  2. 3D视觉检测的未来:光度立体技术
  3. 你见过最狠的SCI评论是什么?
  4. java 多线程 同步 观察者 并发集合的一个例子
  5. opencv3.4.1 vs2017 鼠标停在 Mat 上 vs卡死
  6. 3-unit10 iptables
  7. angular-创建自定义的指令
  8. Spring管理Strust的Action
  9. nutz微信应用开发项目 nuby
  10. 《基于场景的工程方法》作者问答录