Ramsons - Bulk Edit Performance testing

Modules needed

  • ui-users
  • ui-inventory
  • mod-inventory-storage-modules
  • ui-bulk-edit
  • mod-data-export worker
  • mod-data-export-spring
  • FQM modules
  • SRS modules
  • Data import modules

Testing expectations (in order of priority)

  • Bulk edit MARC and FOLIO instances (Indicators and Query tabs)
  • Bulk edit item records (Indicators and Query tabs)
  • Bulk edit holdings records (Indicators and Query tabs)
  • Bulk edit user records  (Indicators and Query tabs)
  • Run multiple bulk edit jobs concurrently (see each section for details)
  • Run bulk edit while exporting:
    • circulation logs
    • bursar data
    • EDIFACT
    • eHoldings
    • Inventory exports


Bulk edit testing setup

  • Bulk edit  100, 1000, 10 000, 100 000 records for  items, holdings, instances and users
  • Environments to be tested (in order of priority):
    • ECS with Eureka  (LC like) with Eureka
    • non-ECS (bugfest like) with Eureka
    • ECS without Eureka
    • Non- ECS (bugfest like) without Eureka

Permissions setup as described in: https://folio-org.atlassian.net/wiki/x/AlkV

Existing JMeter tests repository: https://github.com/folio-org/folio-perf-test/tree/master/Folio-Test-Plans/bulk-edit - new scripts might be need to for holdings and intances

Failover tests:

  1. Determine likelihood of failover
  2. Does tasks restart?
  3. Does other task pick up the jobs that were in progress?


Concurrent tests in ECS environment

Scenario 1. Run simultaneously bulk edits in the central tenant and a member tenant:

  • one job for 10k instances records  on the Central tenant
  • one job of 10k items on a member tenant

Scenario 2. Run simultaneously bulk edits:

  • one job for 1000 items records from the central tenant
  • one job for 1000 holdings records in a member tenant

(If possible ramp up the number of records to 5k and 100k for items on the central tenant)

Scenario 3.  Run simultaneously bulk edits:

  • one job for 1000  user records in  the central tenant
  • one job for 10k  instance records in the centra tenant


Concurrent tests in non-ECS environment

Scenario 1. Run simultaneously bulk edits:

  • one job for 1000  user records
  • one job for 10k instances records 

(If possible ramp up the number of records to 5k and 100k for users and items respectively)

Scenario 2. Run simultaneously bulk edits:

  • one job for 1000  user records
  • one job for 10k item records 

(If possible ramp up the number of records to 5k and 100k for users and items respectively)

Scenario 3.  Run simultaneously bulk edits:

  • one job for 1000  user records
  • one job for 10k holdings records 

(If possible ramp up the number of records to 5k and 100k for users and items respectively)

Instance records

Instances with source FOLIO - Identifiers

  1. Trigger bulk edit by submitting list of identifiers for 100, 1000, 10 000, 100 000 records
  2. Add  Action note: "Regular data cleanup."
  3. Mark the instance as Staff suppress   

Instances with source FOLIO - Query 

  1. Trigger bulk edit by submitting the following query: (instance.source == "FOLIO") AND (instance.format_names contains any (<format names supported in test environment>)).  The query should return ~1000 record
  2. Add  Action note: "Regular data cleanup."
  3. Mark the instance Staff suppress 

Instances with source MARC - Identifiers

  1. Trigger bulk edit by submitting list of identifiers for 100, 1000, 10 000, 100 000 records
  2. Add 500 field with both identifiers empty and subfield “a” with the text “From the papers of the Smith family.” and subfield “5” set to “DLC”

Instances with source MARC - Query

  1. Trigger bulk edit by submitting the following query: (instance.source == "MARC") AND (instance.format_names contains any (<format names supported in test environment>)).  The query should return ~1000 record
  2. Add 500 field with both identifiers empty and subfield “a” with the text “From the papers of the Smith family.” and subfield “5” set to “DLC”

Administrative data - Instances  FOLIO and MARC - Identifiers

  1. Trigger bulk edit by submitting list of identifiers for 100, 1000, 10 000, 100 000 records
  2. Suppress from discovery including option for holdings and items

Administrative data - Instances  FOLIO and MARC -- Query

  1. Trigger bulk edit by submitting the following query: (instance.source == "MARC") AND (instance.format_names contains any (<format names supported in test environment>)).  The query should return ~1000 record
  2. Suppress from discovery including option for holdings and items
Identifiers - FOLIO InstancesQuery  - FOLIO Instances
Identifiers - MARC InstancesQuery - MARC Instances

Holdings records 

Identifiers

  1. Trigger bulk edit by submitting list of identifiers for 100, 1000, 10 000, 100 000 records
  2. Add  Action note: "Regular data cleanup"
  3. Mark it Staff only   
  4. Set Permanent location to <to the value available on test environment>
  5. Suppress from discovery including option including items

Query

  1. Trigger bulk edit by submitting query: (permanent_location.code in ("<values available on test environment>") The query should return ~1000 records.
  2. Add  Action note: "Regular data cleanup"
  3. Mark it Staff only   
  4. Set Permanent location to <value available on test environment>
  5. Suppress from discovery including option including items
IdentifiersQuery

Item records 

Identifiers

  1. Trigger bulk edit by submitting list of identifiers for 100, 1000, 10 000, 100 000 records
  2. Add  Action note: "Regular data cleanup"
  3. Mark it Staff only   
  4. Set Permanent location to <value available on test environment>
  5. Suppress from discovery 

Query

  1. Trigger bulk edit by submitting query: (permanent_location.code in ("<values available on test environment>") The query should return ~1000 records.
  2. Add  Action note: "Regular data cleanup"
  3. Mark it Staff only   
  4. Set Permanent location to <value available on test environment>
  5. Suppress from discovery 
IdentifiersQuery 

User records 

Identifiers

  1. Trigger bulk edit by submitting list of identifiers for 100, 1000, 10 000, 100 000 records
  2. Set patron group to <value available on test environment>
  3. Set expiration date to  November 1, 2026
  4. Replace ".com" with ".org" in the  email box

Query

  1. Trigger bulk edit by submitting query: (groups.group == "staff") AND (users.active == "true") The query should return ~1000 records.
  2. Set patron group to <value available on test environment>
  3. Set expiration date to  November 1, 2026
  4. Replace ".com" with ".org" in the  email box
IdentifiersQuery