The workflow for testing BMC Remedy IT Service Management with Silk Performer is the same as the workflow for testing Web-based applications, with the following exceptions:
BMC has created an excellent tutorial that illustrates how to load test BMC Remedy IT Service Management (ITSM) applications with BMC Remedy Action Request System (AR System). To obtain the tutorial, contact BMC and request the following white paper: Performance Benchmarking Kit: Using Incident Management with Silk Performer .
A premium virtual user license is required to test Remedy with Silk Performer.
TrueLog functionality is not supported for Remedy testing.
Remedy uses a proprietary format for data that is sent from the client to the server. This format includes length prefixes and makes customization difficult.
For example:
157/GetTableEntryList/11/smi-web-00126/ SMI:TEL35:SHR:AgentConsole12/Windows_View9/53687098211/ smi-web-00127/SMI:TEL35:SYS:IncomingEmail0/ 1/01/02/0/0/2/0/2/0/2/0/
Such data is sent in HTTP requests to the URL http://<hostname>/arsys/BackChannel.
Remedy versions 6.3 patch level 2 and earlier send such data in the body of HTTP POST requests. Versions 6.3 and later send such data in the query string of HTTP GET requests.
The main benefit of Silk Performer’s Remedy add-on is that this proprietary data format is translated into an XML-based representation that eliminates the length prefixes and introduces names to the individual data items. This makes scripts easier to understand and customize. During script replay, this XML-based format is transparently translated back into the original format.
This backward transformation is performed by the functions WebRemedyBackChannelUrl and WebRemedyBackChannelPost.
WebRemedyBackChannelUrl is a replacement for the function WebPageUrl, while WebRemedyBackChannelPost is a replacement for the function WebPagePost.
For example, without the Remedy add-on the following API call would be recorded as:
WebPagePost("http://213.131.176.85/arsys/BackChannel", "157/GetTableEntryList/11/smi-web-00126/ SMI:TEL35:SHR:AgentConsole12/W" "indows_View9/53687098211/smi-web-00127/ SMI:TEL35:SYS:IncomingEmail0/1" "/01/02/0/0/2/0/2/0/2/0/", STRING_COMPLETE, "text/plain; charset=UTF-8", "arsys/BackChannel");
With the Remedy add-on the API call is recorded as follows:
WebRemedyBackChannelPost("http://213.131.176.85/arsys/BackChannel", "<?xml version='1.0'?>\r\n" "<SegueRemedyXml operation=\"GetTableEntryList\">\r\n" " <string name=\"table_server\">smi-web-001</string>\r\n" " <string name=\"table_schema\">SMI:TEL35:SHR:AgentConsole</string>\r\n" " <string name=\"table_vui_name\">Windows_View</string>\r\n" " <long name=\"table_field_id\">536870982</long>\r\n" " <string name=\"server\">smi-web-001</string>\r\n" " <string name=\"schema\">SMI:TEL35:SYS:IncomingEmail</string>\r\n" " <string name=\"app_name\"></string>\r\n" " <long name=\"start_row\">0</long>\r\n" " <long name=\"num_rows\">0</long>\r\n" " <Array name=\"sort_order\"></Array>\r\n" " <string name=\"qualification\"></string>\r\n" " <Array name=\"qual_field_ids\"></Array>\r\n" " <Array name=\"qual_field_values\"></Array>\r\n" " <Array name=\"qual_field_types\"></Array>\r\n" "</SegueRemedyXml>", STRING_COMPLETE, "text/plain; charset=UTF-8", "BackChannel - GetTableEntryList");
The key differences are:
In addition to the different representation of the data there are other benefits to using the Remedy add-on:
The Remedy application type is triggered through a SilkEssential package. It contains a set of recording rules and a remedy.bdh. The remedy.bdh wraps the WebPageCalls:
// wrapper function for WebPagePost // param nDataLength will be ignored function WebRemedyBackChannelPost(sUrl : string; sData : string; nDataLength : number optional; sContent : string optional; sTimer : string optional; formUrl : form optional) : boolean <API_FUNCTION> begin WebRemedyBackChannelPost := WebPagePost(sUrl, RemedyBackChannelData(sData), STRING_COMPLETE, sContent, sTimer, formUrl); end WebRemedyBackChannelPost;
and
// wrapper function for WebPageUrl for use with BackChannel requests function WebRemedyBackChannelUrl(sUrl : string; sTimer : string optional; formUrl : form optional) : boolean <API_FUNCTION> var sXmlData : string(100000); sDummy : string; begin WebFormExpand(formUrl, sDummy, 1, true); WebFormValueGet(formUrl, sXmlData, sizeof(sXmlData), "param"); WebFormValueSet(ARSYS_BACKCHANNEL_INTERNAL_HELPER, "param", RemedyBackChannelData(sXmlData)); WebRemedyBackChannelUrl := WebPageUrl(sUrl, sTimer, ARSYS_BACKCHANNEL_INTERNAL_HELPER); end WebRemedyBackChannelUrl; dclform ARSYS_BACKCHANNEL_INTERNAL_HELPER <ENCODE_URICOMPONENT> : "param" := "";
Remedy protocol detection is not available by default. However, it is already built into the Silk Performer recorder and is enabled by choosing the appropriate Remedy application type when creating a new project.
The Remedy data conversion into XML and back out of XML is implemented in the ProxyEngine for recording and in the perfRemedy.dll, which is loaded into the perfRun by the Remedy.bdh.