接口测试的基础(网络传输知识与协议篇)

接口测试的基础

测试人员对于接口测试的理解总是停留在工具使用层面。很多情况下,测试人员会花很大的 代价去学习一个工具。而测试工具本身的局限性,又导致测试人员陷入想直接用现成的测试框架 却又无法进行扩展的僵局。最后由于项目的特殊性等客观因素,测试人员只能放弃工具,脱离了 工具的可视化界面友好操作,发现自己连接口是什么都不明白,更不要说自行完成接口自动化测 试了。随即接口自动化测试由于项目成本及人员能力问题宣告失败。所有客观原因导致的结果都 有其主观原因存在,急于求成、依赖工具就是测试人员在这个问题上的错误。希望测试人员在从 事接口测试相关工作前能熟练掌握本章的内容,接口相关的技术理论会非常枯燥,所以我会以故 事的形式帮助大家理解。

网络传输知识

测试人员开始学习接口测试时,总会先关注HTTP协议。这点没有错,理解HTTP协议的确 是绝大多数接口测试的基础。但大家在学习HTTP协议的过程中会发现一个问题,RFC 2616 官 方给出的 HTTP协议的定义为以下内容。

超文本传输协议(HTTP)是一种分布式、合作式超媒体信息系统。它是一种通用的、无状态 (stateless)的协议,除了应用于超文本传输外,它也可以应用于诸如名称服务器和分布对象管理 系统之类的系统,这可以通过扩展它的请求方法、错误代码和报头来实现。HTTP的一个特点是 数据表现形式是可输入的和可协商性的,这就允许系统能被建立而独立于数据传输。

看了这么大一段文字后,测试人员肯定对HTTP 协议是什么还是一知半解。什么是无状 态?什么是请求方式和报头?这些基础知识的缺失造成测试人员无法通过教材式的理论清晰 理解网络协议,甚至在测试任务中也无法灵活运用,除了影响测试的本职工作,也造成与开 发等技术人员的沟通不便。所以在具体讲解 HTTP协议前,测试人员需要先掌握网络传输的 基础知识。

协议

在接口测试中,从客户端发送request至服务器反馈 response,网络传输的数据就是接口测试 中最主要的部分,而数据传输的本质就是基于网络传输协议。网络传输很显而易见,是指数据在 网络上的传输过程。我会以工作场景故事的形式帮助大家理解网络传输相关的知识。

最近测试部门连续承接几个大项目,整个测试部都在忙忙碌碌中度过。时间过得很快,又到了下班时间。世界500强哎呦喂公司的测试总监开心看了看时间和眼前的工作,长长地叹了一口 气,哎,又是一个加班日。公司为了体恤员工多日的加班辛苦,特意与五星级酒店A签订了订餐 协议。各部门可以根据各自的情况申请加班餐。

开心在统计了加班人数后,填写加班餐的申请单。 订餐申请表中包含以下几项。

开心在统计了加班人数后,填写加班餐的申请单。加班餐申请单如图所示。 订餐申请表中包含以下几项。

“由公司向酒店A订餐”这个业务场景,引发以下几个问题由公司行政及酒店A负责人协商 决定。

1.酒店A需要根据公司反馈的信息进行配菜。这些信息如何传递?

解答:

1.酒店A根据公司传递来的订餐申请单的内容进行配菜。

2.申请单中的字段放置的位置?(格式)

解答:

3.申请单由几个部分组成?

解答:

申请单分为2个组成部分。

(1)订餐的概要信息(头文件),包括以下5个字段

①订餐类型

②时间

③部门ID

④菜系名称

⑤菜系值

(2)订餐的详细信息(正文)

包含订餐数量,是否需要发票,其他需要酒店A提供的服务等内容。

4.每个字段表达什么含义?

解答:

①订餐类型:可以分为加班餐、年会餐、团队活动餐等。

②时间:用餐的时间,格式为年后两位+月+日,例如,171011。

③部门ID:申请的部门ID,格式为公司ID(由酒店A提供给公司)+部门ID,例如,1001。

④菜系名称:需要订餐的种类名,例如,烩饭、意面pasta等。

⑤菜系值:该订餐种类的套餐值,例如,烩饭类型中的第二个套餐值为hf—002。

⑥正文:可以随意填写需要酒店A提供的服务,例如,订餐数量,是否需要发票等内容。

5.是否需要酒店A进行配送?如需要,何时配送?

解答:

是否需要配送根据订餐类型决定,当订餐类型为加班餐时,酒店A完成配菜后即时配送至公司地址。其他订餐类型无需配送,根据用餐时间,由公司员工到酒店A用餐。

以上这些公司与酒店A协商后的约定,就称为协议。酒店A收到公司发送的订餐申请单时会根据申请单协议的内容为公司提供订餐服务,向公司提供订餐申请中的加班餐食物等。信息通过协议准确无误地传达申请人与服务方间互相需要表达的意思,用以清晰地得到各自所需的服务及数据。这就是协议的作用,协议可以分为加班餐协议、宴会餐协议等。每个协议可能需要获取不同的信息,即格式及传输的数据内容不同。所以协议可以分为很多种类,网络传输协议可以分为HTTP 协议、HTTPS协议以及 WebSocket协议等。

END绵薄之力

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

加入我的软件测试交流群:110685036免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

软件测试面试小程序

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

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

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

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

获取方式 :

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值