josecoll 4db315f81a
ENT-1424 - Setup Compatibility testing environment (#1211)
* Updated interoperability scenarios to use GA Release Candidate

* Removed "with proxy" and updated incorrect reference to OS master.

* Update to resolve Artifactory tools if available (blob-inspector, network-bootstrapper, database-migration)

* Allow passing in of argument to specify one or more scenarios to run.

* Updated to RC03.

* Added Oracle support in Behave framework and included functional test scenarios.

* behave test using snapshot (#970)

* make behave use snapshots from artifactory

* rebase and fix

* address PR issues

* address PR issues

* gradle task for bdd (#989)

* gradle task for bdd (#989)

* fix typo

* Publishing behave-api jar for use by external applications (eg. cordapp-option).
Fixed SIMMM valuation behave scenario test and startup.

* Publishing behave-api jar for use by external applications (eg. cordapp-option).
Fixed SIMMM valuation behave scenario test and startup.

* Various fixes to make BDD working in Teamcity (#1063)

* fix typo

* print docker log

* print docker log

* attempt to fix docker

* attempt to fix docker

* attempt to fix docker

* update to RC04

* disable clean up

* try to find out why the test pick up the wrong jar

* test

* minor fixes

* fix wrong bootstrapping procedure

* remove DISABLE_CLEANUP

* attempt to fix error

* fixes to get postgres working

* enable cleanup

* generate cucumber report

* bump to RC06

* attempt to make cucumber generate http report

* cucumber report

* some minor cleanup

* removed DP3 nodes from scenarios, added oracle and bumped to RC07

* fix licence issue

* fixed bootstrapper placing corda jar

* Update interoperability.feature

* Added missing published artifact.

* Fixed compilation errors raised by stricter compilation flag checking.

* Minor changes following rebase from master and re-testing.

* Updates to reflect last minute naming and versioning changes applied to 3.0 release.
Updated scenarios to use the officially released version of CE 3.0

* Updates following lastest PR review feedback.

* Updates following lastest PR review feedback.

* Align with master (maxMessageSize = mazTransactionSize).

* Fix snapshot version regex matching.

* Set logging level to DEBUG to ensure pattern matches catch log message output which has been downgraded from INFO

* Add all supported interoperable versions.
2018-07-31 17:53:24 +01:00
..
2018-04-19 11:49:17 +01:00

Introduction

This project illustrates how one can use Cucumber / BDD to drive and test homogeneous and heterogeneous Corda networks on a local machine. The framework has built-in support for Dockerised node dependencies so that you easily can spin up a Corda node locally that, for instance, uses a 3rd party database provider such as Postgres.

Structure

The project is split into three pieces:

  • Testing Library (main) - This library contains auxiliary functions that help in configuring and bootstrapping Corda networks on a local machine. The purpose of the library is to aid in black-box testing and automation.

  • Unit Tests (test) - These are various tests for the library described above. Note that there's only limited coverage for now.

  • BDD Framework (scenario) - This module shows how to use BDD-style frameworks to control the testing of Corda networks; more specifically, using Cucumber.

Setup

To get started, please follow the instructions below:

  • Go up to the root directory and build the capsule JAR.

    $ cd ../../
    $ ./gradlew install
    
  • Come back to this folder and run:

    $ cd experimental/behave
    $ ./prepare.sh
    

This script will download necessary database drivers and set up the dependencies directory with copies of the Corda fat-JAR and the network bootstrapping tool.

Selective Runs

If you only want to run tests of a specific tag, you can append the following parameter to the Gradle command:

$ ../../gradlew scenario -Ptags="@cash"
# or
$ ../../gradlew scenario -Ptags="@cash,@logging"

Environment variables and system properties

The following environment variables must be set to enable access to the internal R3 Artifactory repository hosting Enterprise distributions: https://ci-artifactory.corda.r3cev.com/artifactory/r3-corda-releases

CORDA_ARTIFACTORY_USERNAME
CORDA_ARTIFACTORY_PASSWORD

The following system properties may be passed to the Cucumber and ScenarioRunner run-time processes:

  • STAGING_ROOT to specify the filesystem location of the Corda distributions to be used (as setup by the prepare.sh script)
e.g. -DSTAGING_ROOT=$HOME/staging
  • USE_NETWORK_SERVICES specifies to use the Doorman/NMS service to perform setup of an Enterprise network. By default both OS and Enterprise scenarios will use the Network Bootstrapper utility to create a Corda network.
e.g. -DUSE_NETWORK_SERVICES
  • DISABLE_CLEANUP to prevent clean-up of runtime directories after successfully running tests.
e.g. -DDISABLE_CLEANUP