in

Apifox接口测试教程:接口测试原理与工具

Apifox接口测试教程

笔者在网上看到了很多接口测试教程,一上来就开始讲如何操作该工具,而没有告诉读者为什么要这样做。读者可能成功地画出了猫和老虎,或者操作可能失败但不知何故出了问题。

因此,本文作为接口测试入门的第一课,首先让你了解进行接口测试的每个步骤的目的和原理,让你从理论到实践掌握接口测试,并拥有自己的接口测试方法。熟练后的创造力。

本文使用的接口测试工具是Apifox,在阅读之前请先安装并注册该工具。

Apifox官方下载地址: http: //www.apifox.cn

1. 接口测试要测试什么

接口测试主要是测试系统 组件间接口的一种测试,主要用于测试服务器与前端(web浏览器,APP)之间的数据交互接口。 测试的重点是要检查接口参数传递的正确性,接口功能实现的正确性,输出结果的正确性,以及对各种异常情况的容错处理的完整性和合理性。
从引用中接口测试的定义来看,接口测试的对象是服务器接口。接口测试的内容包括:接口参数检查、接口功能是否正确实现、接口异常的容错处理。
接口测试的内容是《Apifox接口测试》系列教程的后半部分。本文主要讲解服务器接口,前端如何通过http协议与服务器通信,以及Apifox等接口测试工具如何实现接口测试。

2、接口测试的对象:服务器接口

API是指一组预定义的函数,允许系统或其他外部组件执行其内部实现的功能,而无需访问源代码或了解其内部逻辑。

在需求开发过程中,前后端分离开发,两端研发人员共同定义接口,编写接口文档。在后续的开发过程中需要遵循该协议文件。

因此,接口测试也是黑盒测试的一种。测试人员需要根据接口文档对服务端Api进行测试,检查约定的功能是否正确实现,以及对异常情况是否有容错能力。

接口文档的编写是基于Http协议,前后端数据传输协议。

为了能够使用接口文档,首先要了解http协议。

3、服务器接口与前端通信的方式:http协议

服务器和前端通过互相发送http报文完成数据交互。本节将介绍如何创建http消息以及如何理解消息的各个部分。了解之后就可以掌握接口测试的基本内容。

blank

http 消息的三个组成部分 http 消息是一个格式化的数据块。消息类型包括客户端请求和服务器响应。它们由 3 部分组成:

    起始行(start line) 对报文进行描述
    首部块(header) 包含属性 Content-Type: Content-Length:
    主体(body) 包含文本或二进制数据,可以为空

请求消息格式:

<method><request-URL><version>
<headers>
<entity-body>

响应消息格式:

<version><status><reason-phrase>
<headers>
<entity-body>

各字段含义如下:

method(方法):前端要对服务器进行的操作,包括get、post、put、delete等方法;
方法函数
GET 从服务器获取数据
POST 将需要处理的数据发送到服务器
HEAD 只从服务器获取文档的头部
DELETE 从服务器删除数据
PUT 向服务器提交数据

请求url(request-URL):请求的资源路径,通过该路径可以找到资源的位置。格式类似: https: //www.apifox.cn/help/app/contact-us/

Version(版本):消息使用的http版本,格式类似于:HTTP/1.0

blank

可以有零个或多个标头,常用标头如下: 常用标头 1619cd0cb3a952

Entity-body:包含支持多种数据格式的数据块,如html页面、图片、视频、源代码等。

状态码(status-code):描述请求的结果,成功或失败。

Reason-phrase:Reason-phrase 是状态码的可读版本,仅对人类有意义。

这些领域的初学者会觉得很抽象,难以理解和记忆,但是当接触到api文档,使用apifox进行接口测试时,就会有一个顿悟——api文档中的参数和方法,含义url和接口测试接口。需要填什么,返回值是什么意思?

请耐心等待并继续阅读。

4.阅读API文档

对于测试人员来说,准备接口测试所需的文档包括产品需求文档+API文档。

需求文档用于梳理接口为何如此设计,是否合理;

对于单个接口,通过接口文档获取:接口描述、请求描述、返回描述。

以百度开放API和文字识别接口为例:如果我们想要使用它的文字识别功能,需要调用它的接口,那么我们需要了解每个字段需要填写哪些内容来发起这个文字识别接口请求。

blank

blank blank

注:在Apifox的ApiHub中,收集了大量的开放API。初学者可以选择一个api来进一步了解接口文档或者将其作为接口测试的练习材料。注意,有些接口需要先使用。

blank

Api Hub 收集的开放 API

五。Apifox接口测试原理

blank
对于服务端来说,Apifox也是一个前端,只不过其他前端的接口请求都是由开发者封装在代码中,在一定条件下触发发起请求。在Apifox中,接口请求是由用户手动封装并发起的。
blank

看完Apifox接口测试的界面,读者一定能够发现整个接口都是供读者手动构造http请求的。前两节我们讲的抽象http协议终于落地了。

因此,最基本的http接口测试需要手动完成步骤并发送http请求来验证参数。

步骤1。选择请求方式->填写请求url->填写url参数->填写body参数和header参数(如果有)

第2步。手动发送请求

步骤3。检查返回参数是否正常,是否符合接口文档的约定,
用Apifox构建你的第一个测试请求

奠定了以上的理论基础之后,大家终于可以开始使用apifox进行接口测试了。

练习1:使用get请求获取html页面

在apifox的新界面选项卡中“http://www.baidu.com”,请求方式选择GET,header参数、url参数、body参数均为空,然后点击发送按钮。step2:查看返回值,可以看到请求的数据是一个html页面,即百度首页,我们点击

blank

blank

blank

练习2:获取百度开放API的access_token,即获取API使用授权

step1:查看百度开放api接口文档获取access_token,获取请求方法和请求参数

接口文档说明

blank
step2:根据接口文档的说明,在apifox接口测试界面选择post方法,在params中填写3个请求参数(client_id和client_secret只能在创建应用后获取,如果没有,可以先创建一下)
blank

步骤3:点击下面的实际请求选项卡,可以看到apifox实际发送的接口请求形式如下: apifox发送了实际请求

blank

blank

步骤4:检查返回参数,看到返回了我们需要的access_token字段:
blank
练习完成。可以利用自己公司的内部接口文档/外部开放api继续实践和巩固。

blank

Written by 爬取 大师

阿里P12级别选手,能够突破各种反爬, 全能的爬取大师,擅长百万级的数据抓取!没有不能爬,只有你不敢想,有爬取项目可以联系我邮箱 [email protected] (带需求和预算哈, 不然多半不回复)