• 0
  • 0
分享

最近趁摸鱼时间体验了一款神器,堪称后端前端们的摸鱼加速器,测试们的寿命催化剂。

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

一套系统、一份数据,可解决多个系统之间的数据同步问题。

定义好接口文档,则接口调试、数据Mock、接口测试就可以直接使用,无需再次定义;接口文档和接口开发调试也可以同一个工具,接口调试完成后即可保证和接口文档定义完全一致。高效、及时、准确!

1.png

已有的API工具,例如postman,fiddler等,虽然功能也很强大,但是食用起来还是比较的繁琐,面对少量的接口还好说,要是面对大量的接口,需要耗费一定时间和精力去分门别类建立规范文档,添加相应的接口,Mock数据测试......

或许因为习惯性的问题,难以移步新的软件工具,但是这款Apifox工具一旦你接触之后,你就可能停不下来并爱上它。以下是亲测体验:

Swagger接口导入Apifox

先前接口服务通常配置开源Swagger,来统一前后端用于生成文档和代码的工具,它使用 yaml/json 作为描述语言。通过 OpenAPI Specification 来描述 API,最后使用 Codegen 根据不同的配置来生成各种 language、library 的 Code、Docs。

这个功能出现之后,已经成为了不少拥护者爱戴,接口分门别类,请求的参数和输出参数一目了然。

但当接口数量堆积一定数量之后,测试的累赘随处可见,无法快速定位到目标接口,测试的数据痕迹无法保留,切换接口版本需要重新输入token和参数,无法mock数据,需要手动“张三”,“123”......Umm

所以,使用Apifox,以上的问题通通可以解决。

5.png

首先,我们通过Swagger文档的json格式地址导入到Apifox。这成功的快感着实让人眼前一亮。

3.gif

在项目概览的位置,有一个自动导入功能,可以看到选择导入的频率,亲测每隔3小时之后就会更新接口。

默认选项OpenApi(Swagger),输入名称和Swagger的json地址,在高级选项里最好勾选接口路径加上basePath,因为接口域名地址我们可以在全局配置,然后指定在你建立的项目文件夹里,另外接口的覆盖模式也可以由自己选择。

导入之后,发现接口按照Controller的命名为分组导入,相应数据模型也会导入,请求接口的时候按照原有的接口实体进行调用。

4.gif

Apifox 全局变量配置

前面提到过,导入接口文档的时候,选择【接口路径加上basePath】,此时我们看到调用接口的地址是一个半路径,现在我们通过全局变量的方式来补全接口。

5.gif

右上角点击管理全局变量,添加接口服务名称和接口的地址。

在接口的目录里的服务(前置url)添加接口地址。我们的项目可能会包含多个接口服务,我们按每个接口服务为分组,相应的文件夹里选择自己的接口地址,然后所有子级的文件夹的前置url都继承自父类(感叹面向对象发挥到了极致)。

然后,就可以请求了?你是否会发现,我们的接口里会有授权token以及特殊头部?难道我们每个接口请求都要手动配置一遍吗?先生多虑了,我们来看。

我们以token为例子,首先在全局添加一个变量:om_token,然后在授权接口里调用之后,点击【后置操作】,添加之后选择【提取变量】。

注意,此处的变量名称要和全局变量的一致,然后通过表达式:$.属性名 进行提取变量赋值给全局变量。

成功之后,会在控制台里看到已经赋值给om_token了,在全局变量管理里也能看到token的值。

然后使用,在接口的总目录里,点击【Auth】,选择【Bearar Token】,Token的值选择刚刚配置的变量名【om_token】。这里可能不同的接口有不同的token类型,只需选择对应的接口文件夹里配置对应的token变量即可。

通过全局变量,我们可以把固定不变的参数都可以通过全局变量或者提取变量的方式来实现呢。

6.gif

到了这里我们已经把接口的环境搭建好了,现在可以实现调用。此处一个完整的接口调用就完成了。

7.png

比如Put,Post请求需要传递实体的,我们可以通过自动生成Mock数据进行请求,而不用通过我们自己手动输入张三,李四啦。

8.png

Apifox 自动测试组件

我们还可以实现自动化测试,自行选择单元测试或者集成测试。

在左侧菜单【自动化测试】里右键分组添加【测试用例】,选择从接口中导入,选择需要测试的接口,下边可以选择【绑定】接口,就会两边同步更改,相应的接口测试数据也会同步测试。

9.gif

导入测试的接口之后呢,右侧可以选择测试的频次,也支持压力测试。

10.png

配置之后,可以查看对应的测试报告,成功和失败的数据,以及接口调用的时间。咱们是不是可以开发一个功能之后,配置一些压力测试数据,让他自己跑我们就可以摸鱼刷水去了?

11.png

咱作为一名严谨的码农,一些测试用例自然要考虑全,我们可以在mock参数的时候 ,值可以配置动态变量,例如等价类划分、边界值法、因果图、判定表,正交排列。

12.png

13.png

当然,还可以生成请求代码;还能发布到Api Hub共享;查看一些知名开源Api接口。参照大佬们的开源接口文档,瞬间知道什么是世界的参差。

能够看到他们的接口API定义是很严谨,很完善的,从中也能借鉴不少规范。

14.png

目前体验的都是在开发过程中实际用到的功能,其功能远不止这些。还能链接数据库,通过sql脚本来测试开发,且支持多种语言,有兴趣的伙伴可以自行体验。

15.png

Apifox 下载地址

软件完全免费,复制下面的链接,粘贴到浏览器打开即可下载,

官网地址:apifox.cn

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   1. 什么是单元测试框架  单元测试指的是对软件最小单元(方法、函数、类等)进行测试,常用的单元测试框架:  · Java:Junit、TestNg  · python:Unittest、Pytest  而在自动化测试中,一个用例就一个方法,所以在自动化测试中也同样适用单元测试框架。  2. 单元测试框架的作用  · 组织并执行测试用例  根据实际的测试需要,从大量测试用例中,选择出合适的用例批量执行,如:冒烟测试用例集、回归测试用例集等。  · 测试判断  任何测试都需要对实际结果和预期结果进行判断,单元测试框架都提供了丰富的断言方法。  · 测试...
            0 0 61
            分享
          •   据DigiTimes的报道,由于台积电美国晶圆厂的芯片制造成本远高于中国台湾,台积电正准备将这些额外的成本转嫁给其客户。  其中,台积电美国晶圆厂的代工价格或将比台湾晶圆厂高出30%,也就是说,台积电美国客户将需要为美国制造的芯片多支付30%的费用。  报道称,台积电已经开始与客户讨论分别在美国和日本的两个海外代工厂的订单和定价,这两个工厂预计2024年底开始量产。  业内人士认为,以台积电N4和N5工艺技术生产的芯片在美国的价格将比中国台湾地区的高20%-30%,而在日本熊本工厂以N28/N22以及N16/N12节点生产的旧工艺芯片的价格可能比在中国台湾制造的类似芯片高10%-15%。 ...
            0 0 793
            分享
          • 前言:本篇讲堂是紧接【安全测试工具-进阶篇[路径穿越和SQL注入防御]】的内容。例牌,先说下安全测试工具的更新情况【工具地址:https://gitee.com/samllpig/SafeTool-51testing】定位内容模块,添加重放功能集成平台,增加令牌弱密钥爆破、时间戳转换、生成JWT身份令牌三大模块小工具-编码器模块,增加Base64Url编解码功能 身份验证、会话管理、访问控制堪称web系统最重要的三大安全机制,是恶意黑客重点进攻的方向,也就是测试人员重点测试的方面。 本篇讲堂详细讲解身份验证,让大家理解,黑客是如何利用身份验证的设计缺陷,或讲漏洞,获得合法身...
            2 2 40
            分享
          •  1、简介 麦德龙: - 麦德龙是一家面向HoReCa(酒店、餐厅和餐饮)行业客户的国际批发公司,业务遍及30多个国家,在全球拥有超过9.5万名员工。 - 它旗下Metro和Makro 两个品牌经营着661家批发门店(截至2022年9月30日)。麦德龙超市 - 麦德龙超市是一家零售批发超市集团, - 在麦德龙和万客隆(仅限欧洲)品牌旗下拥有多家麦德龙现购自运商场, - 是德国股票指数DAX的成分公司,世界500强之一,分店遍布32个国家。麦德龙仓储式超市 - 麦德龙仓储式超市是将超市和仓储合二为一的零售业态。&nb...
            0 0 1596
            分享
          • 1、HTTP接口传递数据最常用的方式:Get方式是从服务器上获取数据;在做数据查询时,建议用Get方式;如:商品信息接口、搜索接口、博客访客接口等。Post方式是向服务器传送数据;在做数据添加、修改或删除时,建议用Post方式;如:微博图片上传图片接口、登录注册接口等。post和get的区别:1)GET请求只是简单的获取数据,不修改请求的资源;而POST请求会修改请求的资源。导致的后果是相同的GET请求能获取相同的资源,而POST不能保证获取相同的资源。2)GET请求的参数在HTTP中是通过url传递的,POST请求的数据是通过requestbody体传递的3)GET请求资源再服务器上能够缓存...
            0 0 4891
            分享
      • 51testing软件测试圈微信