Open source framework for defining and validating workflows.

Why use Jetprobe

Faster Development

Speed up the development of automation tests, with expressive and concise workflow definition language developed in Scala.

Multiple Integrations

Write validation rules, against different big data infrastructure components like HBase, HDFS and MongoDB.

Easily Extensible

Add custom tasks and validation rules for your favorite tools, using pluggable APIs of Jetprobe framework.

How it works

Define the Test Pipeline

@PipelineMeta(name = "MongoDB Prep Suite")
class MongoSuite extends TestPipeline with LazyLogging {

val mongoConf = new MongoDBConf("mongodb://${mongo.host.name}")

  override def tasks: PipelineBuilder = {

  ssh("Start the mongo db")

  task(
      description =  "Create Mongo Collection",
      config = mongoConf
    ) { mongoDB =>

    mongoDB.createCollection("foo", "bar",Seq("id","name"))
    mongoDB.createCollection("zoo", "baz")

  }

  validate("Collection Indices test",mongoConf){ mongodb =>

  val info = mongodb.getDatabaseStats("foo").get
  assertEquals(1,info.get("indexes").get.asInt32().getValue)

  }

}
                        
Declare the pipeline as part of the scenario

  # Name of the scenario workflow
  name : data ingestion test
  project : user-analytics

    tags :
     - https
     - mongo
     - test

  # params for the pipelines
  params :
    mongo.host.name : xx.xx.xxx.xxx
    reporter.html.outputPath : /path/to/report.html

  pipelines :
    - name : Mongo-prep
      className : com.jetprobe.sample.MongoSuite
      description : Mongo db preparation
      exitOnFailure : true

                        
Package and execute the workflow

  //package the workflow
  sbt package
  //Run the workflow
  jetprobe --jar /path/to/test-pipe.jar --config /path/to/config.yml