1.0 前言
应用程序编程接口(Application Programming Interface, API)是这些年来最流行的技术之一,强大的Web应用程序和领先的移动应用程序都离不开后端强大的API。API技术的应用给系统开发带来了便利,但也对测试人员提出了更高的要求,如何以一种有效的方式测试这些API,并且确保它们按照预期运行,是目前测试人员面临的主要问题。
今天我们大概介绍一些接口测试的一些概念以及一些专业术语等等
1.1 接口测试概念
1.1 接口测试
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
1.2 接口测试的原理
测试人员借助辅助工具模拟客户端向服务端发送请求报文,服务端接受请求报文后,对对应的报文做出处理并向客户端返回应答,工具模拟客户端接受应答,然后测试人员检查应答是否准确
1.4 常用接口测试工具
- Postman
- Jmeter
- eolinker
- doclever
- itest
这里我们用Postman
1.2 接口测试基础知识
1.2.1 接口的定义
见名知意,接口就是连接两个不同系统或者一个系统中两个不同的功能,它们之间相互连接的部分称为接口。
1.2.2 接口的分类
(1) HTTP接口
它是基于超文本传输协议(HTTP)开发的接口,但并不排除没有使用其他协议。
(2) Web Service接口
它是系统对外的接口,比如你要从别的网站或服务器上获取资源,一般来说,别人不会把数据库共享给你,它们会提供一个他们写好的方法,让你用来获取数据,你是用他们写好的方法就能引用他们提供的接口,从而达到同步数据的目的
(3) RESTful接口
简称REST,其描述了一个架构样式的网络系统,核心是面向资源。REST专门针对网络应用设计和开发方式,降低开发的复杂性,提高系统的可伸缩性。
1.2.3 HTTP请求
HTTP请求包含四部分:统一资源定位符(URL)、方法(Method)、头(Headers)和体(Body)
1 统一资源定位符(URL)
对于URL大家应该都不陌生,故我们就不浪费篇幅在这里了,直接跳过好吧
2 Method
这里在博主之前性能测试知识准备帖子有说明,还请大家移步查看
3 Header和Body
HTTP报文是面向文本的,报文中的每一个字段都是ASCII码串,各个字段的长度是不确定的。HTTP请求报文由请求行、头、空行和请求数据4个部分组成,请求报文的一般格式如下。
http
<request-line>
<headers>
<blank line>
[<request-body>]
1.2.4 HTTP响应
将HTTP请求发送到服务器后,服务器会给出相应的应答,服务器返回的应答消息称为HTTP响应
1 HTTP响应报文
HTTP响应报文由3部分组成,分别是:状态行、消息报头和响应正文。HTTP响应的格式与请求的格式十分类似,格式如下:
http
<status-line>
<headers>
<blank line>
[<response-body>]
状态行格式为HTTP-Version Status-Code Reason-Phrase CRLF
- HTTP-Version****:服务器HTTP的版本
- Status-Code:服务器返回的响应状态代码
- Reason-Phrase:表示状态代码的文本描述
- CRLF:表示一个回车符和一个换行符
对于状态码,同样之前也介绍了,同样请大家移步一下
2 JSON
(1)JS对象标记的定义
JS对象标记(JavaScript Object Notation, JSON)是一种轻量级的数据交换格式。它基于ECMAScript(W3C制定的JavaScript规范)的子集,采用完全独立于编码语言的文本格式来存储和提示数据。简介和清晰地层次结构使得JSON成为理想的数据交换语言,其易于阅读和编写,同时也易于机器解析和生成,并能有效地提升网络传输效率。因此,HTTP接口响应一般为JSON格式。
(2) JSON语法规则
JSON语法规则包括用大括号保存对象、用键值对表示对象、用逗号分隔每个对象、用中括号保存数组
(3) JSON示例
json
{"name": "storm", "age": "32", "sex": "male"}
至于Postman的下载安装,直接官网下载安装就行了,安装静默安装。
这就是我们的一个简单的知识准备了,以上就是这节的全部内容,如有错误,还请各位指正!
最后: 可以在vx公众号:【自动化测试老司机】免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。