github.com/leonlxy/hyperledger@v1.0.0-alpha.0.20170427033203-34922035d248/bddtests/regression/README.md (about)

     1  ## regression
     2  Regression Test Suites scripts, and folders for: execution results for
     3  significant releases, and
     4  configuration scripts and supporting files in a variety of languages:
     5  
     6  - [GO](https://github.com/hyperledger/fabric/bddtests/regression/go)
     7    language test scripts
     8  - [NODE](https://github.com/hyperledger/fabric/bddtests/regression/node)
     9    language test scripts
    10    Note: a flexible-use performance engine, which can be configured and used
    11    for a variety of tests, is located in the
    12    [node/performance](https://github.com/hyperledger/fabric/bddtests/regression/node/performance)
    13    folder.  For examples how to use it, check there, or look for examples in the
    14    daily test suite and long-run test suite scripts.
    15  - [results](https://github.com/hyperledger/fabric/bddtests/regression/results)
    16    folder containing logfiles and results of running the Test Suites on
    17    significant releases, for reference
    18  
    19  
    20  ### Continous Integration Setup
    21  Continuous Integration team will execute the *daily test suite* each day when a
    22  merge commit has been pushed to fabric repository.
    23  We have configured Jenkins in vLaunch to execute the Daily Test Suite:
    24  the jobs listed below are downstream jobs which are run after successfully
    25  executing the upstream job.
    26  After the build is successfully executed, Jenkins will post build results
    27  back to **rel-criteria-build** slack channel,
    28  and generate a test summary report, to be available for viewing for 30 days.
    29  For significant releases, the results will be stored
    30  in **bddtests/regression/results** folder.
    31  
    32  
    33  ### Daily Test Suite - daily_test_suite.sh
    34  Expected total time duration is between 13 - 16 hours.
    35  
    36  * Consensus Acceptance Tests (CAT) - using chaincode example02, GO, gRPC
    37    - Objective of CAT tests is to ensure the stability and resiliency of the
    38      BFT Batch design.
    39  * Large Networks Basic API And Consensus Tests - using chaincode example02,
    40    GO, gRPC
    41    - Objective of Basic gRPC API test is to ensure basic gRPC API functions
    42      are working as expected
    43  * Ledger Stress Tests (LST) for API and 20K runs with concurrency and
    44    1K payload - using chaincode addrecs, GO, gRPC
    45  * Speed Tests for measuring turnaround performance of the communication path
    46    and blockchain network processing - using chaincode addrecs, GO, gRPC
    47  * Concurrency Tests - using chaincode addrecs, GO, gRPC
    48    - Objective of Concurrency test is to ensure system is able to accept
    49      multiple threads concurrently for specified number of mins.
    50  * Complex Transactions Tests - using chaincode auction, node, gRPC
    51    - Objective of this test is to send complex transactions using
    52      auction chaincode
    53  * Performance Tests, random sized payloads - using chaincodes example02
    54    and auction, node, gRPC
    55    - CI performs below tests in Performance testing
    56       * Invoke on chaincode_example02 using 4 peers and
    57         4 Threads for 180 secs
    58       * Query on chaincode_example02 using 4 peers and
    59         4 Threads for 180 secs
    60       * Invoke on auction chaincode using 4 peers and
    61         1000 Tx for each of the 4 Threads
    62       * Query on auction chaincode using 4 peers and
    63         1000 Tx for each of the 4 Threads
    64       * Invoke on auction chaincode using 4 peers and 4 Threads.
    65         Each Invoke is followed by a Query on every Thread
    66       * Invoke on example02 chaincode using 4 peers and 4 Threads.
    67  Each Invoke is followed by a Query on every Thread
    68  
    69  
    70  ### LongRun Test Suite - longrun_test_suite.sh
    71  Expected total time duration is 72 hours when executed from
    72  Jenkins automation scripts, which run several parallel jobs.
    73  
    74  * Consensus peers restarts tests, 2 tests, each approximately 10 hours -
    75    using chaincode example02, GO, gRPC
    76  * Ledger Stress Test 1 Million transactions, approximately 36 hours -
    77    using chaincode addrecs, GO, gRPC
    78  * Ledger Stress Test, 72 hours - using chaincode addrecs, GO, gRPC
    79    - Send parallel Invoke requests on all 4 peers
    80  * Performance Tests, 72 hours, random sized payloads - using chaincode auction,
    81    node, gRPC (includes variable traffic, concurrency, complex transactions)
    82    - Invoke 1 Tx per sec on 1 peer for 72 hrs (1 Thread)
    83  
    84  
    85  ### Full Regression Test Suite
    86  Execute both the Daily Test Suite AND the Long Run Test Suite.
    87