How-to record and replay ESRI ArcGIS Desktop (ArcMap)?
Posted: July 27th, 2008 | Author: TnT Admin | Filed under: Concepts | Tags: ArcMap, ESRI, LoadRunner, SilkPerformer | 2 Comments »
This article provides a basic understanding that you can use in recording and replaying of the ESRI ArcGIS Desktop (ArcMap) communicating with ArcGIS Sever. GIS stands for Geographical Information System which examples are Google Maps and Yahoo Maps. There are four approaches I figured out to conduct the load testing using LoadRunner. Again, we need to grasp some concepts on how LoadRunner works in recording and replay in “Which protocol to use?” and how we can apply onto this technology. Basically, they consist of (1) loading of the SOAP/HTTP traffic, (2) replaying of the actual Web Service, (3) replaying of the methods and assemblies and (4) replaying of the scripts created in Visual Studio using Visual Studio AddIn and ArcGIS SDK.
We will go through the approaches in LoadRunner and briefly touch on the similar options available in SilkPerformer.
[1] Using Web (HTTP/HTML) protocol
The actual approach that was utilized in the load test. Ba
ck to the basics, the communication channel used by ArcGIS Desktop (ArcMap) is Web Services over HTTP, that’s SOAP/HTTP. The Web Services include finding the service provided by a ArcGIS Server, calculating and loading of the map. Therefore, normal means of using Web (HTTP/HTML) should suffix. For licensing concerns, Web (HTTP/HTML) protocol is grouped under the Web 2.0 Bundle license.
Further to this, (a) options for capturing the Content-Headers should be enabled and (b) the old recording engine in VUGen should be used. An article will be posted on the sample recording of ArcGIS Desktop (ArcMap) using Web (HTTP/HTML).
[2] Using Web Services protocol
As communcation is using Web Services, the most clear-cut protocol will be Web Services protocol which you can parameterize it with the Wizard. Refer to “Is it possible to load test Web Services without front-end?” . Understanding of the location of the WSDL file and parameters to passed in will be required for this approach. Of course, this requires the SOA Bundle license in order for load execution in Controller.
[3] Using .NET protocol
Using .NET protocol, you will need to know the assemblies and methods used by ArcMap. Therefore, go through the entire list of assemblies and methods that maybe involved in the communication between the client, ArcGIS Desktop (ArcMap) to the server, ArcGIS Server.
[4] Using Visual Studio AddIn
Using Visual Studio AddIn (after the installation of the plugin), you can create the user by calling methods from the ArcGIS SDK. Our evaluation of using ArcGIS SDK was using the C# language and making calls of zooming and panning activities. Unlike the conventional approach of knowing the communication between the client and server, and ignoring the client-activities, in this approach, we focus on the client-activities and ignore the communication used.
Similarly in SilkPerformer (refer to “What’s SilkPerformer” for a review of the product), there are four approaches to record and replay of an activity in ArcGIS Desktop (ArcMap) that are almost the same to LoadRunner with of course a different branding and licensing mechanism.
1] Using Web License
The basic function provided by SilkPerformer with same capabilitis as the Web (HTTP/HTML) protocol in LoadRunner.
[2] Using SOA Edition
Similar to SOA Bundle in LoadRunner, the SilkPerformer SOA Edition allows the reading of WSDL file and generation of the APIs based on the WSDL file.
[3] Using .NET Explorer
Similar to .NET protocol in LoadRunner, SilkPerformer will require the knowledge of the assemblies and methods being used by the user in a normal context. Using the .NET Explorer, SilkPerformer will generate the API based on the selected assemblies and methods.
[4] Using Visual Studio Plugin
Similar to Visual Studio Addin in LoadRunner, an additional plugin provided by SilkPerformer is installed into Visual Studio. And by using the desired langauges (Java, Visual Basic or C#) and the knowledge of ArcGIS SDK, you can create powerful scripts that emulates the activities of the real user.
If you have other approaches in load testing the application, please let us know and we can share it out with everyone here. Our understanding that there are other alternatives such as EggPlant Load Tester and using of RDP (Remote Desktop Protocol in LoadRunner 9.0 onwards) to load test ArcGIS.
Eggplant acutally accomplishes this through RFB (remote frame buffer) – this is much faster and more versatile. This also allows for automation without any extra bundles, API’s or additional knowledge. Automation is inherently focused on SOA and the end user experience. Eggplant is used by many utilities companies that are heavy users of GIS packages as well as the USDA’s GIS development efforts. feel free to ping me for more details phil@redstonesoftware.com 720 878 2604
Thanks Philip for the additional information.