Apifox接口测试教程(一)接口测试的原理与工具

2024-04-17 05:12

本文主要是介绍Apifox接口测试教程(一)接口测试的原理与工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 🔥 交流讨论:欢迎加入我们一起学习!

🔥 资源分享耗时200+小时精选的「软件测试」资料包

🔥 教程推荐:火遍全网的《软件测试》教程  

📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

 前言

掌握了http协议,就掌握了接口测试

笔者在网络上看过不少接口测试教程,一上来就开始讲怎么操作工具,而不告诉读者为什么要这么操作。 读者可能照猫画虎成功了,也可能操作失败了但不知为何出错。

因此,本文作为接口测试的入门第一课首先会给大家了解到执行接口测试每一步操作的目的和原理,由此大家才能从理论到实践上掌握接口测试,并且熟练之后有自己的创造性发挥。

本文所用的接口测试工具为Apifox,请大家在往下读之前先安装注册好工具。

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

目录

  1. 接口测试测什么
  2. 接口测试的对象:服务器接口
  3. 服务器接口与前端通信的方式:http协议
  4. 读懂APi文档
  5. Apifox接口测试原理
  6. 用Apifox构建第一个接口请求

正文

接口测试测什么

接口测试主要是测试系统 组件间接口的一种测试,主要用于测试服务器与前端(web浏览器,APP)之间的数据交互接口。 测试的重点是要检查接口参数传递的正确性,接口功能实现的正确性,输出结果的正确性,以及对各种异常情况的容错处理的完整性和合理性。

由引文对接口测试的定义可得,接口测试的对象是服务器接口,接口测试的内容包括:接口参数检验,接口功能实现是否正确,接口异常情况容错处理。

接口测试的内容是《Apifox接口测试》系列教程后面的内容,本文主要讲解服务器接口,前端如何通过http协议与服务器通信,Apifox等接口测试工具如何实现接口测试。

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

API指的是一组预先定义好的函数,来让系统或外部的其他组件可以执行它内部实现的功能,但又无须访问源代码或者理解其内部逻辑。

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

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

而接口文档的编写是依据前后端数据传输的协议——Http协议进行的。

要会用接口文档,首先先理解http协议。

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

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

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

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

 
  1. <method><request-URL><version>

  2. <headers>

  3. <entity-body>

  4. 复制代码

  • 响应报文的格式
 
  1. <version><status><reason-phrase>

  2. <headers>

  3. <entity-body>

  4. 复制代码

  • 各个字段的含义如下:

方法(method) :前端希望对服务器执行的操作,包含get,post,put,delete等方法;

方法功能
GET从服务器获取数据
POST向服务器发送要处理的数据
HEAD只从服务器获取文档的首部
DELETE从服务器上删除数据
PUT向服务器提交数据

请求url(request-URL) :所请求资源路径,通过它可找到资源放置的位置。 格式类似于:www.apifox.cn/help/app/co…

版本(version) :报文所使用的http版本,格式类似于:HTTP/1.0

首部(headers) :可以有0个或多个首部,常见的首部如下: 

常见的首部

实体主体(entity-body) :包含一个数据块,支持多种数据格式,如html页面,图片,视频,源代码等等。

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

原因短语(reason-phrase) :原因短语是状态码的可读版本,只对人类有意义。

这些字段初学者会觉得非常抽象难以理解和记忆,但当后面接触到api文档和用apifox做接口测试的时候,就会顿悟——api文档里的参数和方法,url的含义和接口测试界面每个空格要填什么,返回值代表什么含义。

请耐心继续往下读。

读懂API文档

对于测试人员,准备接口测试所需要的文档有产品需求文档+API文档。

需求文档用于梳理接口为何这么设计、是否合理;

针对单个接口,接口文档用于获取:接口描述,请求说明,返回说明。

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

*注:Apifox的ApiHub中,收集了大量开放的API,初学者可选取某个api深入了解接口文档,或作为接口测试的练习物料,注意有些接口需要先获取使用权限。

Api Hub收集的开放API

Api Hub收集的开放API

Apifox接口测试原理

 对于服务器来说,Apifox也是一个前端,只不过其他前端的接口请求由研发人员在代码里封装好,在特定条件下被触发发起请求,而Apifox中,接口请求由用户手动封装,手动发起。

Apifox界面

Apifox界面

看完Apifox接口测试的界面,读者想必能发现,整个界面就是让读者手动构建出一个http请求出来,上两节我们讲的抽象的http协议终于落了地。

因此一个最基础的http接口测试所需要做的步骤就是手动填写完成并发出一个http请求,校验参数

step1.选择请求方法->填写请求url->填写url参数->填写body参数和header参数(如果有)

step2.手动发送请求

step3.查看返回参数是否正常,是否符合接口文档的约定

用Apifox构建你第一个测试请求

在铺垫完上述那么多理论基础之后,大家终于可以开始上手使用apifox来做接口测试了。

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

step1:在apifox的新建接口tab输入“www.baidu.com”,请求方法选择GET,header参数,url参数,body参数均为空,接着点击send按钮。 

step2:查看返回值,可以看到请求回来的数据是一个html页面,即百度首页,我们点击‘preview’按钮,可以看到一个完整的页面显示出来

点击preview tab

点击preview tab

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

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

接口文档描述

step2:根据接口文档描述的,在apifox接口测试界面选择post方法,在params里填写3个请求参数, (client_id和client_secret需要创建应用后才能获得,没有可以先去创建)

填写请求参数

填写请求参数

step3:点击下方**「实际请求」**tab,可以看到apifox实际发出的接口请求形式 如下: 

apifox发出实际请求

step4:查看返回参数可看到返回了我们需要的acess_token 字段: 

练习完成。大家可以利用自己公司内部的接口文档/外部开放api继续进行练习巩固。

复习题

1.写出http协议请求报文和相应报文的格式,并说明每个字段的含义。

2.api文档有哪几部分组成,在接口测试中分别发挥什么作用

3.复述用Apifox做简单接口测试的步骤。 

最后我邀请你进入我们的【软件测试学习交流群:785128166】, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路

作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:程序员二黑】自提!

这篇关于Apifox接口测试教程(一)接口测试的原理与工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/910870

相关文章

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

usb接口驱动异常问题常用解决方案

《usb接口驱动异常问题常用解决方案》当遇到USB接口驱动异常时,可以通过多种方法来解决,其中主要就包括重装USB控制器、禁用USB选择性暂停设置、更新或安装新的主板驱动等... usb接口驱动异常怎么办,USB接口驱动异常是常见问题,通常由驱动损坏、系统更新冲突、硬件故障或电源管理设置导致。以下是常用解决

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

MySql match against工具详细用法

《MySqlmatchagainst工具详细用法》在MySQL中,MATCH……AGAINST是全文索引(Full-Textindex)的查询语法,它允许你对文本进行高效的全文搜素,支持自然语言搜... 目录一、全文索引的基本概念二、创建全文索引三、自然语言搜索四、布尔搜索五、相关性排序六、全文索引的限制七

基于Java实现回调监听工具类

《基于Java实现回调监听工具类》这篇文章主要为大家详细介绍了如何基于Java实现一个回调监听工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录监听接口类 Listenable实际用法打印结果首先,会用到 函数式接口 Consumer, 通过这个可以解耦回调方法,下面先写一个

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

Spring Boot循环依赖原理、解决方案与最佳实践(全解析)

《SpringBoot循环依赖原理、解决方案与最佳实践(全解析)》循环依赖指两个或多个Bean相互直接或间接引用,形成闭环依赖关系,:本文主要介绍SpringBoot循环依赖原理、解决方案与最... 目录一、循环依赖的本质与危害1.1 什么是循环依赖?1.2 核心危害二、Spring的三级缓存机制2.1 三

C#中async await异步关键字用法和异步的底层原理全解析

《C#中asyncawait异步关键字用法和异步的底层原理全解析》:本文主要介绍C#中asyncawait异步关键字用法和异步的底层原理全解析,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录C#异步编程一、异步编程基础二、异步方法的工作原理三、代码示例四、编译后的底层实现五、总结C#异步编程

使用Python构建一个Hexo博客发布工具

《使用Python构建一个Hexo博客发布工具》虽然Hexo的命令行工具非常强大,但对于日常的博客撰写和发布过程,我总觉得缺少一个直观的图形界面来简化操作,下面我们就来看看如何使用Python构建一个... 目录引言Hexo博客系统简介设计需求技术选择代码实现主框架界面设计核心功能实现1. 发布文章2. 加

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的