-
2021-11-08 16:04:02
一、Git简介和软件安装
1. 简介
(1)版本控制软件提供完备的版本管理功能,用于存储、追踪目录(文件夹)和文件的修改历 史,是软件开发者的必备工具,是软件公司的基础设施。版本控制软件的最高目标,是支持软件公司的配置管理活动,追踪多个版本的开发和维护活动,及时发布软件;
(2)版本管理工具主要有两个作用 1. 代码版本管理 2. 多人协作开发;
(3)版本管理是一个合格的程序员的必备的基础技能 1. 版本常用工具一个是git一个是svn ;
(4)Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管 理。
2. git安装
(1)官网https://git-scm.com/ ;
(2)或者通过其他软件商店下载 ;
(3)小乌龟 TortoiseGit 安装 1. 记得选择使用openssh 2. 安装完以后记得设置用户和邮箱。
二、Git本地仓库创建和一些基本概念
1. 使用git init 命令创建本地仓库;
2. 仓库区和工作区 .git文件夹为仓库区,类似于一个数据库存储着每一次提交的变化 .git所在目录称为工作区,我们在这里创建项目,和其他文件;
3. 使用git add 可以把文件添加到暂存区,暂存区存储将要被提交的文件变化;
4. 使用commit命令提交暂存区存储的变化并生成一个新的版本;
5. 使用git status命令查看状态,git log命令查看日志。
三、Git服务器和远程仓库创建
1. 可以搭建,自己搭建git服务器;
2. 免费服务器
(1) github.com 全球最大开源项目托管平台;
(2)gitee.com 国内知名开源项目托管平台--码云。
3. 注册gitee账号,并创建仓库。
四、Git 克隆
1. https方式
第一次克隆需要我们输入账号密码;
2. ssh方式
1. ssh是一种开源非对称加密通信协议;
2. ssh只是一种协议,有开源实现也有商业实现,git默认使用开源实现的openssh;
3. ssh通信需要一对密钥(公和私一对),私钥留在自己电脑上,公钥给其他的电脑;
4. 使用GitGUI生成密钥,并把公钥放在服务器上;
5. 安装完git第一次克隆会请求是否允许使用ssh,需要我们输入一个"yes".或者点击ok。
五、添加,提交,推送,拉取
1. 添加 add
(如果使用小乌龟 勾选即为add);
2. 提交 commit
提交只提交到本地仓库,需要推送才会到把变化更新到服务器仓库;
3. 推送 push
如果服务器版本比我们新则不会推送不成功,需要先拉取;
4. 拉取 pull
拉取时应确保工作区整洁(先提交本地再拉取服务器的变化) 。
六、分支
1. master是仓库的主分,为了避免开发过程中程序员之间相互影响,我们一般选择创建一个新的分支来 开发新功能;
2. 创建分支;
3. 切换分支;
4. 合并分支;
七、冲突
1. 冲突如何产生的?
两个分支修改了同一个文件,合并的时候会发生冲突;
2. 如何解决冲突?
协商修改冲突位置,并重新提交;
3. 如何减少冲突?
(1)先pull在修改;
(2)确保自己正在修改的文件是最新版本的;
(3)各自开发各自的模块,如果要修改公共文件,最好先确认有没有人正在修改;
(4)不要擅自修改同事的代码。
八、忽略
gitignore
使用 touch .gitignore 命令来创建一个忽略文件;
#按文件名忽略文件夹:
文件夹名/ ([Aa]忽略大小写)
#按路径忽略文件夹:
/文件夹名(路径)/ #忽略文件 *.后缀名
#反忽略,对文件和文件夹都有效:
!*.文件名 !A/
空文件夹会被自动忽略。
九、版本回退
在版本日志界面选择一个节点,使用重置(Reset)命令。
Head 当前分支的引用指针(重置就是移动Head这个指针)
Index 就是缓存区(被Add的,也可以说是将要提交的,文件的快照)
工作区 .git所在的目录以及子目录
三种重置类型:
1.软重置(S):不更改工作区和索引;
2.混合(M):保持工作区不变,重置索引文件;
3.硬重置(H):重置工作区和索引(丢弃所有本地变更)。
十、子模块
子模块就是一个git仓库 包含其他git仓库 。
当我们需要把其他开源项目作为本项目的一个库,并可以随时拉取更新的时候 ,或者我们的项目需要分模块独立开发的时候可以使用子模块。
克隆有子模块的仓库,需要选择递归。
十一、issue和PullRequest
issue 讨论;
PullRequest 拉取请求,为项目贡献代码,请求项目管理者合并自己的代码。
git非常灵活,可以根据自己的需要构思出来不同的工作流(团队开发的方式和流程)。
更多相关内容 -
2021年软件测试工具总结——测试管理工具
2021-12-29 19:01:36每个软件研发团队都会搭建一套测试管理系统,由至少一个测试管理工具组成,用来管理各种测试活动,覆盖了整个测试过程。一个测试管理系统的构成如下所示: 图片来源:《全程软件测试》第14章 测试管理系统的...每个软件研发团队都会搭建一套测试管理系统,由至少一个测试管理工具组成,用来管理各种测试活动,覆盖了整个测试过程。一个测试管理系统的构成如下所示:
图片来源:《全程软件测试》第14章
测试管理系统的核心是测试用例库和缺陷库。围绕测试用例的管理包括:测试用例、测试套件、测试执行结果等;围绕缺陷的管理包括:缺陷记录、缺陷跟踪及分析报告。而测试资源分配、测试数据管理、测试环境配置等可以归类为测试管理系统的一部分,也可以归类为测试基础设施的一部分。
随着可用的测试工具越来越多,测试系统本身越来越复杂,管理测试活动的各个方面已经成为一个越来越大的挑战。就测试用例的管理来说,不仅需要管理手工测试用例,还需要管理自动化测试脚本,实现自动化测试结果在测试用例管理工具中的自动更新,这需要测试用例管理工具和自动化测试工具的集成。
此外,测试管理系统有必要实现产品需求、测试用例和缺陷之间建立必要的映射关系,实现三者之间的双向可追溯性:在系统里打开一个缺陷,就知道是由那个测试用例发现的;可以列出任何一个测试用例所发现的缺陷情况,据此就知道哪些测试用例发现较多的缺陷,哪些测试用例从来没有发现缺陷;需求发生变化,需要修改哪些测试用例。要么一个测试管理工具本身同时具备管理需求、用例和缺陷的功能,要么可以集成其它的测试管理工具共同实现三者的管理和可追溯。
下面我们就来盘点一下有哪些好用的测试管理工具。
-
Jira
-
TestRail
-
PractiTest
-
Zephyr Enterprise
-
禅道
-
MantisBT
-
TestLink
-
MeterSphere
-
Bugzilla
-
Testopia
-
AgileTC
-
BackLog
-
Katalon TestOps
1. Jira
Jira 是 Atlassian 公司开发的项目管理工具,常常用于缺陷管理。通过高度的自定义性,实现缺陷管理、任务管理、工数管理,进度管理,日程管理等整个项目的管理。可统一管理多个项目的进度和任务。此外,JIRA提供了插件支持测试用例的管理,并在此基础上实现需求、测试用例、缺陷的可追溯性。
-
Zephyr:可以创建测试用例,测试套件,进行测试周期的管理,还可以有一个附加组件ZAPI用于自动化集成。
-
Go2Group SynapseRT:该工具具有测试用例管理功能,但主要关注基于需求的测试,可以用于跟踪某个需求对应的测试用例执行进度。
-
XRay:支持测试用例管理。Xray支持手工和自动化测试,包括Cucumber等BDD测试框架,以及JUnit、NUnit、Robot等自动化测试框架,覆盖了整个测试生命周期。
官网:https://www.atlassian.com/zh/software/jira
2. TestRail
TestRail是一个测试用例管理工具,没有需求和缺陷管理模块。TestRail提供全面的、基于web的测试用例管理功能,帮助团队组织测试工作,并实时了解测试活动。用户可以通过屏幕截图和预期结果获取有关测试用例或场景的详细信息。跟踪单个测试的状态。使用信息丰富的仪表盘和活动报告测量进度。比较多个测试运行、配置和里程碑的结果。
TestRail可以和缺陷管理工具集成使用,如Atlassian Jira、FogBugz、Bugzilla、Gemini、Axosoft、GitHub和TFS。TestRail也可以和测试自动化工具集成,如Ranorex Studio等。
官网:https://www.gurock.com/testrail/
3. PractiTest
PractiTest 是测试管理工具中一颗冉冉升起的新星,是一个端到端的测试管理系统,提供了测试用例管理,缺陷状态管理,具有可定制的仪表板,并附有详细报告。该工具提供了手动测试和自动化测试管理选项,还有探索式测试测试管理的功能。
PractiTest与缺陷跟踪工具,如JIRA、Pivotal Tracker、Bugzilla和Redmine,以及各种自动化工具,如Selenium、Jenkins等,无缝集成。
PractiTest是唯一符合SOC2 Type2(安全方面的权威资质)和ISO 27001的测试管理工具,使其成为市场上最安全的QA系统。
官网地址:https://www.practitest.com/
4. Zephyr Enterprise
Zephyr最初是Jira中的一个插件,以增强Jira支持测试管理的能力。然而,对于规模较大的组织来说,由于测试活动的复杂性,采用这种方式进行测试用例管理是不够的,因此开发了企业版。Zephyr Enterprise支持和Jira、以及CI/CD调度工具Jenkins、自动化测试工具Selenium等的集成。
官网:
https://smartbear.com/test-management/zephyr-enterprise/
5. 禅道
禅道是国内第一款开源项目管理软件,其核心管理思想基于敏捷方法scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,覆盖了项目管理的核心流程。
官网:https://www.zentao.net/
6. MantisBT
MantisBT(Mantis Bug Tracker) 是一个基于WEB的开源缺陷跟踪系统,提供本地和托管的安装环境。MantisBT是由PHP开发的,并采用开源数据库MySQL,构成一个完整的开源解决方案。
官网:http://www.mantisbt.org/
7. TestLink
TestLink是一个开源的用于项目管理、缺陷跟踪和测试用例管理的测试过程管理工具。TestLink遵循集中测试管理的理念,通过使用TestLink提供的功能,可以将测试过程从测试需求、测试设计、到测试执行完整的管理起来,同时,它还提供了好多种测试结果的统计和分析。
官网:https://www.testlink.org/
8.MeterSphere
MeterSphere 是一站式开源持续测试平台,涵盖测试管理、接口测试、性能测试、团队协作等功能,兼容 JMeter 等开源标准,有效助力开发和测试团队充分利用云弹性进行高度可扩展的自动化测试,加速高质量软件的交付。
官网:https://fit2cloud.com/metersphere/
9. Bugzilla
Bugzilla是一个开源的、基于Web界面的缺陷跟踪工具,可以管理软件开发中缺陷的提交(new),修复(resolve),关闭(close)等整个生命周期。Bugzilla在相当长的一段时间内被许多组织广泛使用。
官网:https://www.bugzilla.org/
10. Testopia
Testopia是一款与Bugzilla集成使用的测试用例管理工具,允许用户将缺陷报告与测试用例运行结果集成在一起。
官网:
http://www.testingtoolsguide.net/tools/testopia/
11. AgileTC
AgileTC是滴滴开源的一套敏捷的测试用例管理平台,支持测试用例管理、执行计划管理、进度计算、多人实时协同等能力,方便测试人员对用例进行管理和沉淀。
下载:https://github.com/didi/AgileTC
12. BackLog
Backlog是一款在线缺陷跟踪和项目管理工具。Backlog不仅仅是一个缺陷跟踪工具,它还支持拉请求、合并请求和分支,还提供了代码审查和协作功能,支持与版本控制软件Git和SVN的集成,因此用户可以在一个地方查看代码、添加问题和跟踪bug。
官网:https://backlog.com/
13. Katalon TestOPs
Katalon TestOps是一款先进的缺陷管理工具。可以帮助用户进行缺陷跟踪。与几乎所有可用的测试框架兼容包括Jasmine、JUnit、Pytest、Mocha等;支持CI/CD工具,如Jenkins、CircleCI;支持项目管理平台,如Jira、Slack。实时数据跟踪,实现快速、准确的调试。实时全面的测试执行报告,以确定任何问题的根本原因。通过智能调度高效地计划,以优化测试周期,同时保持高质量。
官网:https://www.katalon.com/testops/
下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!喜欢软件测试的小伙伴们,可以加入我们的测试技术交流扣扣群:310357728里面有各种软件测试资源和技术讨论)
-
-
谈谈前端包管理工具 npm & yarn & pnpm
2022-03-12 17:20:46为什么需要包管理工具? 每种主流编程语言都有包管理工具,比如 java 的 Maven、Gradle,Python 的 pip,nodejs 的 npm、yarn、pnpm 等。 包管理工具的主要作用是管理第三方依赖,也可以看成一个"轮子"工厂,每个人...为什么需要包管理工具?
每种主流编程语言都有包管理工具,比如
java
的Maven
、Gradle
,Python
的pip
,nodejs
的npm
、yarn
、pnpm
等。
包管理工具的主要作用是管理第三方依赖,也可以看成一个"轮子"工厂,每个人都可以上传自己造的"轮子"和下载使用别人的"轮子",
包管理工具顾名思义就是统一管理这些轮子的软件或者工具,它以多种方式自动处理项目依赖关系、提供了命令行工具(CLI
)、支持跟踪依赖项和版本等功能,
除此之外还可以安装、卸载、更新和升级包,配置项目设置,运行脚本等等。
有了包管理工具,我们可以很简单地构建一个项目或者引入和管理一个库,留给我们的则是愉快地编码。npm
不只是包管理工具,它是世界上最大的软件注册表(registry
),每星期大约有30亿次
的下载量,包含超过600000个包
,开发者使用npm
互相分享和借鉴。版本管理规范
版本管理规范 - 语义化版本控制规范 SemVer
在使用
npm
和yarn
安装完依赖时,package.json
会有类似以下的版本号:"vue": "^2.6.11", "vue-router": "~3.1.3"
2.6.11
、3.1.3
这个版本号就是遵循了SemVer
语义化版本控制的规范。SemVer
规范规定,版本的格式为:主版本号.次版本号.修订号-预发版本(可选),版本号递增规则如下:- 主版本号:当你做了不兼容的 API 修改
- 次版本号:当你做了向下兼容的功能性新增
- 修订号:当你做了向下兼容的问题修正。
- 预发布版本:
alpha
(Alpha 版本,通常用于进行中的工作和实验)beta
(Beta 版本,通常是下一个计划发布的功能完整的版本,但可能包含已知错误)rc
: 候选版本,通常是可能最终(稳定)的版本,除非出现重大错误。
在 nodejs 版本管理中,还允许使用
~ ^ *
字符来管理版本的范围:^
: 不允许修改最左边非0版本 (^2.6.11
: 版本 >= 2.6.11 且 < 3.0.0)~
: 如果指定了次要版本,则只允许补丁版本更新,如果没有,则允许次要版本更新 (~3.1.3
: 版本 >= 3.1.3 且 < 3.2.0)*
: 任何非预发版本 (版本 >=0.0.0)
前端主流包管理工具
主流的前端包管理工具有
npm
、yarn
、pnpm
、以及国内的镜像cnpm
、tyarn
等,这是包管理器都是基于nodejs
。npm
是 2010 年发布的nodejs
依赖管理工具,在此之前,前端的依赖管理都是手动下载和管理的。yarn
是 Facebook 于 2016 年 发布的替代npm
的包管理工具,还可以作为项目管理工具,定位是快速、可靠、安全的依赖管理工具。pnpm
是 2017 年发布的一款替代npm
包管理工具,具有速度快、节省磁盘空间的特点。2010:npm 发布,支持 Node.js。 2016:yarn 发布,生成 yarn.lock 文件用于确定 repos 的精确版本,并且比 npm 性能更好。 2017:npm 5 发布,提供类似 yarn.lock 的 package-lock.json 文件。 2017:pnpm 发布,pnpm 具有 yarn 相对于 npm 的所有附加功能,并解决了 yarn 没有解决的磁盘空间问题。 2018:npm 6 发布,在 npm 在安装依赖项之前检查安全漏洞,提高了安全性。 2020:yarn 2 和 npm 7 发布,这两个软件包都具有出色的新功能。 2021:yarn 3 发布并进行了各种改进。
yarn
vsnpm
vspnpm
包管理工具安装和版本切换
因为
node
预装了npm
,所以安装node
后,不需要手动安装npm
。相反地,
yarn
需要手动安装。建议全局安装yarn
:npm install yarn -g
然后,我们在项目的根目录设置需要的 yarn 版本:
# yarn set version latest # 最新版 # yarn set version canary # 最新的经典版 # yarn set version classic # 最新的经典版 # yarn set version 3.x yarn set version <version>
使用
Yarn
,在每个项目我们可以使用不同的版本,而在npm
中,要安装nvm
才能完成版本切换。同样的,
pnpm
也需要全局安装,才能使用npm install pnpm -g
pnpm
其他使用命令 和npm
使用方法一致。安装项目依赖
在执行
npm install
安装项目依赖时,依赖项是顺序安装,并且终端会输出很多的警告日志,导致覆盖报错的日志,从而难以排查问题。使用
yarn
安装依赖时,运行yarn
命令即可,yarn
是并行安装依赖项,这是它比npm
快的原因之一,yarn 1
中的日志比较简介干净,是以树形的形式显示,但是在yarn 2
和yarn 3
中日志发生了变化,并不像以前直观。并且,
yarn
还支持离线安装,只要以前装过的包,可以在没有网络链接的情况下进行。yarn
具有重试机制,单个包安装失败不会导致整个安装失败。在
yarn
安装不同版本的依赖时,会将多个版本归结为单个版本,避免创建多个副本。npm
、yarn
和pnpm
常用命令-
npm init
|yarn init
|pnpm init
: 初始化命令 -
npm run
|yarn run
/yarn
|pnpm
: 运行脚本 -
npm publish
|yarn publish
: 发布包 -
npm cache clean
|yarn cache clean
:清除缓存 -
npm install
|yarn
|pnpm install/i
: 安装所有依赖 -
npm install [package]
|yarn add [package]
|pnpm add [package]
: 安装某个依赖项 -
npm install --save-dev/-D [package]
|yarn add --dev/-D [package]
| |pnpm add --dev/-D [package]
: 安装开发依赖 -
npm uninstall [package]
|yarn remove [package]
|pnpm remove/rm [package]
: 卸载依赖 -
npm update
|yarn upgrade
|pnpm update/up
: 更新全部依赖 -
npm update [package]
|yarn upgrade [package]
|pnpm update/up [package]
|: 更新某个依赖
安全性
npm
最不好的缺点之一就是安全性,曾经的版本发生过几个严重的安全漏洞,npm 6
开始则是在安装之前会检查安全漏洞,
并且支持使用npm audit
手动检查安装包的安全性,如果发现安全问题,可以运行npm audit fix
修复漏洞。
因为npm/yarn
是扁平化依赖结构,有个非常严重的问题就是可以非法访问未声明的包,而pnpm
是将依赖通过link
的形式避免了非法访问依赖的问题,如果没在package.json
声明的话,是无法访问的。yarn
和pnpm
同样也支持yarn/pnpm audit
手动检查安装包的安全性。yarn
和npm
都是使用hash加密算法
确保包的完整性。lock 文件
在
package.json
跟踪的依赖项和版本总是不准确的,因为~ ^ *
等前缀表示依赖更新时对应的版本范围。
范围版本可以在更新依赖时自动升级依赖到兼容性的次要版本或者补丁版本,让软件包支持最新的功能或者修复最近的错误。所以,为了避免不同设备安装依赖时的版本不匹配的问题,在
lock
文件中定义了精确的安装版本。在每次新装(更新)依赖时,npm
和yarn
会分别
创建(更新)package-lock.json
和yarn.lock
文件。这样就能保证其他设备安装完全相同的包。在
pnpm
中,则是使用pnpm-lock.yaml
文件定义依赖包的精确版本。性能对比
npm/pnpm/yarn/yarnPnp install
性能对比测试
package.json
位置action cache lockfile node_modules npm pnpm Yarn Yarn PnP install 51s 14.4s 39.1s 29.1s install ✔ ✔ ✔ 5.4s 1.3s 707ms n/a install ✔ ✔ 10.9s 3.9s 11s 1.8s install ✔ 33.4s 6.5s 26.5s 17.2s install ✔ 28.3s 11.8s 23.3s 14.2s install ✔ ✔ 4.6s 1.7s 22.1s n/a install ✔ ✔ 6.5s 1.3s 713ms n/a install ✔ 6.1s 5.4s 41.1s n/a update n/a n/a n/a 5.1s 10.7s 35.4s 28.3s
根据上面的测试结果我们可以看出,首次执行npm install
安装依赖时pnpm
比npm
和yarn
大约快了3 倍
左右,在有缓存和已安装过依赖的情况,比npm
也快了不少,yarn
则是更快,其他场景pnpm
也是占了很大优势。pnpm
的优势速度很快、节约空间
pnpm
的所有依赖包统一存储在store
,不会出现像npm
或yarn
每个项目会下载独立的依赖,yarn
是从缓存下载文件,而pnpm
是从store
中链接依赖,pnpm
更节约空间,
当安装某个依赖时,新项目会使用硬链接到store
的这个依赖,多个项目不会出现多次安装依赖的情况,磁盘只有一次写入。
对于依赖的不同版本,在pnpm
中,则只会保存增量文件。比如:某个包有100个文件,如果更新版本只会修改其中的一个文件,不会因为新版本的存在而保存所有的依赖文件。
因为pnpm
的依赖包存储在store
同样也支持离线安装的功能。没有扁平化
node_modules
结构pnpm
不会扁平化依赖数,它的node_modules
布局使用符号链接来创建依赖关系的嵌套结构。
pnpm
所有包都有自己的依赖项组合在一起,内部每个包使用符号链接将它们组合在一起。一个
vue3
项目 的pnpm node_modules
结构vite
包的pnpm
结构参考链接
-
api管理工具_10种最佳API管理工具
2020-06-30 17:58:30api管理工具 现代商业世界是由软件驱动且由API驱动的。 任何应用程序,无论是公共应用程序还是私有应用程序,都需要功能强大且便捷的API才能真正有用。 构建和维护API是一项艰巨的工作,因此,毫无疑问,围绕API管理...api管理工具
现代商业世界是由软件驱动且由API驱动的。 任何应用程序,无论是公共应用程序还是私有应用程序,都需要功能强大且便捷的API才能真正有用。 构建和维护API是一项艰巨的工作,因此,毫无疑问,围绕API管理涌现出了整个软件类。
大多数API管理产品都提供了一些共同的功能:路由和代理,数据和URL的转换,仪表板和分析,策略和限制以及开发人员工具(例如文档生成器)。 在这里,我们将研究10种流行的API管理工具-开源项目,商业产品,云服务及其组合-提供从API的全套服务套件到针对特定场景的集中工具之类的一切。
3比例
3scale最初是一种封闭源产品, 后来被Red Hat收购,并在大约两年的工作后开源 。 开源项目可以在Apache许可下免费使用,而Red Hat提供了商业支持的SaaS实施。
3scale的功能与本综述中的其他产品一致。 您会发现API版本控制,访问控制和速率限制,安全控制和分析。 3scale还提供了开发人员友好的功能,例如开发人员门户和CMS,用于为自己的API创建文档。 3scale还提供了用于通过API货币化的本机工具,例如发票和与付款服务的集成。
如果打算自己安装3scale进行生产,则需要Oracle数据库和OpenShift。 考虑到即使最小的3scale安装进行测试也需要Minishift (一个单节点OpenShift集群),如果您希望尽快开始使用3scale的免费90天试用版,则可能会为您提供最好的服务。
专业版的起价为每月750美元,适用于5,000个开发人员帐户,每天500,000个API调用以及最多三个API。 企业版(根据要求提供价格)消除了大部分限制。
大使
Ambassador是一个可与Kubernetes一起使用的开源API管理系统。 Ambassador是在Envoy代理之上实现的, 该代理处理微服务的网络抽象,因此大部分繁重的工作由Envoy和Kubernetes完成。
大使的功能集与大多数其他API管理工具保持一致:URL重写和请求路由,过滤,身份验证和访问控制,速率限制和超时,以及与日志记录,故障排除和可见性工具的集成。
但是,大使的大部分功能都围绕运行时管理以及与Kubernetes和其他Kubernetes工具(例如Prometheus)的集成。 大使将API的设计和声明式配置完全留给用户使用。 原生不支持API版本控制等功能; 您必须自己处理这些事情。 这使Ambassador最适合作为Kubernetes部署的一部分而不是作为常规API管理解决方案来使用API。
Apiman
Apiman(以前称为“ JBoss Apiman”)是一个用Java构建的Red Hat开源项目。 尽管Red Hat仍在维护它,但Red Hat在API管理方面的大部分积极开发似乎都已转移到其3Scale产品上。
Apiman专注于基础知识-发布和管理API,提供对这些功能的基于角色的访问,围绕API使用设置策略,收集运行时和计费指标以及为所有这些元素创建自上而下的组织结构。
Apiman可以围绕安全性,资源(例如,速率限制),数据转换,缓存和日志记录为API设置策略。 策略是通过JSON配置的,因此人类和机器都可以读取和编辑策略。 可以通过用户身份或角色来应用安全策略,并且可以对API进行宽松或严格控制。 您可以在URL中发布带有修订ID的API,并且不发布与使用相关的合同; 或者您可以要求一个API密钥并密切管理它们的版本控制。
超出基本要求的大部分事情都是您的责任。 例如,尽管有许多Apiman插件可用,但它们通常相当于核心项目维护者提供的Apiman功能的小扩展。
DreamFactory
DreamFactory API管理平台是使用PHP中的Laravel框架构建的。 DreamFactory可作为免费的开放源代码产品获得,或者具有不同级别的商业支持(价格未公开)。 对于已经投资PHP并希望深入研究开源实现的开发人员来说,这是自然的选择。 DreamFactory还提供与Node.js和Python的服务器端脚本集成。
DreamFactory的“ Datamesh”功能可在其所有实例中立即使用,可让您组合来自多个异构数据库调用(包括对不同数据库产品)的结果,并将结果作为单个API调用返回。 同样,跨多个数据库的表更新可以合并为一个API调用。
DreamFactory文档缺少所有可用服务的单个规范可搜索列表。 该信息按类别组织,因此您需要执行一些手动钻取以查找可用的内容。 从好的方面来说,该文档包括许多针对特定用例的操作视频,例如设置简单的应用程序或连接到各种数据源。
Kong
Kong是最著名的API管理工具之一,最初是由Mashape(更名为Kong)创建的,用于为其自己的API市场产品提供动力。 Kong具有开源版本或具有附加管理,监视和开发人员功能的企业级商业产品(价格未公开)。 企业版可以在本地或选择的云服务中运行。 开源和企业产品的文档非常详尽。
Kong为Kubernetes集成提供了一个Ingress控制器,并提供了一个服务网格,以将Kong的功能“注入”到现有的服务部署中。 企业版提供了一个开发人员门户,旨在简化新API的创建并使新开发人员熟悉您的API代码库。
Kong通常使用数据库,但也可以使用JSON / YAML配置文件和内存存储以无数据库模式运行。 如果您仅运行单个最小的节点,但想要最大的性能,则最好。
KrakenD
用Go编写的KrakenD仅提供基本要点,但将高性能作为主要功能。 就像大多数内置在Go中的应用程序一样,KrakenD是作为一个独立的二进制文件提供的。 另外,也可以从源代码编译它,或者如果您想围绕它构建自己的应用程序,可以将其用作Go库。
KrakenD使用一个配置文件,该文件可以手动滚动或机器生成。 开箱即用地支持速率限制,响应处理,转发,端点调试,协议安全措施(例如,防止点击劫持),代理,存根和内存中响应缓存。
KrakenD实例可以集群以实现高可用性。 无需其他软件即可执行此操作,只需KrakenD本身即可。 您还可以在Kubernetes集群上部署KrakenD,而无需进行很多其他工作。 可以从KrakenD GitHub存储库中获得各种第三方中间件。
KrakenD的创建者可以提供企业支持,包括咨询和培训,但价格没有透露。
MuleSoft Anypoint平台
MuleSoft的Anypoint平台旨在成为一种完善的产品-它涵盖单个商业产品中的API设计,构建,托管,管理,集成和开发人员支持。
使用Anypoint,您可以从头开始开发API,或者重复使用其他MuleSoft客户创建并在Anypoint Exchange中共享的现有连接器和集成。 连接器可用于通用协议(文件访问,HTTP,电子邮件),用于数据转换的语言模块(Java,JavaScript),云服务(Amazon AWS),商业应用程序(Salesforce,SAP)和开源应用程序(MongoDB)。
对于那些将由合作伙伴或公众使用的创建API,Anypoint提供了API社区管理器来为这些API创建Web UI(MuleSoft称之为“门户”)。 都包括交互式文档,个性化(包括基于用户地理位置来定制输出等功能)和API使用情况分析。
Anypoint提供三种定价计划,黄金,白金和钛,这取决于客户支持水平和企业功能。 所有这三个计划都包括无限的API,并为“高级”连接器(例如,IBM AS / 400大型机连接器)收取额外费用。
Netflix Zuul
Zuul是由Netflix的工程师创建的一个开源项目,是在内部构建的,用于处理对Netflix视频流服务的路由请求。 没有Zuul商业产品(至少不是Netflix提供的),因此您必须将Zuul提升并完全自己管理。
Zuul用Java编写,并且使用通用的Java工具(Gradle,Ivy,Maven)启动并运行。 与其他API管理系统相比,Zuul提供的功能集相对最少,侧重于跨服务过滤和分派入站请求。 Zuul确实提供了服务发现,负载平衡,连接池和调试功能( “请求通行证” ),但是缺少更复杂的功能,例如开发人员注册和自动文档编制。
Zuul是一个活跃的项目,为将来的版本计划了许多新功能。 例如,即将推出的“掉电过滤器”将禁用某些功能,以在活动繁忙时释放CPU。
Tyk
Tyk默认情况下包括很多:API网关,分析工具,开发门户和管理仪表板。 它还包括在正式发布API之前对其进行模拟的功能,内置请求缓存(可以直接包含在API定义中)以及针对不同HTTP错误代码的响应模板。
Tyk有四个版本,每个版本用于不同的用例。 Tyk的开源版本是社区版,仅包含网关,该网关处理代理,访问控制,转换和日志记录。 您可以直接滚动自己的功能,或者通过使用Tyk的插件生态系统来支持多种语言。
本地版本使您可以在防火墙后面使用功能全面的商业产品。 单个网关许可证(实际上是开发人员版本)是免费提供的,没有API调用限制,尽管API不能在商业环境中使用。 商业使用许可的起价为每年$ 3000。
云和多云版本可用于各种流行的云服务,它们将Tyk作为托管服务提供。 免费提供每天支持1,000个API调用的基本单云版本(云服务提供商收取的任何费用除外); 专业级计划的起价为每月$ 450。
WSO2 API管理器
WSO2 API Manager是使用Java构建的开源产品的核心。 该产品可用于具有商业支持的本地部署或云托管部署,也可以作为云托管服务使用。
各种部署选项允许许多不同的管理方案。 例如,本地WSO2部署可以通过云托管的开发人员门户网站实施其策略和其他配置,更改可以在云和本地之间同步,也可以定期从云中推送(对于需要锁定)。
WSO2有大约200个连接器 ,可用于将外部服务连接在一起。 许多都是常见的开发人员必需品:Slack,Splunk,Kafka,Redis,Amazon S3等。
WSO2的另一个功能是“ API微网关”,可确保某些类型的呼叫获得更高的安全性和更低的延迟。 例如,可以通过这种方式处理用于管理网关的呼叫或在微服务之间路由的呼叫。
WSO2的一个新插件增加了与Kubernetes的Istio服务网格的集成 。 Istio不会管理它所管理的微服务公开的API,因此WSO2与Istio使用的Envoy代理进行了集成。
WSO2商业产品的定价从免费的两周试用期开始,最多可调用一百万个API,然后继续以每月550美元的价格(可访问2000万个调用),并从此扩展到定制配置。
翻译自: https://www.infoworld.com/article/3398484/10-best-api-management-tools.html
api管理工具
-
测试用例管理工具有哪些?
2020-12-07 18:13:41目前市面上的测试管理工具有很多,功能基本上都大同小异,要完成一款测试用例工具的选型,首先要需求明确,就是说你要用这个测试管理工具干什么? 最终想要达到什么目标?才能进一步完成对测试管理工具的选型。 除此... -
一款超好用的 Redis 可视化管理工具
2022-02-27 19:16:50JavaGuide (「Java学习+面试指南...今天来推荐一款我平常一直在使用的 Redis 可视化管理工具,真的非常不错,好用!我会通过和另外一款类似的工具 QuickRedis 作对比的方式来介绍。 QuickRedis 是一位好朋友给我推荐. -
15款最佳的MySQL管理工具和应用程序
2021-01-18 17:55:34几乎每个开发人员都有最钟爱的 MySQL 管理工具,它帮助开发人员在许多方面支持包括 PostgreSQL,MySQL,SQLite,Redis,MongoDB 等在内的多种数据库;提供各种最新的特性,包括触发器、事件、视图、存储过程和外键,... -
Django Admin 管理工具
2020-09-08 13:58:11文章目录Django Admin 管理工具激活管理工具使用管理工具复杂模型自定义表单内联(Inline)显示列表页的显示 Django Admin 管理工具 Django 提供了基于 web 的管理工具。 Django 自动管理工具是 django.contrib 的一... -
MySQL——MySQL 图形化管理工具的介绍
2022-02-10 16:00:17文章目录MySQL——MySQL 图形化管理工具的介绍1、MySQL Workbench2、Navicat3、SQLyog4、DBeaver5、DataGrip MySQL——MySQL 图形化管理工具的介绍 MySQL 图形化管理工具极大地方便了数据库的操作与管理,常用的图形... -
MongoDB可视化管理工具-Robo 3T
2022-03-25 15:38:17在使用MongoDB过程中,为提供效率和观看方便,我们尝尝选择一些可视化管理工具进行协助,MongoDB的可视化工具其实有不少比如MongoDB Compass、Mongo Management Studio、Nosqlclient等,其中就有一款叫Robo 3T可视化... -
Python 安装包管理工具 pip
2021-10-26 08:09:00pip 是一个现代的,通用的Python包管理工具。提供了对Python包的查找,下载,安装,卸载的功能,便于对Python的资源包进行管理。在安装Python时会自动下载并安装。在Windows中查看pip的版本pip -V输出:pip 21.3 ... -
达梦数据库常用管理工具简介
2022-03-31 21:32:56达梦数据库是一个较为成熟的商用产品,不单体现在功能、性能、稳定性,还体现在丰富的工具帮助用户更好地管理和使用产品。以下是厂商提供的比较常用的管理工具: -
有哪些比较好用的开源项目管理工具?
2022-03-28 10:05:17关于项目管理的使用工具是一方面,当然在项目管理知识这里也是需要不断去充实自己的。 作为一个专业的项目管理人员,你需要了解的不仅仅是有什么工具可以帮助到自己的工作,让自己工作变得更加的高效,另一方面 -
在群晖Docker上搭建自己项目管理工具Focalboard
2022-02-05 16:23:24②可以作为软件开发团队的项目管理工具,它的看板视图能够帮助个人和团队对任务进行组织、跟踪和管理; ③同时也可以作为自己的私人笔记、博客记录工具; ④可以搭建在自己本地的服务器上,数据内容掌握在自己手里... -
微信群管理工具哪个好?最安全的微信群管理工具推荐!
2021-03-16 09:48:31微信群管理工具哪个好?想必大家最早想到的就是微信社群管理工具,但是现在已经被封掉了,所以我们只能使用其它的软件。 企业微信的社群管理功能足够齐全,可以满足我们社群运营的大部分要求。但是可能很多人还不够... -
Webshell 管理工具
2019-09-15 13:19:24《目录》 Webshell webshell管理工具 中国菜刀 中国蚁剑 冰蝎 weevely Webshell Webshell 这个词,我初次接触是一脸懵。 拆开来看, web 是... -
ftp管理工具,六款强烈推荐的ftp管理工具
2020-07-09 14:35:30不知道大家对于ftp管理工具的要求普遍是什么,但是我的要求是很简单的,主要就是好用,方便容易上手,使用起来很容易,不要太复杂的。其实我对于ftp管理工具的要求应该是大部分网站工作者的基本要求吧。下面是我使用... -
13 个 Mongodb GUI 可视化管理工具,总有一款适合你
2020-06-07 23:10:25Robo 3T管理工具 Robo 3T前身是Robomongo。支持Windows,MacOS和Linux系统。Robo 3T 1.3为您提供了对MongoDB 4.0和SCRAM-SHA-256(升级的mongo shell)的支持,支持从MongoDB SRV连接字符串导入,以及许多其他修复和... -
SQL Server 2012 管理工具
2019-04-14 21:18:33文章目录Business Intelligence Development Studio(BIDS)SQL Server Data Tools (SSDT)SQL Server Management Studio(SSMS)Reporting Services Configuration Manager(报表服务配置管理器)SQL Server ... -
MongoDB可视化管理工具-MongoDB Compass
2022-03-13 22:45:46因此MongoDB官网提供的一个可视化管理工具,叫MongoDB Compass,它集创建数据库、管理集合和文档、运行临时查询、评估和优化查询、性能图表、构建地理查询等功能为一体,很方便。 二、MongoDB Compass下载 1、去... -
Win10右键菜单管理工具
2020-08-03 06:26:35给大家分享一款好用的右键菜单管理工具 ,大小只有584k , 首先介绍一下软件功能, 文末附百度网盘地址 。 首页 : 设置文件打开方式 设置目录打开方式 设置右键打开方式 根据文件类型 &后缀名设置打开方式 ... -
推荐5个优秀的Mongodb 可视化管理工具
2021-08-04 14:18:09以下是使用GUI的比较流行的MongoDB管理工具列表:MongoDB Compass Community 要从具有图形用户界面的MongoDB开始,MongoDB是最好的方法之一。MongoDB Compass Community由MongoDB开发人员开发,这意味着更高的可靠性... -
推荐几款MySQL图形化客户端管理工具
2022-02-24 21:02:04MySQL是一个款非常流行的关系型数据库管理系统,平时工作中会经常用到,MySQL的管理维护工具非常多,除了系统自带的命令行管理工具之外,还有许多其他的图形化管理工具,下面介绍几个使用过的MySQL图形化管理工具,... -
13个Mongodb GUI可视化管理工具,总有一款适合你
2020-07-11 10:04:28MongoDB数据库默认的管理工具是(CLI)Shell命令行,对于专业的DBA来说比较容易上手,但是对于普通人员GUI可视化工具更方便使用。我们就来介绍13个好用的MongoDB可视化... -
DM管理工具的使用
2021-02-23 09:08:11达梦数据库提供DM管理工具供用户使用,通过该工具可以方便直观的管理和操作DM数据库,下面介绍一下该工具的使用方法。 安装DM数据库以后,如果是windows系统,会在开始菜单栏中创建一个“达梦数据库”的程序组,... -
Go:包管理工具GOPATH、vendor、dep 、go module
2020-02-13 17:05:56Go包管理工具:前言 Golang一直存在一个被人诟病的问题是缺少一个官方的包依赖管理工具。从我个人的角度上来看存在两个问题: GOPATH特性对于多工程的情况下,支持不算友好。 GOPATH无法对依赖包进行有效的版本... -
适用于 Windows 操作系统的远程服务器管理工具 (RSAT)
2019-12-02 06:47:50适用于 Windows 操作系统的远程服务器管理工具 (RSAT) 适用于:Windows 10, version 1903Windows Server, version 1903Windows 10, version 1809详细 简介 远程服务器管理工具 (RSAT) 使 IT 管理员能够从运行 ... -
达梦数据库基础篇--数据库管理工具
2022-03-25 16:33:34达梦数据库基础篇--数据库管理工具 -
推荐一款国人开源的 Redis 可视化管理工具
2021-11-28 22:46:28今天我给大家介绍一款国人开源、免费、功能强大的 Redis 可视化管理工具:QuickRedis。 QuickRedis 简介 QuickRedis 是一款 永久免费 的 Redis 可视化管理工具。它支持直连、哨兵、集群模式,支持亿万数量级的 key,...