一款丧心病狂的API测试工具:Apifox!
你好,我是测试开发工程师——凡哥。欢迎和我交流测试领域相关问题(测试入门、技术、python交流都可以)
我们平时在做接口测试的时候,对于一些常用的接口测试工具的使用应该都非常熟悉了:
- 接口文档:Swagger、Yapi
- 接口测试:Postman、Postwoman
- Mock:EasyMock、Mockito、mock.js
- 性能测试:Jmeter、Locust
- ...
做接口测试,需要在电脑上安装那么多软件,你会不会感到很蛋疼?
老子就是不想装那么多软件,有没有一款接口测试软件,能够把以上所有的功能都集成到一块?
有。
今天给大家推荐一款丧心病狂的API测试工具:Apifox。
如果你不了解它,你都不知道它的野心有多大;如果你不去真正使用它,你都不知道它用起来有多香!
废话不多说,直抒胸臆。
目录:
一、Apifox简介
二、基本使用
2.1 快速构造请求
2.2 生成接口文档
2.3 执行自动化测试
2.4 自动生成代码
三、总结
3.1 不要重复造轮子
3.2 私有化部署比较安全
一、Apifox简介
官方给出的介绍:
Apifox 是接口管理、开发、测试全流程集成工具,定位 Postman + Swagger + Mock + JMeter。通过一套系统、一份数据,解决多个系统之间的数据同步问题。只要定义好接口文档,接口调试、数据 Mock、接口测试就可以直接使用,无需再次定义;接口文档和接口开发调试使用同一个工具,接口调试完成后即可保证和接口文档定义完全一致。高效、及时、准确!
【运行环境】
- Windows
- Mac
- Linux
【官方网站】
https://www.apifox.cn/
【官方文档】
https://www.apifox.cn/help/
Apifox十大核心功能
可以看到,Apifox已经能够满足你日常进行接口测试的大部分需要。
我个人认为,比较好用的功能有:
接口文档、团队协作、数据导入/导出、CI/CD的持续集成。
二、基本使用
Apifox 的页面长得很像 Postman,Postman该有的功能,Apifox同样也有,所以你完全可以把他当成Postman去用。
接口环境隔离设置
请求构造
上述功能都比较简单,假如大家用过postman的话,上手应该不难。
这里教大家Apifox的几个实用小技巧。
2.1 快速构造请求
我们手动去录入请求的时候,需要填入很多参数,包括:
- 请求方法
- URL
- Header
- Params
- Body
- ...
等等信息,相当繁琐。
有没有一种快速的方式,可以帮我们快速生成接口请求呢?有。
我们可以利用Apifox的导入抓包请求,来快速生成接口请求。
第一步:打开charles,右键需要目标接口,并 "Copy cURL Request"
第二步:在Apifox中,导入抓包数据
简单2步,就可以快速的帮助我们生成接口请求。
2.2 生成接口文档
在项目概览,可以生成在线接口文档。
生成的在线接口文档,还是相当美观的,这给不喜欢维护接口文档的团队,带来了很大的福音。
2.3 执行自动化测试
我们可以把录制好的用例,进行抽取并执行简单的自动化测试,甚至还可以控制线程数、循环次数等。
(尼玛,这不就是Jmeter么?)
测试完成后,还能够生成一份较为直观的测试报告
2.4 自动生成代码
Apifox甚至支持自动生成业务代码!
支持很多种编程语言。(常见的 Java/PHP/Go/Python/C# 都支持)
尝试着生成了一份Java的业务代码(Spring),并用 IDEA 打开。
一般来说,导出的业务代码都会出现各种各样离奇古怪的问题,我们开发在写业务代码的时候,也不会直接去使用这个自动生成代码的功能。
但,这个功能看上去还是挺炫酷的,不是么?
三、总结
本文只是简单介绍了 Apifox客户端 的基本用法,但是 Apifox 还有很多实用的功能,这里就不再一一展示了,有需要的朋友,可以自己去官网了解。
抛开 Apifox 的介绍,我们再来谈谈,如何把一些免费或开源的测试项目,更好的运用到日常工作当中去:
3.1 不要重复造轮子
在工作中,我遇到过很多人,遇到问题,没有去调研市面上好用的测试工具,就想着自己埋头去写代码解决。
但是往往做出来的,要么易用性太差,很难在团队中推广;要么设计上浪费好多时间,但是实际做出来很简陋,并不能满足日常工作需要。
最终的结果都是:写出来的工具很垃圾,根本没法用,最后又不得不去找好用的第三方或开源的工具来使用。
如果市面上已经有了好用的工具,那就不要重复造轮子了吧!真的很浪费时间。
3.2 私有化部署比较安全
Apifox 的接口文档,好用么?好用,且非常好用。
但是接口这种东西,属于公司的机密信息,一旦泄漏,后果将不堪设想。
所以,建议使用 Apifox 的时候,最好考虑私有化部署。
具体报价可以参考 Apifox 官网。
写在最后
如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!
看到这篇文章的人有觉得我的理解有误的地方,也欢迎评论和探讨~
你也可以加入下方的的群聊去和同行大神交流切磋
相关文章:
一款丧心病狂的API测试工具:Apifox!
你好,我是测试开发工程师——凡哥。欢迎和我交流测试领域相关问题(测试入门、技术、python交流都可以) 我们平时在做接口测试的时候,对于一些常用的接口测试工具的使用应该都非常熟悉了: 接口文档:Swagge…...
【前端学习】D2-2:CSS基础
文章目录前言系列文章目录1 Emmet语法1.1 快速生成HTML语法结构1.2 快速生成CSS样式语法1.3 快速格式化代码2 CSS复合选择器2.1 什么是复合选择器2.2 后代选择器(*)2.3 子选择器2.4 并集选择器(*)2.5 伪类选择器2.6 链接伪类选择器…...
Flink / Scala 实战 - 19.ProcessFunction 删除 key 的上一个定时器 TimeTimer
一.引言 ProcessFunction 原始执行状态为每个 key 注册一个较长时间 TimeTimer 并在这期间将所有对应 key 的数据都收集起来,到期完成触发。现在接到新的需求,要求判断数据类型,当特殊标识的数据到达后,需要将 TimeTimer 到期的时间提前。因此需要删掉当前 key 之前注册的老…...
MSTP基础
MSTP基础引入背景技术概览PVSTP(过渡)MSTP单生成树的缺陷1:部分VLAN不通单生成树的缺陷2:无法实现流量的负载分担多生成树解决单生成树实例引入背景 RSTP在STP基础上进行了改进,实现了网络拓扑快速收敛。但由于局域网…...
当ChatGPT遇见stable-diffusion,你不敢相信的创意艺术之旅!
前言 欢迎来到一场创意的旅程,这里将聚焦于 ChatGPT 和 stable-diffusion 这两个令人激动的技术。在这篇文章中,我们将会探索这两种技术如何结合使用,为艺术创作带来全新的可能性。我们将探讨如何利用 ChatGPT 生成富有想象力的创意…...
一文搞定!postman接口自动化测试【附项目实战详解】
目录:导读 | 接口结果判断 功能区 脚本相关 代码模板 | 集合(批量)测试 变化的参数数据 定期任务 接口执行顺序 数据传递 | 解决依赖问题 假设场景 Postman 中的操作 运行 写在最后 附带项目实战教程地址:postman接口自动化测试使用教程项…...
ctfshow【菜狗杯】wp
文章目录webweb签到web2 c0me_t0_s1gn我的眼里只有$抽老婆一言既出驷马难追TapTapTapWebshell化零为整无一幸免无一幸免_FIXED传说之下(雾)算力超群算力升级easyPytHon_P遍地飘零茶歇区小舔田?LSB探姬Is_Not_Obfuscateweb web签到 <?ph…...
旋转数组的几种做法
千淘万浪虽辛苦,吹尽黄沙始到金。 ——刘禹锡 第一种方法:遍历整个数组 题目描述: 一个数组A中存有N (N>0) 个整数,允许使用另外数组,将每个整数循环向右移动M(M>0)个位置。如果需要…...
创建虚拟机、添加镜像以及配置虚拟机
一、创建虚拟机 1、点击 “创建新的虚拟机” 2.选择“自定义配置” 到后面可以选择硬件的类型 3.默认值就行 4.选择 “稍后安装操作系统” 5.操作系统选择 “Linux”,版本结合镜像自行选择 6. 虚拟机的名称自行定义, 就是上述显示出来的名称。 虚拟机…...
Godot Engine 4.0横空出世,Vulkan大怪兽加持,画质提升简直亮瞎眼
【CSDN 编者按】经历了漫长的等待,万众瞩目的 Godot Engine 4.0 正式版在其 3.0 版本发布 5 年以后,终于带着海量令人兴奋的新功能横空出世! 整理 | 开发游戏的老王 责编 | 王子彧 出品 | CSDN(ID:CSDNnews)…...
CorelDRAWX4的VBA插件开发(四十五)建立类(2)汇总相似功能简化重复代码:一键建立设计外框加出血线和等分折页线
在上一节中已经建立好了类,那么这一节我们来调用它,先建立一个面板 然后修改框体名称 然后从左侧新建一些按钮并且以拼音为结尾进行命名 Private Sub CheckBox2_zheYe_Click() 鼠标按下几折页单选时触发If Me.CheckBox2_zheYe ThenMe.TextBox3_zheYeShu.Enabled True 让右…...
我的十年编程路 2017年篇
2016和2017,这两年是我飞速发展的两年。一方面是技术、工作能力,另一方面是对人生的思考。 随着技术能力的不断提升,博客也随之更新。在2017年伊始,我收到了CSDN学院的讲师邀请函。没错,那个时候我就有机会做视频课了…...
hadoop有多个输入路径怎么处理
在Hadoop中,可以使用FileInputFormat的addInputPath方法来添加多个输入路径。以下是实现步骤:创建一个Job对象,并设置相关的参数和配置信息。调用FileInputFormat的addInputPath方法添加输入路径。例如:FileInputFormat.addInputP…...
day6 ServletContext
ServletContext 一个Servlet对象对应一个ServletConfig。100个Servlet对象则对应100个ServletConfig对象。 只要在同一个webapp当中,只要在同一个应用当中,所有的Servlet对象都是共享同一个ServletContext对象的。 ServletContext对象在服务器启动阶段…...
Dockerfile部署SpringBoot项目
Dockerfile部署SpringBoot项目 文章目录 利用Dockerfile部署SpringBoot项目 1、创建一个SpringBooot项目并且打成jar包2、在Linux中创建一个文件夹,来做docker测试3、将jar包上传到Linux中4、编写Dockerfile文件5、制作镜像6、启动容器7、查看容器启动日志8、访问接…...
Java面向对象特征之三:多态
一:面向对象三大特征之三:多态 1.多态是什么? 同类型的对象,执行同一个行为,会表现出不同的行为特征。 比如:猫和狗都是动物类型,执行同一个行为,但是会表现出不同的行为特征&…...
基于ATX自动化测试解决方案
在整车开发中,诊断功能实现后需要进行测试验证。测试验证主要分为两个方面:诊断协议层测试和诊断功能测试。诊断协议层测试:需要对服务层服务定义、传输层相关时间参数进行测试验证;诊断功能测试:需要对各诊断功能项&a…...
Qt学习5-Qt Creator文件操作(哔站视频学习记录)
实现文件编辑器代码 目录 一、代码要点 二、重点函数 1、conncet 2、getOpenFileName 3、getSaveFileName 4、读取文件到textEdit 5、textEdit保存到文件 三、全部代码 mainwindow.h mainwindow.cpp 一、代码要点 MainWindow的菜单栏实现;connect函数连接…...
LeetCode15三数之和 容易理解版本
题目: 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三…...
Spring Boot 3.0系列【11】核心特性篇之国际化
有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot版本3.0.3 源码地址:https://gitee.com/pearl-organization/study-spring-boot3 文章目录 前言基础知识国际化简介浏览器语言LocaleMessageSourceMessageSourcePropertiesLocaleResolver案例演示案例一:后台消息国…...
每日学术速递3.7
CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.Dropout Reduces Underfitting 标题:Dropout 减少欠拟合 作者:Zhuang Liu, Zhiqiu Xu, Joseph Jin, Zhiqiang Shen, Trevor Darrel 文章链接:h…...
灯具照明行业MES系统,助力企业实现数字化转型
灯具照明行业在制造领域,是典型的高科技离散生产制造模式,大部分企业都设置:电源组件、光源组件、或光电一体组件 ,工艺以SMT、DIP等。 灯罩主要采用吸塑工艺及模具加工;其它金属的面盖、灯体、灯盒基本都是采用压铸、…...
超实用!JavaScript修改CSS变量,达到动态修改样式的目的
在网页开发中,我们通常使用CSS来设置网页的样式。但是,在开发过程中,有时候我们需要根据不同的条件来动态修改样式,这时候就需要使用JavaScript来实现。 在CSS中,有一种变量的概念,可以使用变量来定义颜色…...
解决Vue3 默认槽的非函数值 - Non-function value encountered for default slot 的警告
解决警告⚠️:[Vue warn]: Non-function value encountered for default slot. Prefer function slots for better performance. h函数的第三个参数加上箭头函数 原因分析: 一般 第三个参数如果不是默认插槽的话 就是当作children传下去,…...
【Git】P2 分支(创建分支,合并分支,分支冲突,分支分类)
分支分支的概念2077 与 分支git - 分支分支语句查看与创建分支切换与删除分支合并分支分支冲突分支分类分支的概念 什么是分支? 2077 与 分支 我最喜欢的游戏就是 赛博朋克2077,美国末日 和 GTA,下图是2077的存档。 存档非常多的原因是因为…...
2023年全国最新交安安全员精选真题及答案14
百分百题库提供交安安全员考试试题、交安安全员考试预测题、交安安全员考试真题、交安安全员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 41.事故隐患泛指生产系统中可导致事故发生的() A.人的不…...
Air101|Air103|Air105|Air780E|ESP32C3|ESP32S3|Air32F103开发板:概述及PinOut
内容均引自合宙官方wiki,详细内容请参考: :LuatOS 文档 。 1、合宙Air101(芯片及开发板) 合宙Air101是一款QFN32 封装,4mm x 4mm 大小的mcu。通用串口波特率,设置波特率为921600。 固件编译可…...
【代码随想录训练营】【Day35】第八章|贪心算法|860.柠檬水找零|406.根据身高重建队列|452. 用最少数量的箭引爆气球
柠檬水找零 题目详细:LeetCode.860 一道非常简单的模拟题,根据题目要求编写程序即可: Java解法(模拟): class Solution {public boolean lemonadeChange(int[] bills) {int money_5 0, money_10 0;fo…...
嵌入式C基础知识(23)
常用C/C代码规范头文件的保护所有的头文件都应该使用#define来避免多次引用,符号格式为:<PROJECT>_<PATH>_<FILE>_H_例如头文件:foo/src/bar/baz.h#ifndef FOO_BAR_BAZ_H_#define FOO_BAR_BAZ_H_...#endif // FOO_BAR_BAZ_…...
一文掌握组织项目等级划分维度,标准和实例
当你遇到多项目怎么管?遇到项目之间的冲突怎么解决?很多公司没有项目优先级的划分,会对企业造成很多严重的问题。首先,会造成不合理的资源分配:缺少项目优先级的情况下,很难确定哪些项目是最重要的…...
不更新网站如何做排名/人力资源短期培训班
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼这是自己打的,为什么这个能显示出来,有什么区别package uio;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JTextField;public class Text1 {public…...
做网站是什么鬼/2024年小学生简短小新闻
夜光序言: 后来才明白,要赚到足够令自己安心的钱,才能过上简单、安逸、自由的生活,才能让自己活得更有底气。所以,多花时间努力,少点功夫矫情。 正文: 比如说:一个人A为父类&#x…...
网站建设交接协议书/站长工具seo综合查询官网
关联博客:《kubernetes/k8s CRI 分析-容器运行时接口分析》 《kubernetes/k8s CRI 分析-kubelet创建pod分析》 之前的博文先对 CRI 做了介绍,然后对 kubelet CRI 相关源码包括 kubelet 组件 CRI 相关启动参数分析、CRI 相关 interface/struct 分析、CRI…...
网站建设实训报告心得体会/社群营销
MySQL - 扩展性 1 概述:人多力量未必大我们应该接触过或者听说过数据库的性能瓶颈问题。对于一个单机应用而言,提升数据库性能的最快路径就是氪金 - 买更高性能的数据库服务器,只要钱到位,性能不是问题。 但是当系统性能增加到一定…...
做搞笑图片的网站/seo百度seo排名优化软件
canvas绘图,html5 k线图,股票行情图 canvas跟其他标签一样,也可以通过css来定义样式。但这里需要注意的是:canvas的默认宽高为300px * 150px,在css中为canvas定义宽高,实际上把宽高为300px * 150px的画布进行了拉伸&am…...
徐州做网站费用/北京百度推广代理公司
2019独角兽企业重金招聘Python工程师标准>>> Jenkins是代码持续集成工具,Sonar则是一个代码质量管理平台。在编译代码时,可以使用SonarQube提供的sonar-maven-plugin插件执行执行sonar代码质量检查,将检查结果传给SonarQube服务器…...