• Jenkins: Jenkins is  used to run the test suite i.e. smoke test/functional test/UI test/Load Test
  • Maven Project can also be used to do feature testing/functional testing of an API
  • Cucumber is used as a main framework for automating the entire testing. Cucumber supports BDD Behavior Driven Development.  It helps in continuous development and continuous integration. https://cucumber.io/
  • Gherkin is grammar for DSL; Domain Specific language.  
  • Selenium( https://www.seleniumhq.org/)  Test Driver is used for testing the UI Portal. Selenium driver uses Apache POI for taking various user inputs to be applied for testing the Portal from Excel or CSV file
  • HTTP(S)Webservice driver helps in testing web-service or web calls when/if needed
  • Emulation Drivers are the drivers which talks to various emulation engine might be over socket or API or remote calls. This needs custom development as when required if the drivers are not directly available.
  • Cucumber Results and Reports: Cucumber has very good reporting interface. This can be extended using plugin as when required. The test suite running results can be viewed from web UI.
  • The Testcases written as Feature Files can be easily modified by the tester or deployment engineer as it is almost English like code. This will help in writing the testcases easily and can create very complex test cases.  
  • Glue Code/Test scripts are the code that translates the DSL to actual function/API calls.
  • Test Recipe are the supporting scripts/third party library for to run the glue code and then. capture intermediate results and further processing to reach the actual test results. This Glue code could be written in Java and/or python based on the requirement
  • Test App Server is the platform where a particular code might/would run. 
  • From Jenkins job the Test cases written for smoke test/functional test/UI test/Load Test are invoked.  It then calls are the Test cases written in DSL/Gherkin which gets translated using the Glue code and call the actual API.  Or it calls the specific driver say Selenium for the UI portal testing. Or calls the Emulation driver to do a specific testing.
  • Architecture also uses Junit and JMeter for Unit testing and Load Testing respectively as when needed.