Spike: MODKBEKBJ-12 - JMeter for creating a Performance Test Plan

MODKBEKBJ-12 - Getting issue details... STATUS

The following links were helpful for writing tests How to Write JMeter performance tests and for the automated CI/CD pipeline to run tests Performance Testing 

This page provides additional information on test setup and execution that is specific for the mod-kb-ebsco-java module.

Additional setup in the CI/CD Pipeline

A  performance test job executes daily in Index Data's pipeline and executes test plans as defined at https://github.com/folio-org/folio-perf-test

Jenkins job uses Jenkins credentials with id ebsco-rmapi-up to access customer id and apikey for RM API access. 

Jenkins job writes credentials information to file kbconfig.csv for use by mod-kb-ebsco-java specific test plans to configure RM API access.

Jenkins job is currently configured to create an environment with modules defined at http://folio-snapshot-stable.aws.indexdata.com/install.json.

Mod-kb-ebsco is currently a part of this module definition. Mod-kb-ebsco-java will eventually replace mod-kb-ebsco in this definition.

Mod-kb-ebsco-java test considerations

Assume there will be individual test plans for each of the mod-kb-ebsco-java endpoints. Initial test plan has been created for the Providers endpoint.

Test plan contains a KB Credentials Config (CSV Data Set Config) section which reads kbconfig,csv file containing RM API configuration (url, custid, apikey)

Additionally contains thread groups for Saving the current RM API configuration, Setting the new RM API Configuration (as passed in kbconfig,csv) and restoring original configuration after the tests are executed

Providers Thread Group reads file providers.csv to obtain configuration for number of threads, ramp up period and loop count. Tests are configured currently at 1,1,1 considering throttling is currently in place for RM API and limits number of API requests per day.

Local test considerations

Tests can be run locally against a vagrant box.  You will need to create and reference a config.csv file (containing tenant,user,password,protocol,host,port) and a kbconfig.csv (containing kburl, custid, apikey). Paths to file can either be adjusted or the entire Folio-Test-Plans folder can be placed into your JMeter bin folder

Initial test plan for Providers endpoint has been added with the following PR https://github.com/folio-org/folio-perf-test/pull/40