「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者

  • 一、Apifox是什么?
  • 二、Apifox能干什么?
    • 1)API 文档设计
    • 2)API 调试
    • 3)API 自动化测试
    • 4)API 数据 Mock
    • 5)CI 持续集成
    • 6)数据库操作
    • 7)自动生成代码
  • 三、Apifox怎样使用
  • 四、Apifox的优势在哪里?
    • 1)自动校验数据结构
    • 2)数据模型定义、引用
    • 3)接口用例管理
    • 4)零配置 Mock
  • 五、总结

前两天,有个朋友跟我抱怨,项目上线就炸了。

我说,项目炸了很正常呀,大家你看我,我看你,瞬间变身千手观音,甩锅大师,堪比火影结印,那场面,想想都震撼。

她说你是不是觉得自己很幽默,说罢就转身找前台要了一杯水。

这里给大家科普一个小知识,如果裤子被人泼了水,一定要叫外卖换一条裤子,不然大家都会以为你尿了裤子。

我说小伙子你不讲武德,你不懂,你们上线之前都不测试一下吗?

她给我甩来一张截图,就这接口文档,我测**!


我一看,这不是Swagger UI 自动生成的那种接口文档吗,API难找不说,参数还老是出错。都2202年了,竟还有人用这种东西。

给你看看我们的Apifox吧。

一、Apifox是什么?

认识一个东西之前,我们得先知道它是什么。

Apifox 是一款接口测试工具,准确的说,是一款是集API 文档、API 调试、API Mock、API 自动化测试于一身的一体化协作平台。

为什么要给大家介绍这个工具呢?

因为它强,而且强的不是一星半点儿,postman在它面前,憨的简直就跟海尔兄弟一样。

Apifox是中国自主研发的集文档、接口调试、Mock、接口自动化测试一体的协作平台。

它通过一套系统、一份数据,解决多个系统之间的数据同步问题。只要定义好接口文档,接口调试、数据Mock、接口测试就可以直接使用,无需再次定义;接口文档和接口开发调试使用同一个工具,接口调试完成后即可保证和接口文档定义完全一致。

二、Apifox能干什么?

那么,这款国产化的接口测试工具究竟能干什么呢?

1)API 文档设计

首先是文档设计,Apifox的接口文档完全遵循 OpenAPI(Swagger) 规范,并且支持数据模型,接口之间可以复用相同数据结构,支持在线分享 API 文档,方便与外部团队协作。

除此之外,Apifox还拥有可视化 的API 文档管理,大大减少了零基础学习的成本。

2)API 调试

我们拿Postman来做个对比。

Postman有的功能 Apifox 都有(如环境变量、前置/后置脚本、Cookie/Session 全局共享等),并且比 Postman 更高效好用。

除此之外,Apifox还有自动校验数据结构:校验返回的数据结构是否符合文档定义,自动发现接口数据异常,同时支持接口用例功能(一个接口多个用例)。

在加上可视化的断言、提取变量、数据库(SQL)操作等功能,各项功能完爆Postman。

3)API 自动化测试

Apifox拥有完善的 API 场景测试(流程测试)功能,支持自定义前置/后置脚本,自动校验数据正确性。脚本语法 100% 兼容 Postman,降低学习成本,支持调用 javascript、java、python、php、js、BeanShell、go、shell、ruby、lua 等语言代码。

4)API 数据 Mock

Apifox内置了 Mock.js 规则引擎,可以非常方便 mock 出各种数据,并支持定义数据结构时设置 mock 规则,

零配置即可 mock 出非常人性化的数据(根据 API 文档智能 mock),同时支持根据不同参数值返回不同数据内容。

5)CI 持续集成

Apifox支持集成 Jenkins 等持续集成工具,并且能够以命令行方式运行 API 测试 (Apifox CLI)。

6)数据库操作

Apifox支持读取数据库数据,作为 API 请求参数使用。可以读取数据库数据,用来校验(断言) API 请求是否成功。

7)自动生成代码

Apifox可以根据接口/模型定义,自动生成各种语言/框架的业务代码和 API 请求代码。并且支持 TypeScript、Java、Go、Swift、ObjectiveC、Kotlin、Dart、C++、C#、Rust 等 130 种语言及框架。

针对一些个性化的需求,Apifox还提供了自定义代码模板,自动生成符合自己团队的架构规范的代码。

三、Apifox怎样使用

了解了Apifox的基本功能有,我们来实际使用一下。

首先,到官网链接: apifox.cn 下载最新版本的Apifox。


我是Windows版本,这里我选择下载 Windows 桌面版(64位)。

下载完成后,使用邮箱登录Apifox,如果没有邮箱或者嫌麻烦,也可以直接使用微信登录。

点击文档右上角的运行按钮,就会出现“在线运行”的模块。


这个界面上就能直接调试接口了!

  1. 填参数
  2. 选环境
  3. 点发送

接口请求就发出去了!下面就有返回结果!

后端随便改代码,前端随时可以在线调试!


而且,还可以导入多个来源的 Swagger!一套接口文档来自多个不同的后端项目也没问题!

在这个在线文档页面上,还有一行熟悉的 icon,点击对应的语言,就能直接生成请求的代码!


不光是请求,“返回响应”里也有个“生成代码”。


左边还可以选择你生成代码的配置,包括:编程语言、命名风格、校验开启等等。

Apifox 里面内置了一整套 Mock 规则,当我们的返回字段名匹配上了其中的某条规则,就会根据对应规则生成随机值(Mock.js 语法规则)


字段名称的匹配方式支持通配符和正则表达式,比如字段只要以 “url” 结尾,就会得到一个正确的网址;以 “mail” 打头,就会得到一个邮箱地址。

要是以 “time” 结尾,那还会自动根据字段的数据类型来 Mock 值:string 类型的话就返回一个 ‘yyyy-mm-dd hh:mm:ss’ 格式时间;integer 类型的话就返回一个时间戳。

使用 Apifox 调试接口的时候,系统会根据接口文档里的定义,自动校验返回的数据结构是否正确,无需通过肉眼识别,也无需手动写断言脚本检测,非常高效!

四、Apifox的优势在哪里?

1)自动校验数据结构

使用 Apifox 调试接口的时候,系统会根据接口文档里的定义,自动校验返回的数据结构是否正确,不需要通过肉识别,也不需要手动写断言脚本检测。

2)数据模型定义、引用

使用Apifox定义时可以直接引用数据模型,并且引用的数据模型,用户还可以自己定义。

数据模型之间也可以相互引用。同样的数据结构,只需要定义一次即可多处使用;修改的时候只需要修改一处,多处实时更新,避免不一致。

3)接口用例管理

通常一个接口会有多种情况用例,比如 正确用例 参数错误用例 数据为空用例 不同数据状态用例。Apifox可以在定义接口的时候定义好这些不同状态的用例,接口调试的时候直接运行。

4)零配置 Mock

Apifox 内置智能 mock 规则库,根据字段名、字段数据类型,智能优化自动生成的 mock 规则。

根据内置规则,可自动识别出图片、头像、用户名、手机号、网址、日期、时间、时间戳、邮箱、省份、城市、地址、IP等字段,从而 Mock 出非常人性化的数据。

除了内置 mock 规则,用户还可以自定义规则库,满足各种个性化需求。支持使用 正则表达式、通配符 来匹配字段名自定义 mock 规则。

五、总结

总的来说,Apifox是一款优秀的免费的国产软件,Apifox = Postman + Swagger + Mock + JMeter。集接口文档工具、接口 Mock 工具、接口自动化测试工具、接口调试工具于一体,提升 10 倍研发效率。

感兴趣的同学可以下载尝鲜,说不定以后工作中就能用到。

官网:apifox.cn

项目上线就炸,这谁受得了相关推荐

  1. SAP MM 项目上线库存初始化导入问题 --- 进口物料在途库存之处理

    SAP MM 项目上线库存初始化导入问题 --- 进口物料在途库存之处理 项目实践中,在上线前夕导入初始化库存的时候,存在在途库存.当以贸易条款FOB或者EXW进口物料的时候,供应商一旦货物装船离港, ...

  2. 项目上线简化流程介绍

    最近上线因为高并发多线程定时任务引发了一次事故问题,当上线完成,且将事故处理完后回顾了下本次事故原因. 1.后半夜上线,人都比较困乏,极容易产生疏忽得情况. 2.上线业务较多,上线后测试点很多.与测试 ...

  3. Laravel项目上线部署

    2019独角兽企业重金招聘Python工程师标准>>> 老项目执行步骤: 1.停掉服务 $ php artisan down 2.从github拉代码. $ git pull 3.编 ...

  4. 记一次php项目上线遇到的坑

    最近上线了一个项目的后台程序(基于ThinkPHP),期间遇到了不少坑,特此记录. 1,系统环境:CentOS Linux release 7.4.1708 (Core) 内核版本:3.10.0-69 ...

  5. 记一个自己项目上线的全过程

    个人终于第一次完成了一个java web项目从策划到最终上线的全过程,虽然项目十分简单,但全流程跑通的感觉还是倍爽的,之后再做项目则只是各个环节上的细化了. 现在我将我的"第一次" ...

  6. luajit表记录监控(忆一次项目上线中遇到的luajit对象内存泄漏)

    1. 背景 我们项目为ARPG手游(也没啥见不得人的,就叫暗黑血统手游,后期不少坑钱活动的实现出自我手,轻拍...).我们的服务器底层设计源于某大厂,c/c++和luajit的实现,这次要说的是项目上 ...

  7. Vue 项目上线优化

    上线项目的优化 优化上线项目,首先在上线打包时我们通过babel插件将console清除,当然对项目打包后的体积的影响是微乎其微,对项目的入口文件的改善也是很有必要的,因为在开发阶段和上线如果我们使用 ...

  8. CentOS7 2.新项目上线脚本

    我司一个客户项目对应代码仓库的一个分支,每次新项目上线总是要从master复制一个分支,接着git clone到本地,在IDEA里面替换配置文件内容,上传到代码仓库,启动项目,配置nginx.conf ...

  9. vue v-if判断数组元素的值_Vue项目上线做的一些基本优化

    前言 本文主要是做一个Vue性能优化的帖子,做一个参考文档,对以后项目上线做一些集合文档.如果对各位在项目优化时,做一个文档参照. 开发过程 在开发项目的时候,就要注意项目的一些小技巧,下面我就罗列一 ...

最新文章

  1. 区块链应用 | 区块链将永久改变法律行业的七种方式
  2. mysql innodbuffer修改_mysql参数之innodb_buffer_pool_size大小设置
  3. jsoncpp去掉多余字符_Python超详细的字符串用法大全
  4. mysql服务启动失败 Starting MySQL. ERROR! The server quit without updating PID file
  5. jboss 的debug启动4法
  6. springAOP 之 前置输出
  7. Decode Ways
  8. python中的写入文件
  9. 华为网络,模拟器ensp的基本使用
  10. 每个开发人员都应该学习的5种编程语言(上)
  11. java语言中线程最高优先数是_在 Java 中,高优先级的可运行线程会抢占低优先级线程。( )_学小易找答案...
  12. 快递鸟即时查询接口的连接和使用
  13. [UNR #6]稳健型选手
  14. js 修改className
  15. 【Centos7 NTP 服务器和客户端配置(含离线状态) 附赠手动配置系统时间】
  16. golang 实现华容道
  17. 机器学习通俗入门-Softmax 求解多类分类问题
  18. Python抓取糗事百科网页信息以及源码下载
  19. 电子签约B2B供应链,又一个行业发展新动态!
  20. 自然语言处理NLP星空智能对话机器人系列:Facebook StarSpace框架初体验

热门文章

  1. 华为笔试-十六进制转十进制
  2. 计算机保研面试经验分享—国防科技大学
  3. 达梦数据库在docker上的运行和添加rlwrap环境变量
  4. 【Java设计模式】观察者模式
  5. 520送男朋友什么蓝牙耳机好?真无线运动蓝牙耳机推荐
  6. Note 7爆炸门事件告诫科技行业:冒进的危害猛于虎!
  7. webkit开发学习笔记
  8. 警察是否可以随意查看公民手机
  9. IDEA设置启动选择项目
  10. 组策略方式统一域用户计算机桌面壁纸