功能

Hydra概述
自动

使用TypeScript或Javascript为您的智能合约编写自动化测试。使用Hydra引导您的智能合约测试用例定义。

简约的测试执行

无需为您的智能合约测试管理本地/开发区块链。我们在后端运行修改后的EOSIO虚拟机,该虚拟机是专门为测试而设计的。

轻松设置合约表

通过从JSON文件加载初始合约表数据,轻松配置您的智能合约在其中运行的测试环境。

多操作系统

随时随地都可以使用;在MacOS、Linux上都可以,与EOSIO不同的是,我们还支持Windows。

大量的测试

想要运行10或100多种测试输入变量?没问题,我们可以帮您做到。我们负责运行基础设施,因此您不需要启动多个nodeos会话。

调试部署的智能合约

Hydra接受EOSIO快照,这意味着您可以快速重新创建导致公共部署的智能合约上出现错误的条件。

如何做呢?


安装Hyra客户端

npm i -g @klevoya/hydra

登入您的账户

hydra login


引导您的测试用例定义

hydra init

编写您的测试用例

使用JavaScript/TypeScript和您选择的测试库。
(我们支持Jest开箱即用。)


针对Hydra服务器运行测试

npm test

阅读文档

常见问题

Hydra和运行nodeos有什么不同?
Hydra是一个用于EOSIO智能合约的小型JavaScript测试框架。它并不携带自己的WebAssembly VM来运行交易,而是与运行略微修改的EOSIO nodeos节点的后端进行通信,该节点是专门为测试而设计的:我们不关心单个账户的CPU/NET/RAM资源限制,也不关心生成区块。相反,我们使用后端通过EOSVM运行交易,同时准确地模拟EOSIO软件的其余部分。

nodeos是Block One开发的成熟的EOSIO节点。

Hydra具有直观的API和许多方便的功能(例如,用于引导测试的CLI,从JSON文件加载智能合约表),使您可以非常轻松地为您的智能合约编写测试。

在我们看来,最大的便利功能是根本不必设置和配置本地区块链,这将需要大量的基础设施来重新创建。

我们已把时间花在工装上,所以您就不必花费额外的精力和时间。

如果您还想查看Hydra中当前缺少的功能,请与我们联系。

所有其他EOSIO测试工具都只是本地EOSIO节点CHAIN_API之上的包装器。这意味着您仍然需要在本地安装、正确设置EOSIO,并确保每当您运行测试时它都在运行。

一些测试框架试图通过将EOSIO作为其工具集的一部分包含在Docker容器中来掩盖这一事实,但是您仍然受限于运行本地区块链的所有限制和缺点:

  • 需要在您的系统上安装EOSIO和/或Docker,因此无法在CI管道等低资源系统上运行。
  • 运行本地区块链需要大量的CPU和存储资源,从而降低系统其余部分的速度。
  • 无法并行运行测试,因为所有测试都在同一本地区块链节点上运行。
  • 即使您的交易可能在微秒内运行,但您还是被限制在500ms的区块生成时间内。

我们对Hydra采取的方法有着本质的不同:虽然我们有与现有测试工具类似的API,但我们通过在后端运行专门为测试而设计的经过改进的EOSIO节点,提供了额外的便利功能,并消除了运行本地区块链的所有缺点:我们不关心单个账户的CPU/NET/RAM资源限制,也不关心生成区块。相反,我们使用后端通过EOSVM运行交易,同时准确地模拟EOSIO软件的其余部分。

我们目前支持EOSIO v2.0.3。新版本将在发布时提供。
我们运行未经修改的EOSVM,但是EOSIO软件的一个分支删除了我们执行交易的用例中不需要的功能,例如区块生成和CPU/NET/RAM以及其他资源计费。除此之外,我们运行原始EOSIO代码及其所有检查。
我们是一个小团队,热衷于帮助开发人员交付安全且经过测试的智能合约。
Hydra支持所有EOSIO WASM内部函数的所有智能合约功能。但我们不支持:
  1. 区块生成:区块时间和区块编号始终为0,但可以使用我们的测试框架模拟。
  2. 根据每个账户使用限制对RAM/CPU和NET详细建模。我们支持包括交易执行时间在内的交易跟踪。
  3. 运行延迟的交易:延迟交易在指定的延迟之后不会自动执行。您可以获得所有计划交易的列表,然后可以自行决定在测试用例中手动运行它们。请注意,延迟交易已弃用,即使在正常情况下也不能保证其运行。
我们计划为我们的付费套餐用户提供高等级的服务质保。

如果您对我们的基础设施、结构稳定性有更深层次的疑问或倾向于自定义SLA,请随时与我们联系。