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
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
Scenario 1: 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
Scenario 2: 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
Scenario 3: 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”
Scenario 4: 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”
Scenario 5: 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
Scenario 6: 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 |
|---|---|
Identifiers - MARC Instances | Query - MARC 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 |
|---|---|