Code Monkey home page Code Monkey logo

indigo-api's Introduction

Indigo

Build Status GitHub release GitHub


关于 Indigo

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

基本特性

基于 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定时或其他自定义事件源触发, 一般用于巡检监控和持续集成.


截图示例

使用场景

使用任务

任务统计数据, 趋势图

每次请求的详细数据

indigo-api's People

Contributors

xcorpio avatar yuanye4017 avatar

Stargazers

 test.im avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.