Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Jira Legacy
serverSystem JiraJIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId01505d01-b853-3c2e-90f1-ee9b165564fc
keyFOLIO-1406

...

Code Block
1. GET /item-storage/items
2. POST /item-storage/items
Body Data:
{ "holdingsRecordId": "2b92dc88-d44d-4dc3-bd9e-89596adbe54b", "materialTypeId": "1a54b431-2e4f-452d-9cae-9cee66c9a892", "permanentLoanTypeId": "2b94c631-fca9-4892-a730-03ee529ffe27" }
3. GET /item-storage/items/5ee11d91-f7e8-481d-b079-65d708582ccc
4. PUT /item-storage/items/5ee11d91-f7e8-481d-b079-65d708582ccc
{ "id" : "1e399da3-782b-4312-9e3b-ef7ee2238a81", "holdingsRecordId": "d031681a-dbb9-49d0-9367-90419168d0c0", "pieceIdentifiers": ["This is test identifier"], "notes": ["This is test notes"], "materialTypeId": "1a54b431-2e4f-452d-9cae-9cee66c9a892", "permanentLoanTypeId": "2b94c631-fca9-4892-a730-03ee529ffe27" }
5. GET /item-storage/items/5ee11d91-f7e8-481d-b079-65d708582ccc
6. DELETE /item-storage/items/5ee11d91-f7e8-481d-b079-65d708582ccc
7. GET /item-storage/items/5ee11d91-f7e8-481d-b079-65d708582ccc



...

Tests are scheduled to run in Jenkins. Jenkins job runs nightly and triggers about 16000 http requests. New environment is created every time the tests run and is torn down once testing is complete. 

...

  1. Check out.
  2. Create environment - call AWS CloudFormation template to create three EC2 instances. One m5.large instance for Okapi, and two m5.xlarge instances for Modules and Database.
  3. Check environment -  wait for all instances to be fully ready.
  4. Bootstrap DB - pull and start PostgreSQL Docker image on DB EC2 instance.
  5. Bootstrap Okapi - pull and start Okapi Docker image used by snapshot-stable site from Docker hub and start it on Okapi EC2 instance.
  6. Bootstrap Modules - pull and start all modules Docker images used by snapshot-stable site.
  7. Populate data - pull EBSCO sample data from a public S3 bucket to populate database. Sample data is a Harvard dataset which could be considered similar to production version.
  8. Run JMeter tests.
  9. Tear down environment - delete the AWS stack.


EC2 instances characteristics:

Image Modified


...

Reports are generated in Jenkins using JMeter Performance plugin.

Following metrics are collected in the Performance Report:

...

  • The average response time (AVG RT) for the JMeter captured transaction should not be more than 1000 milliseconds.
  • The percent of CPU utilization on any module should not be more than 50%.
  • JMeter tests running nightly in Jenkins pipeline as a job will fail if even a single test fails.


Example performance report:

Image Modified