自己关注的公众号比较多,之前有收到过有关 Apifox 的文章,自己也是大致看看,还没有用过它!

最近看到比较多有关 Apifox 的文章,所以自己就花了点时间去研究它,使用完后发现确实比Postman功能更强大,界面也更炫酷!

在开发过程中,常常会需要多种工具来完成自己的接口测试任务:

  • 接口文档:Swagger、Yapi

  • 接口测试:Postman、Postwoman

  • Mock:EasyMock、mock.js

  • 性能测试:Jmeter、Locust

官方给出Apifox定位是

Apifox = Postman + Swagger + Mock + JMeter

具体官方文档: https://www.apifox.cn/help

下面就根据一个一个示例来了解下它

一、接口调试

1、接口设计和接口运行

我们在使用Postman的时候,我们是不区分接口设计接口运行,当我们定义好接口后(如接口路径、参数、返回值、数据结构等)直接运行就可以了。

和 Postman 不一样,Apifox 是区分接口设计接口运行两个概念的。

接口设计:接口设计仅仅是设计好接口文档,比如请求url,入参、出参、请求头等信息。

接口运行:运行就是真正请求接口设计中的接口。

2、快捷请求

有时候我们只是临时需要调试某个接口,并不需要接口设计和接口运行区分,那Apifox提供了一个快捷请求的方式。

3、同一个接口保存多个请求示例

有时候我们会对同一个接口,想要保存不同参数的请求示例,有成功的有失败的。

4、环境变量/全局变量/全局参数

我们在上面图片接口设计的时候我们是不需要输入请求路径的ip和端口的(前置URL),因为这个我们进行全局配置,我们可以添加不同的环境,

比如测试环境本地环境线上环境配置不同请求签证URL,这样就更加灵活。同时一些常见的全局参数比如tokenCookie信息,也可以在这里配置。

二、Mock功能

前端开发往往依赖于后端数据接口,在后端接口就绪之前,前端通常很难开工。Mock 功能就是用来解决这个问题的。

有了 Mock 工具之后,前后端可以同步进入开发,后端接口出来之前,前端可以通过 Mock 功能来制造假数据接口来进行开发和调试。

这里有两种场景:

第一种 查询接口 前端开发往往依赖于后端接口,而后端一般先提供接口文档后实现接口功能,因此接口仅仅是个假接口并没有数据返回,这个时候前端可以通过 Mock 功能来制造

假数据渲染页面。

第二种 保存接口 因为可能字段比较多,而且很多字段有条件限制不能随便输入,这个时候前端在保存数据的时候需要手动输入,比较繁琐。那么我们也可以通过 Mock 功能 来

自动生成符合规则的数据来保存。

有关 Mock语法我们可以通过可以查看 https://www.apifox.cn/help/app/mock/

apifox 在使用的时候,只有第二种场景可以实现,第一种查询接口返回假mock数据好像并不支持,不过也不应该支持吧,你说你在postMan请求接口,然后返回你假数据,

那你说请求的意义在哪里呢?我们来看下示例

1、保存接口

首先我们要在设计文档的时候,对一些参数一些规则,比如

这里时候我们在运行接口的时候,点击自动生成的时候,都会生成不同的保存数据,而且都是符合规则的数据

2、智能Mock

这里所谓智能的意思就是,可以针对某一字段的Mock规则 进行全局配置

什么意思呢,就好比上面有个sex字段,根据 mock 的规则 这个字段只能传 男和女,如果每个接口有这个字段我都要配置一下 mock 规则,就显了很麻烦,所以这个时候 Mock

全局配置就显得很重要了。

设置位置:项目设置-智能 Mock 设置。

三、自动化测试

在没有用Apifox之前,我会用Jmeter来进行压测,一般在两个场景下会考虑用自动化测试

并发测试

有时候需要验证某一个接口是否有并发问题,需要同时模拟多个线程来访问同一个接口

数据录入

比如有这么一种场景,产品给你一个excel表格,需要把表格里的用户数据一个一个录入到页面保存,100用户就需要录入100次,而且手动录入还容易出错。

当然你可以做一个数据excel导入功能接口,那不得开发一个新接口吗?这个时候就可以通过自动化测试功能将用户数据保存。

这里根据上面两个场景做下示例

1、并发测试案例

路径:自动化测试 -> 测试用例

这里我新建一个分组叫: 用户分组,在该分组下新建了一个测试用例叫: 用户测试用例

点击上面的详情就可以到测试用例编辑页面了

添加用例有两种方式:从接口导入从接口用例导入 (推荐)

1)从接口导入: 需要手动设置接口参数,否则运行的时候,接口参数是空的。

2)从接口用例导入: 会同步导入接口用例里的参数,会方便很多。

选择后指定的接口后,你还可以通过线程数来模拟并发度,点击运行就会生成测试报告。

2、数据录入

首先是要添加数据集,数据可以导入也可以在这直接输入,我这里手动输入了4个用户信息。

然后修改接口的请求参数,通过引用变量的方式获取测试数据

最后开启测试数据按钮就可以了

整体大体是这样,具体可以看官方文档,写得很清楚。https://www.apifox.cn/help/

声明: 公众号如需转载该篇文章,发表文章的头部一定要 告知是转至公众号: 后端元宇宙。同时也可以问本人要markdown原稿和原图片。其它情况一律禁止转载!

接口测试神器Apifox,亲测好用!的更多相关文章

  1. 推荐一款技术人必备的接口测试神器:Apifox

    1. 背景 作为互联网行业技术从业者,接口调试是必不可少的一项技能,通常我们都会选择使用 Postman 这类工具来进行接口调试,在接口调试方面 Postman 做的确实非常出色.当然除了Postma ...

  2. deepin系统下如何设置wifi热点(亲测有效)

    deepin系统下如何设置wifi热点(亲测有效) deepin wifi ap linux 热点 首先必须吐槽一下linux下设置wifi太累了....来来回回折腾了我好久的说.心累... 好了废话 ...

  3. 爬虫之手机APP抓包教程-亲测HTTP和HTTPS均可实现

    当下很多网站都有做自己的APP端产品,一个优秀的爬虫工程师,必须能够绕过难爬取点而取捷径,这是皆大欢喜的.但是在网上收罗和查阅了无数文档和资料,本人亲测无数次,均不能正常获取HTTPS数据,究其原因是 ...

  4. 新特性,推荐一款超强接口管理神器 Apifox

    去年,在公众号给大家推荐了一款新面市不久的接口测试神器:Apifox,如果还未了解的读者,感兴趣的话可查阅原文:推荐一款技术人必备的接口测试神器:Apifox 为了照顾新进来的读者,且最近一年,Api ...

  5. nginx代理https站点(亲测)

    nginx代理https站点(亲测) 首先,我相信大家已经搞定了nginx正常代理http站点的方法,下面重点介绍代理https站点的配置方法,以及注意事项,因为目前大部分站点有转换https的需要所 ...

  6. C#读取Excel设置(亲测可用)

    OpenFileDialog openFD = new OpenFileDialog(); openFD.FileName = ""; openFD.Filter = " ...

  7. ASP.NET中的文件操作(文件信息,新建,移动,复制,重命名,上传,遍历)(亲测详细)

    做了几天的文件操作,现在来总结一下,错误之处,还望指点!以文件为例,如果对文件夹操作,基本上将File换为Directory即可(例:FileInfo file = new FileInfo(Path ...

  8. 推荐几个最好用的CRM软件,本人亲测

    CRM是英文Customer Relationship Management 的简写,一般译作“客户关系管理”.CRM最早产生于美国,由Gartner Group 首先提出的CRM这个概念的.20世纪 ...

  9. linux 系统下开机自动启动oracle 监听和实例 (亲测有效)

    [oracle@oracle11g ~]$ dbstartORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listene ...

随机推荐

  1. 深入理解 volatile 关键字

    volatile 关键字是 Java 语言的高级特性,但要弄清楚其工作原理,需要先弄懂 Java 内存模型.如果你之前没了解过 Java 内存模型,那可以先看看之前我写过的一篇「深入理解 Java 内 ...

  2. typescript+webpack构建一个js库

    依赖说明 入口文件 tsconfig配置 webpack配置文件 webpack入口文件配置 webpack为typescript和less文件配置各自的loader webpack的output配置 ...

  3. 写了个 Markdown 命令行小工具,希望能提高园友们发文的效率!

    写了个 Markdown 命令行小工具,希望能提高园友们发文的效率! 前言 笔者使用 Typora 来编写 Markdown 格式的博文,图片采用的是本地相对路径存储(太懒了不想折腾图床). 时间久了 ...

  4. 循环控制-break语句和continue语句

    break关键字的用法有常见的两种: 1.可以用switch语句当中,一旦执行,整个switch语句立刻结束 2.还可以用在循环语句当中,一定执行,整个循环语句立刻结束,打断循环 关于循环的选择,有一 ...

  5. 【摸鱼神器】UI库秒变低代码工具——表单篇(二)子控件

    上一篇介绍了表单控件,这一篇介绍一下表单里面的各种子控件的封装方式. 主要内容 需求分析 子控件的分类 子控件属性的分类 定义 interface. 定义子控件的的 props. 定义 json 文件 ...

  6. 洛谷 P2073 送花 treap 无指针

    看了那么多题解都没做对,结果今早上按自己的思路和模板做了做,然后过了. 平衡树裸题 直接上代码: #include<bits/stdc++.h> #define rint register ...

  7. 使用Huggingface在矩池云快速加载预训练模型和数据集

    作为NLP领域的著名框架,Huggingface(HF)为社区提供了众多好用的预训练模型和数据集.本文介绍了如何在矩池云使用Huggingface快速加载预训练模型和数据集. 1.环境 HF支持Pyt ...

  8. Go语言基础一:环境配置与基础语法

    配置开发环境 开始使用Go,首先需要一个完善的开发环境. 下载并安装Go 安装包的下载地址为:https://golang.org/dl/ go语言中文社区下载:https://studygolang ...

  9. 定时脚本删除docker容器中内容

    今天在我同步mongo数据库的时候,服务器的磁盘突然就被占满了导致同步中断,mongo容器也停止工作了.然后就想要弄一个能够定时清理同步过程中留存在docker容器中的mongo数据的脚本.话不多说, ...

  10. 并发异步编程之争:协程(asyncio)到底需不需要加锁?(线程/协程安全/挂起/主动切换)Python3

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_208 协程与线程向来焦孟不离,但事实上是,线程更被我们所熟知,在Python编程领域,单核同时间内只能有一个线程运行,这并不是什么 ...