Apifox接口测试教程(一)接口测试原理与工具
笔者在网上看了很多接口测试教程,都是一上手就开始讲如何操作工具,而没有告诉读者为什么需要这样操作。因此,本文作为接口测试的第一堂入门课,首先让你了解进行接口测试的每一步的目的和原理,让你从理论到实践掌握接口测试,并在学完之后发挥自己的创造力。接口测试主要是对系统组件之间的接口进行测试。根据引文中接口测试的定义,接口测试的对象是服务器接口。接口测试的内容是《Apifox接口测试》系列教程最后的内容。本文主要讲解服务器接口,前端如何通过http协议与服务器通信,以及Apifox等接口测试工具如何实现接口测试。
❞
笔者在网上看了很多接口测试教程,都是一上手就开始讲如何操作工具,而没有告诉读者为什么需要这样操作。 读者可能已经成功复制了猫,或者操作可能失败但由于某种未知原因出现了问题。
因此,本文作为接口测试的第一堂入门课,首先让你了解进行接口测试的每一步的目的和原理,让你从理论到实践掌握接口测试,并在学完之后发挥自己的创造力。变得熟练。
本文使用的接口测试工具是Apifox。 在进一步阅读之前,请安装并注册该工具。
Apifox官方下载地址:
目录接口测试衡量什么? 接口测试对象:服务端接口 服务端接口如何与前端通信:http协议 阅读APi文档 Apifox接口测试原理 使用Apifox构建第一个接口 请求体 接口测试衡量什么?
❝
接口测试主要是对系统组件之间的接口进行测试。 主要用于测试服务器与前端(网页浏览器、APP)之间的数据交互接口。 测试的重点是检查接口参数传递的正确性、接口函数实现的正确性、输出结果的正确性以及各种异常情况的容错处理的完整性和合理性。
❞
根据引文中接口测试的定义,接口测试的对象是服务器接口。 接口测试的内容包括:接口参数检查、接口功能是否正确实现、接口异常的容错处理。
接口测试的内容是《Apifox接口测试》系列教程最后的内容。 本文主要讲解服务器接口,前端如何通过http协议与服务器通信,以及Apifox等接口测试工具如何实现接口测试。
接口测试对象:服务器接口
API是指一组预定义的函数,允许系统或其他外部组件执行内部实现的功能,而无需访问源代码或了解其内部逻辑。
在需求开发过程中,前端和后端是分开开发的。 两端研发人员共同定义接口并编写接口文档。 在后续的开发过程中需要遵循该协议文档。
因此,接口测试也是黑盒测试的一种。 测试人员需要根据接口文档对服务端API进行测试,检测约定的功能是否正确实现,以及是否对异常情况进行容错处理。
接口文档是基于HTTP协议、前后端数据传输协议编写的。
为了能够使用接口文档,首先必须了解http协议。
服务器接口与前端通信的方式:http协议
服务器和前端通过互相发送http报文完成数据交互。 本节将介绍如何创建http消息以及如何理解消息的各个部分。 了解了之后就可以掌握接口测试的基本内容了。
请求消息格式
复制代码
复制代码
Method:前端希望对服务器进行的操作,包括get、post、put、delete等方法;
方法函数
得到
从服务器获取数据
邮政
发送数据到服务器进行处理
头
仅从服务器获取文档的标题
删除
从服务器删除数据
放
向服务器提交数据
请求URL(request-URL):请求资源的路径,通过该路径可以找到资源放置的位置。 格式类似于:...
Version:消息使用的http版本,格式类似于:HTTP/1.0
标头:可以有 0 个或多个标头。 常见的标头如下:
Entity-body:包含数据块,支持多种数据格式,如html页面、图片、视频、源代码等。
状态码(status-code):描述请求结果,成功或失败。
原因短语:原因短语是状态代码的人类可读版本,仅对人类有意义。
初学者会觉得这些字段非常抽象,难以理解和记忆,但是当他们接触到api文档,使用apifox做接口测试时,就会有一个顿悟——api文档中的参数和方法,其含义URL,以及每次的接口测试接口应该填什么,返回值是什么意思?
请耐心阅读。
阅读 API 文档
对于测试人员来说,接口测试需要准备的文档包括产品需求文档+API文档。
通过需求文档来梳理接口为什么要这样设计,是否合理;
对于单个接口,通过接口文档获取:接口描述、请求描述、返回描述。
以百度的开放API——文字识别接口为例:如果我们想要使用它的文字识别功能,就需要调用它的接口。 那么我们需要知道在发起这个文字识别接口请求时,各个字段需要填写什么。
*注:Apifox的ApiHub收集了大量开放API。 初学者可以选择一个API来详细了解接口文档或者将其作为接口测试的练习材料。 请注意,某些接口需要先获得许可才能使用。
Api Hub 收集的开放 API
Apifox接口测试原理
对于服务端来说,Apifox也是一个前端,只不过其他前端接口请求被开发者封装在代码中,在特定条件下触发发起请求。 在Apifox中,接口请求是由用户手动封装并发起的。
Apifox接口
看完Apifox接口测试接口,读者肯定会发现整个接口允许读者手动构造http请求。 前两节我们谈到的抽象http协议终于实现了。
场景:
应用服务器
用于提供创建应用程序服务器实现和应用程序功能的通用方法,重点关注支持其应用程序的程序或脚本的处理效率。
大多数应用程序服务器框架都包含全面的服务层模型。 应用程序服务器是软件开发人员可以通过平台定义的 API 访问的一组组件。
如:Tomcat、JBOSS、Weblogic、WebSphere
Web 服务器是应用程序服务器的子集。 ,但Web服务器更侧重于处理HTTP请求,而应用服务器则侧重于为业务系统构建组件支持。
各自的优点:Nginx集成了多种应用
#配置服务器1
upstream sample1 {
server 127.0.0.1:8080
}
#配置服务器2
upstream sample2 {
server 127.0.0.1:8081
}
server {
# 映射服务器1
location /simple1/{
proxy_pass http://sample1;
}
# 映射服务器2
location /simple2/{
proxy_pass http://sample2;
}
}
负载均衡
#配置服务器集群组
upstream sample1{
#实例1 设置权重 通信失败的最大次数 失败次数达到max_fails时,多久内该服务器无效
server 127.0.0.1:8080 weight=1 max_fails=3 fail_timeout=30s
#实例2
server 127.0.0.1:8081 weight=1 max_fails=3 fail_timeout=30s
}
server {
# 映射服务器集群
location /sample1/ {
proxy_pass http://simple1;
}
}