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:
- Determine likelihood of failover
- Does tasks restart?
- 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
- Trigger bulk edit by submitting list of identifiers for 100, 1000, 10 000, 100 000 records
- Add Action note: "Regular data cleanup."
- Mark the instance as Staff suppress
Instances with source FOLIO - Query
- 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
- Add Action note: "Regular data cleanup."
- Mark the instance Staff suppress
Instances with source MARC - Identifiers
- Trigger bulk edit by submitting list of identifiers for 100, 1000, 10 000, 100 000 records
- 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
- 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
- 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
- Trigger bulk edit by submitting list of identifiers for 100, 1000, 10 000, 100 000 records
- Suppress from discovery including option for holdings and items
Administrative data - Instances FOLIO and MARC -- Query
- 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
- Suppress from discovery including option for holdings and items
Identifiers - FOLIO Instances | Query - FOLIO Instances |
---|---|
Holdings records
Identifiers
- Trigger bulk edit by submitting list of identifiers for 100, 1000, 10 000, 100 000 records
- Add Action note: "Regular data cleanup"
- Mark it Staff only
- Set Permanent location to <to the value available on test environment>
- Suppress from discovery including option including items
Query
- Trigger bulk edit by submitting query: (permanent_location.code in ("<values available on test environment>") The query should return ~1000 records.
- Add Action note: "Regular data cleanup"
- Mark it Staff only
- Set Permanent location to <value available on test environment>
- Suppress from discovery including option including items
Identifiers | Query |
---|---|
Item records
Identifiers
- Trigger bulk edit by submitting list of identifiers for 100, 1000, 10 000, 100 000 records
- Add Action note: "Regular data cleanup"
- Mark it Staff only
- Set Permanent location to <value available on test environment>
- Suppress from discovery
Query
- Trigger bulk edit by submitting query: (permanent_location.code in ("<values available on test environment>") The query should return ~1000 records.
- Add Action note: "Regular data cleanup"
- Mark it Staff only
- Set Permanent location to <value available on test environment>
- Suppress from discovery
Identifiers | Query |
---|---|
User records
Identifiers
- Trigger bulk edit by submitting list of identifiers for 100, 1000, 10 000, 100 000 records
- Set patron group to <value available on test environment>
- Set expiration date to November 1, 2026
- Replace ".com" with ".org" in the email box
Query
- Trigger bulk edit by submitting query: (groups.group == "staff") AND (users.active == "true") The query should return ~1000 records.
- Set patron group to <value available on test environment>
- Set expiration date to November 1, 2026
- Replace ".com" with ".org" in the email box
Identifiers | Query |
---|---|