Indigo《靛蓝》接口测试平台

MIT
Typescript, Scala
欧几里喵 · 2018年10月12日 · 2132 次阅读 · 7 条评论

Indigo

Build Status GitHub release GitHub


关于 Indigo

大家点星⭐️支持下哦。

前端地址: https://github.com/asura-pro/indigo
后端地址: https://github.com/asura-pro/asura

Indigo 是一个测试接口的系统. 可以对 Http(s), Dubbo, MySql 的请求响应进行断言. 一般用于企业内部接口的自动化测试, CI/CD Pipeline 节点, 线上巡检监控.
完整文档:https://docs.asura.pro

基本特性

基于 Web UI 操作, 在线编辑和测试

使用 Typescript, Angular, Ant Design 技术实现. Indigo 的定位并非是一个框架而是一个开箱即用的测试系统, 对此设计了一套还算好用的 UI. 有 UI 的好处是, 相对与写脚本, 使用成本及其低, 且比使用脚本效率高 N 倍 (大部分情况下, 尤其是当用例的数量非常大时). 但和其他基于脚本的接口测试框架相比, 必然缺少了一定的灵活性. 事实上大部分接口测试场景都很简单, 就是响应进行断言并没有很复杂的逻辑 (那是业务系统的工作). Indigo 内置 Javascript 脚本引擎, 结合场景 其实灵活性也很高的.

可维护高数量级的用例, 具备较高的并发执行性能

Indigo后端 使用Akka框架作为底层基础实现. AkkaJVM上一个Actor 编程模型的实现, 很适合用来构建高并发, 分布式和弹性消息驱动的应用. Indigo中使用了大量的Actor来对场景和任务进行抽象, 保证大量场景和任务同时执行过程中的状态隔离. Indigo中的数据, 包括基本的用例数据, 执行记录, 报告数据都存储在Elastic Search中.

基于 JSON 的强大断言

Indigo中断言被抽象为一个 JSON 结构体 (JSON 格式的 DSL). 断言参考

{
  "$.entity.data" : {
    "$and" : [
      { "$.code" : { "$eq" : "10000" } },
      {
        "$.list" : {
          "$and" : [
            { "$type" : "array" },
            { "$size" : 10 }
          ]
        }
      }
    ]
  }
}

场景和任务

场景可以由一组顺序执行的不同类型的请求用例组成. 其中每一个步骤都可以导出变量供之后的请求使用. 可以把多个请求或场景组装成一个任务. 任务可以通过接口, Cron 定时或其他自定义事件源触发, 一般用于巡检监控和持续集成.


截图示例

使用场景

使用任务

任务统计数据, 趋势图

每次请求的详细数据

评论列表
changenping 发表于 2019年12月06日

有 demo 试用地址吗

zlisten 发表于 2019年10月24日

接上面,修改了下压缩比(git config --add core.compression -1),下载的时候只下一层(git clone --depth 1),然后又试了好几次,终于成功了。一共 13M,有俩 GIF 图片就占了 5M,不过这也只能怪网络不给力。

zlisten 发表于 2019年10月24日

前端 https://github.com/asura-pro/indigo 很奇怪,这两天下载了 5 次都不成功。后端的一次就成功了。

恒温 发表于 2018年12月09日

demo 链接不上了

欧几里喵 发表于 2018年11月10日

更新了

一只咸鱼 发表于 2018年10月30日

地址呢?同问

End 发表于 2018年10月18日

没开源地址啊