A geoprocessing (GP) services is essentially a resource that is setup to perform or automate any ArcGIS Enterprise task. The purpose of this tool could be something that works on a feature class or table and creates an output dataset. The work performed could be to take in a set of inputs and generate a buffer or project to another spatial reference.
They take the form of being either synchronous or asynchronous. This is known as the execution mode.
Synchronous geoprocessing services are ideal for small jobs where the required computation to complete the task is very quick (e.g. just a few seconds). In this case, all the requests involved in the process are short-lived and load testing such a service would be straight-forward: construct a test to send the requests as they (sequentially) appear when interacting with the service. Once the job request is submitted, the response returns as soon as it has completed.
Asynchronous geoprocessing services on the other hand, have more moving parts. Since the task could be very long running, once the job has been submitted, its up to the user (the tester) to periodically check on the status of job with a separate request. Status state checking logic inside a loop introduces complexity to the test.
This article can be used as a guide for load testing an Asynchronous GP service. While it is specific to the "Summarizing Invasive Species" example, the majority of the test and its logic can be applied to other geoprocessing services.
Table Of Contents
- Why Test a Asynchronous Geoprocessing Service?
- Asynchronous Geoprocessing Service Testing Challenges
- How to Test an Asynchronous Geoprocessing Service?
- The "Summarize Invasive Species" Geoprocessing Model and Dataset
- Test Data Generation
- The Asynchronous Geoprocessing Service Test Plan
- Components of the Test Plan
- SubmitJob
- CSV Data Set Config
- InitialJobStatus
- LoopJobStatus
- WhileLoop
- JobStatusCheck
- ResponseAssertion
- SleepWhileLoop
- IfWhileLoopMax
- IfJobSucceeded
- DownloadOutput
- IfTestIterationMax
- The Thread Group Configuration
- Validating the Test Plan
- Test Execution
- JMeter Report
- Throughput Curves
- Performance Curves
- Final Thoughts
- A Quick Word on Sizing
- A Quick Word on Instances
- A Quick Word on the Location of the arcgisjobs Folder
Read more...