分类分类
大小:13.5 MB 更新:2024/06/02
类别:其他软件系统:WinAll
Tyk API Gateway是一个绿色安全、免费开源的轻量级API网关软件,为开发人员门户和API管理仪表板提供完整生命周期API管理平台,使用这款网关软件用户能够完全控制你的API,可以自由设置API访问权限,从而保证网络的安全性;Tyk API Gateway功能强大、专业实用,使用这款软件用户可以创建多个API,可应用于多个密钥的安全策略,创建密钥可以将配额和速率限制应用于API或者可以从安全策略继承设置,通过该API网关软件可以有效控制和保护网络的访问安全,有需要的朋友可以下载使用。
使用任何协议: REST,SOAP,GraphQL,gRPC和TCP。
行业标准身份验证:OIDC,JWT,承载令牌,基本身份验证,客户端证书等。
开放的API标准:将您的Swagger和OAS2 / 3文档导入Tyk中的脚手架API。
超高性能:低延迟和仅单个CPU即可实现数千rp的水平和垂直扩展。
内容中介:转换所有内容,从请求或响应标头到在SOAP和GraphQL之间转换。
可扩展的插件体系结构:通过以您选择的语言(从Python到Javascript到Go或任何支持gRPC的语言)编写插件来定制Tyk的中间件链。
速率限制和配额:保护您的上游免受过载和/或对每个消费者施加限制。
API版本控制-可以在特定时间和日期轻松设置和弃用API版本。
粒度访问控制-在每个版本和操作的基础上授予对一个或多个API的访问权限。
阻止列表/允许列表/被忽略的端点访问-逐个版本对访问点实施严格的安全模型。
Analytics日志记录-记录有关谁在使用您的API的详细使用情况数据(仅原始数据)
CORS-为某些API启用CORS,以便用户可以进行基于浏览器的请求
Webhooks-针对诸如配额违反和身份验证失败之类的事件触发Webhooks
IP允许列表-阻止对非信任IP地址的访问,以实现更安全的交互
重载-可以动态更改Tyk配置,并重新启动服务,而不会影响任何活动请求
Kubernetes本机声明性API:使用开源Tyk运算符(更多信息参见OSS部分)
RESTFul API
众多访问协议开箱即用。
费率限制
配额的执行
粒度访问控制
钥匙到期日
API版本管理
黑名单/白名单/忽略端点访问。
分析和监测
网络钩
IP白名单
零停机时间重启
通知和活动
向后兼容性
Tyk测试指南
对于测试,主要问题之一是如何在表达性,可扩展性,可重复性和性能之间保持平衡。关于是否应该编写集成或单元测试,是否应该进行模拟,是否应该先编写测试,之后还是之后编写测试等问题,有无数的讨论。由于永远找不到正确的答案,在不断增长的代码基础上,许多人开始介绍自己的方法和独特的测试助手。即使查看我们很小的代码库,您也可以找到3-4种编写相同测试的方法。
本文档介绍了Tyk测试框架和有关编写测试的统一准则。
测试框架的要点是:
所有测试都通过完整的HTTP堆栈运行HTTP请求,与用户执行的操作相同
测试定义逻辑与测试运行程序分开。
仪表板,RPC和Bundler的官方模拟
位于“ github.com/TykTechnologies/tyk/test”包中的框架。参见其API文档https://godoc.org/github.com/TykTechnologies/tyk/test
让我们通过示例学习:
直接Github链接
现在,将其与以前的Go风格方法进行比较:
直接Github链接
请注意,在最后一种“经典”方式中,我们仅定义了一个测试用例,而在我们的新框架中,我们定义了6个,所有这些都是可重复的,并且共享框架提供的相同断言和测试运行器逻辑。
现在,让我们逐一检查使用新框架编写的测试。
初始化测试服务器
核心思想之一是,测试应尽可能接近真实用户。为了实现它,框架为您提供了一种使用tykTestServer对象以编程方式启动和停止完整的Gateway HTTP堆栈的方法,如下所示:
ts := newTykTestServer()
推迟 ts。关闭()
创建新服务器时,它会初始化网关本身,在随机端口上启动侦听器,设置所需的全局变量等。这与启动网关进程时发生的情况非常相似,但是在这种情况下,您可以按需启动和停止它。
您可以使用很少的变量来配置服务器行为,例如通过提供tykTestServerConfigobjectnewTykTestServer作为参数来在单独的端口上设置控件API 。这是所有可能参数的列表:
要关闭服务器,只需调用tykTestServer#Closemethod即可,这将确保所有侦听器都将被正确关闭。
加载和配置API
您具有默认的最低限度的最低API定义(可以使用生成器功能进行配置)以设置测试所需的状态的基本思想。然后,API将被加载到网关中,并准备在测试中使用。
如果需要同时加载多个API,请buildAndLoadAPI支持可变数量的参数:buildAndLoadAPI(, , ...)
您也可以完全不带参数地调用它,在这种情况下,它将加载默认的API定义: buildAndLoadAPI()
实际上,此函数是2个较低级函数的混搭:buildAPI和loadAPI,都返回[]*APISpec数组。在某些情况下,您可能需要构建API模板,并进行一些较小的修改即可根据需要在不同的测试中加载它。因此它看起来像:
在API版本内更新变量可能很棘手,因为API版本对象位于Versionsmap内,并且禁止使用map值进行直接操作。为了简化此过程,有一个特殊的helper updateAPIVersion,可以像这样使用:
在某些情况下,通过Go结构更新API定义可能会有些复杂,您可能需要直接通过JSON解封更新API定义:
运行测试
使用新的test程序包TestCase结构定义测试,该程序包结构允许您定义http请求详细信息和响应断言。例如,使用指定的标头{Method: "GET", Path: "/", Headers: validPassword, Code: 200}告诉对路径的GET请求/。发出请求后,它将声明具有给定值的响应状态代码。
tykTestServer提供了一个测试运行程序,该运行程序根据规范生成HTTP请求并进行断言。大多数情况下,您将要使用tykTestServer#Run(t *testing.T, test.TestCase...) (*http.Response, error)功能。请注意,它使用可变数量的参数,因此,如果您需要传递多个测试用例,请像上面的示例一样传递它:[]test.TestCase{,}...,最后加3个点。
此外,还有RunEx具有完全相同定义的函数,但是在内部它使用overrideDefaults和hotReload选项的不同组合多次运行测试用例(现在为4)。如果您需要测试紧密依赖于热重载功能的功能(例如重载API,加载插件包或侦听器本身),这可能会很方便。
无论Run和RunEx也返回最后一个测试用例响应和错误,在情况下,如果你需要它。
更改配置变量
在许多情况下,测试取决于各种配置变量。您可以直接在config.Global对象上更新它们,并使用resetTestConfig函数恢复默认配置。
上游测试服务器
您可能会注意到默认API已经针对一些为测试目的而创建的上游模拟。上游保留testHttpAny变量的URL ,但是在大多数情况下,您不需要它,因为默认情况下创建的API已经嵌入了它。默认情况下,此上游模拟将成功响应任何url,并且响应将以以下格式包含请求的详细信息:
请注意,它包含最终请求的详细信息,因此,例如,如果您需要测试URL重写功能,原始请求的URL将不同于上游模拟的URL,则可以使用以下内容进行断言:BodyMatch:“ Url”:“” 。还要注意我们如何使用简单的BodyMatch字符串断言来验证JSON响应。
也有一些具有特定行为的特殊URL:
/get仅接受GET请求
/post仅接受POST请求
/jwk.json 用于从upsteram下载JWK令牌的情况
/ws 用于测试WebSockets
/bundles 内置插件包网络服务器,下面有更多详细信息
协同处理插件测试
如果要使用Python,Lua或GRPC插件,则需要将捆绑清单文件和脚本打包到ZIP文件,将它们上传到外部文件Web服务器上的某个位置,然后将Gateway指向捆绑位置。
我们的测试框架包括内置的捆绑文件服务器,为简单起见,您仅提供捆绑文件的内容,它将自动将其作为ZIP文件进行服务器处理。
创建map[string]string具有文件内容的对象,其中键为文件名
呼叫registerBundle("", )将返回唯一的捆绑ID。
创建API时,将其设置spec.CustomMiddlewareBundle为由返回的包IDregisterBundle
加载pythonauth插件的示例:
创建用户会话
您可以通过调用createSession函数来创建类似于API的用户会话:
如果您可以使用默认设置,也可以不带参数调用它 createSession()
如果您需要创建会话对象而不将其添加到数据库中,例如,如果您需要通过API显式创建密钥,则可以使用createStandardSession()函数,该函数返回*user.SessionState对象。
自定义上游模拟
如果您需要创建自定义的上游测试服务器,例如,如果您需要自定义的TLS设置来进行相互TLS测试,则最简单的方法是使用标准的Gonet/http/httptest程序包并覆盖spec.Proxy.TargetURLAPI URL来测试服务器。
模拟仪表板
还没有任何特定对象可以模拟仪表板,但由于Dashboard是标准的HTTP服务器,因此您可以使用类似于“自定义上游模拟”部分中所述的方法:
模拟RPC(混合)
当Gateway在Hybrid模式下工作时,它将使用gorpc库通过RPC通道与MDCB实例进行通信。您可以使用startRPCMock和stopRPCMock函数来模拟RPC服务器。startRPCMock在内部设置所需的配置变量以启用RPC模式。
DNS模拟
在内部测试中,我们将覆盖默认的网络解析器,以使用自定义DNS服务器模拟,并使用强大的github.com/miekg/dns库进行创建。域->通过映射helpers_test.go文件内部设置的IP映射。默认情况下,您可以访问域:localhost,host1.local,host2.local和host3.local。访问所有未知域将引起恐慌。
使用DNS模拟意味着您可以在多个域上使用API创建测试,而无需修改计算机/etc/hosts文件。
测试框架
上述框架的使用不受Tyk Gateway的限制,并且可在各种Tyk项目中使用。主要构建块是测试运行程序。
通过覆盖其变量,您可以调整跑步者的行为。例如,http运行程序可以如下所示:
http处理程序的单元测试可以是:
该软件包已经导出了上述情况的功能:
func TestHttpServer(t testing.TB, baseURL string, testCases ...TestCase)
func TestHttpHandler(t testing.TB, handle http.HandlerFunc, testCases ...TestCase)
CIMCO Edit 其他软件276.25 MB7.5 简体中文版
详情CKplayer网页播放器 其他软件336 KB6.6 免费版
详情WordPress 其他软件6.7 MB4.1 英文版
详情Discuz论坛 其他软件4.05 MB官方版
详情Guns后台管理系统 其他软件12.5 MBv7.0.3 官方版
详情狂雨小说cms 其他软件7.8 MBv1.3.2 官方版
详情Slidev(开发幻灯片展示) 其他软件8.52 MBv0.10.2 官方版
详情魔众短链接系统 其他软件27.5 MBv2.0.0 官方版
详情易语言资源网源码下载工具 其他软件1.51 MBv1.0 免费版
详情W5 SOAR(自动化响应平台) 其他软件6.8 MBv0.4 官方版
详情魔众文档管理系统 其他软件28.8 MBv3.0.0 官方版
详情Milvus(矢量数据库) 其他软件6.0 MBv1.1.0 官方版
详情FlatBuffers(序列化库) 其他软件1.95 MBv2.0.0 官方版
详情Wendasns(问答社区系统) 其他软件7.8 MBv1.1.5 官方版
详情DM企业建站系统 其他软件14.0 MBv2021.5a 官方版
详情Ember.js(JavaScript框架) 其他软件1.66 MBv3.27.0 官方版
详情Exifr(EXIF读取库) 其他软件42.1 MBv7.0.0 官方版
详情RavenDB数据库 其他软件64.5 MBv5.1.7 官方版
详情iWebShop(开源商城系统) 其他软件11.5 MBv5.9.210101 官方版
详情OElove(婚恋交友系统) 其他软件28.7 MBv8.1 官方版
详情点击查看更多
ThinkSNS 其他软件20 MB4.6.1 免费版
详情CKplayer网页播放器 其他软件336 KB6.6 免费版
详情vqqq.com带20000数据库的笑话程序 其他软件300 KB2.0 官方版
详情EXE文件加口令源代码 其他软件799 KB3.0 官方版
详情PPTV网络电视系统 其他软件1.27 MB4.0.1.0 官方版
详情建站专家网站建设系统 其他软件20.02 MB1.0.4.1819 官方版
详情Turbo C 2.0库函数速查 其他软件71 KB1.0 官方版
详情中国联通SGIP1.2短消息网关客户端程序 其他软件54 KB1.37 官方版
详情伤感文学CMS文章发布系统 其他软件4.11 MB2.0 官方版
详情娱乐先锋论坛 其他软件1.31 MB5.3 官方版
详情笔试考试源代码 其他软件1.17 MB1.0.0 官方版
详情Deluge For Linux 其他软件2.79 MB1.0.0 官方版
详情幻影留言版(ASP多用户版) 其他软件567 KB5.30 官方版
详情GeniusBBS 其他软件475 KB1.1 官方版
详情上机考试源代码 其他软件1.01 MB1.0.0 官方版
详情vqqq.com在线网页编辑asp源码 其他软件22 KB1.0.0 官方版
详情CIMCO Edit 其他软件276.25 MB7.5 简体中文版
详情狐狗网页源代码显示器 其他软件434 KBBuild1214 官方版
详情农业企业网站模板中英繁企业网站管理系统源码 其他软件2.18 MB2010 官方版
详情vqqq.com多用户ip统计asp源码 其他软件134 KB1.0.0 官方版
详情点击查看更多
老式水果机下载 休闲益智0MBv1.0
详情炸金花下载官方下载 休闲益智61.5MBv7.2.0
详情彩虹多多极速版 生活服务33.2MBv9.9.9
详情琼崖海南麻将15app下载 休闲益智61.5MBv7.2.0
详情ky棋牌苹果版本 休闲益智61.5MBv7.2.0
详情波克城市棋牌 休闲益智61.5MBv7.2.0
详情琼星海南麻将官方下载安装2024 休闲益智61.5MBv7.2.0
详情水果机投币游戏机单机版免费版 休闲益智0MBv1.0
详情老式水果机 休闲益智0MBv1.0
详情心悦吉林麻将完整版 休闲益智0MBv1.0
详情琼崖海南麻将15旧版下载 休闲益智61.5MBv7.2.0
详情天天炸翻天单机版 休闲益智61.5MBv7.2.0
详情彩虹多多彩票正版 生活服务33.2MBv9.9.9
详情明星三缺一手机单机版 休闲益智61.5MBv7.2.0
详情老式水果机单机版 休闲益智0MBv1.0
详情老式水果机下载手机版 休闲益智0MBv1.0
详情老式水果机投币游戏机 休闲益智0MBv1.0
详情震东济南棋牌官方网站安卓版 休闲益智61.5MBv7.2.0
详情贪玩娱乐苹果官方下载 休闲益智0MBv7.2.0
详情水果机游戏单机 休闲益智0MBv1.0
详情点击查看更多