支持RESTful风格的接口——接口测试方法论(14)

发表于:2022-8-23 09:58

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:陈磊    来源:51Testing软件测试网原创

  第5章  接口测试框架进阶
  我们已经掌握了Python语言的基础知识,这为我们深入学习接口自动化测试奠定了坚实的基础。在此基础上,我们已经开始接触接口自动化测试方面的一些技术,其中包括requests库、接口测试脚本的编写方法、unittest框架的基本使用方法及关键技术等。本书前面介绍的是基础的HTTP接口测试,但在实际工作中,我们遇到的往往不止HTTP接口,本章就探讨我们可能遇到的实际情况。
  5.1  支持RESTful风格的接口
  5.1.1  RESTful是什么
  HTTP 协议的原创作者Roy Thomas Fielding在其博士论文“Architectural Styles and the Design of Network-based Software Architectures”中提出,“我写这篇论文的目的,就是希望在符合架构原理的前提下,通过理解和评估以网络为基础的应用软件的架构设计,得到一种功能强、性能好且适于通信的架构。REST指的是一组架构约束条件和设计原则。”
  根据上面的描述,我们将符合REST(Representational State Transfer,表述性状态转移)约束的架构称为RESTful架构。RESTful由于是面向资源接口设计的并且操作抽象,因此能简化开发人员的不良设计,同时最大限度地利用HTTP最初的应用协议设计理念。要想理解RESTful,我们就必须掌握资源、表现层和状态转移这3个概念。
  1.资源
  这里的资源是指网络上的实体或具体信息,如一段文本、一幅图片、一个多媒体文件或一种可以提供的服务。资源是通过URI(Uniform Resource Identifier,统一资源标识符)进行标识的,要想和资源进行交互,只需要访问资源对应的URI就可以了,示例如下。
  http://127.0.0.1/v1/news:获取新闻。
  http://127.0.0.1/v1/group:获取群组列表。
  http://127.0.0.1/v1/profile:获取个人的详细信息。
  2.表现层
  资源有多种表现形式,具体如何展示是由表现层控制的。例如,数据既可以使用JSON来描述,也可以使用XML来描述。在RESTful服务中,表现层控制着服务器和客户端之间资源的传递形式,比如使用JSON和XML传输文本,而使用JPG、WebP格式传输图片等。当然,通过HTTP传输的数据也可以压缩。
  3.状态转移
  当我们通过网络和网页发生交互时,就会产生交互式且流程化的信息传递,而在信息传递过程中,必然会有数据和状态的变化,这就是状态转移,状态转移是在表现层之上完成的。在状态转移过程中,我们会用到HTTP的以下4种基本操作。
  GET操作:用来获取资源。
  POST操作:用来新建或更新资源。
  PUT操作:用来更新资源。
  DELETE操作:用来删除资源。
  提倡使用的方式如下。
  DELETE http://127.0.0.1/v1/group:删除群组。
  POST http://127.0.0.1/v1/friends:添加群组。
  UPDATE http://127.0.0.1/v1/profile:更新个人信息。
  不提倡或不允许使用的方式如下。
  http://api.pr.com/v1/deleteGroup
  另外,RESTful要求HTTP 状态码必须能够传递出服务器的状态信息。例如,常用的HTTP状态码200表示成功,500表示服务器内部错误。
查看接口测试方法论》全部连载章节
版权声明:51Testing软件测试网获得作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号