Little Fun playing Remedy ARS 7.x version with LoadRunner 9.x–Part 1

3 Mar

From last couple of weeks , I was involved in one of my colleagues project which involved testing Remedy ARS 7.6 with LoadRunner.This project was quite a hot topic of discussion among the senior management folks with lot of mails going back and forth.There was many reasons for this project being a hot material for discussion  most primarily being that this project was a major OSS/BSS integration project involving putting lot of COTS Products together.Having worked previously in at least 3 such programs which involves integrating almost all the major technologies ,I understand the project dynamics quite well.You just get FUBAR.

So this writing is all about as how we did scripting for Remedy ARS with LoadRunner,What all challenges we faced and how did we overcome those challenges,

Remedy ARS is a web based interface for Service Management,Incident management,Change Management,Problem Management.It also has some functionality which generates various kinds of reports.Remedy ARS is  used mainly with  the Role based structure.There are lot of users whose roles varies and depending on the role, their access rights also varies.There are admin rights who has access to all the functionality of remedy,there are service desk analyst who just have read right to read the ticket information,there are helpdesk guys who has both read and write access to the tickets.Lot of functionality of the remedy is dependent on the rights the user has.In fact the various fields that are present in the application can also be controlled and only those users with appropriate rights can only access,read,write or update those fields.So any read,insert,select,update or delete of data presented in the application is dependent on the access rights of the users.

There is also one more catch here,there exists a concept of floating and fixed license per user,if the user has floating license, then I believe he or she cannot do any operation more number of times.So one needs to check as what kind of license does the user has while conducting performance testing.

For our performance testing efforts we had below scenarios,

  • Create Incident Ticket
  • Modify Incident Ticket
  • Search Incident Ticket
  • Create Change Ticket
  • Modify Change Ticket
  • Search Change Ticket
  • Create Problem Incident
  • Modify Problem Incident
  • Search Problem Incident
  • Report Generation
  • NNMI

For all these above scenario, we came across  some of below remedy ars api,

  • GetURLforForm
  • GetBulkTableEntry
  • Gettablelist
  • Setentrylist

Then there were lot of other api’s as well.All these api’s gets recorded as the part of web custom request body component.All these api’s works mostly like the sql’s queries via backchannel requests.

So What could be the ideal recording setting to be given in LoadRunner ?

The aim of the recording should be to generate independent backchannel requests so that we really understand as how input data is send to the server and in what format.So we tried  to record the application with default setting in LoadRunner, however almost all major backchannel requests went into the extrares section.So the default setting was not really helpful to us.So we did recording  with URL mode and to our surprise ,we had all the backchannel coming in the clear separate requests.However drawback of this request was that there were lot of duplicate requests which came up in the script and we did spend considerable time to identify and remove those duplicate requests.Remedy is highly sensitive application and it just locks the field if it finds that same request is send twice.There are lot many fields which comes as qualification fields and its real hard job to identify which field is constant and which one is changing.So sometimes having developer sitting nearby really helps.Correlating all the values which can come in hundreds or building the entire web custom request was also an option but since they consume considerable effort we did not choose to follow that path.

I also suggest people to record with headers and not to comment out the cookies.Cookies contain the timestamp and these timestamps are later as a part of backchannel requests.Almost all SetEntry calls were containing the timestamp requests.These timestamp requests were in the form of 13 digits unix format.

Also one needs to keep in mind that web custom request which get recorded will be URL encoded one and will be hard to read.So one has to have some functional understanding of the application and what happens when we click the some button or pull a record from drop down menu.

So the typical code will look something like below

web_save_timestamp_param( “tStamp2”,
        LAST );


        “EncType=text/plain; charset=UTF-8”,
        “Body=1867/SetEntry/1/020/arserver.indiatimes.local21/HPD:Help Desk Classic13/{tStamp11}36/1/31/{WCSParam_Text8_97}10/{tStamp1}/60/9/3012910007/30009007/17142009/3015206009/3017885009/3021996007/17146009/3012907009/30182570010/10000036859/30161010010/100000005810/10000000777/10014009/3017841007/17191007/17147009/30376000010/100000039710/10000003989/3016089009/3030218007/17198009/30302170010/10000007369/30390340010/100000073510/100000073410/100000073310/100000073210/100000072410/100000068710/10000006889/3030703007/10015009/30390350010/10000027009/3039036007/17175009/30302190010/100000113510/100000122110/100000512410/10000051257/30034009/2700020207/17148007/10000317/17152007/17153007/17154007/100001310/10000009759/7500003029/7500003049/3013986009/3013987009/3013989009/30139900010/1000000719867/60/29/AST:CMDBAssoc CI UA CMDBAssoc3/INC9/BMC.ASSET9/BMC.ASSET17/SLM:EventSchedule1/29/BMC.ASSET25/AST:AssetPeople_AssetBase4/DONE3/1=115/SLM:Measurement14/{p_UserID}1/019/400 Internet E-mail168/( ‘Person ID’ = $Person ID$)”
        ” AND ( ‘Status’ >= $z1D Status Integer Parm01$) AND ( ‘Status’ <= $z1D Status Integer Parm02$) AND ( ‘Incident Number’!= $Incident Number$)19/400 Internet E-mail17/BMC.ASSET.SANDBOX11/Indiatimes,INC.1/01/310/1 Assigned8/Assigned6/200 No8/Critical1/017/invalid@indiatimes.com1/011/TesterL1AV215/{WCSParam_Text8_257}1/01/05/180005/180004/60137/200 LFM3/###11/LR_indiatimes0996/Arvada2/en24/User Service Restoration30/ID{c_GUID}15/SGP0000000000535/180005/180009/BMC.ASSET11/keyIncident5/20 No11/0 No Action5/0 Yes5/0 Yes5/0 Yes4/1 No10/1 Assigned5/0 Yes10/0 Internal24/8000 General Information13/LoveYou34/1 No10/0 Internal10/{tStamp2}/60/1/41/41/41/41/41/21/41/41/41/41/41/41/21/61/41/61/41/41/21/21/61/41/61/41/21/41/21/41/41/21/21/71/71/21/61/41/41/41/41/41/41/41/71/71/41/41/61/61/61/61/61/61/61/61/61/61/41/61/61/71/12/0/”,

There are lot of values which one needs to correlate, some of values which we did,

1. Entry Id: I believe this values comes as a part of the Backchannel request for every setentry api call.For every incident you create or modify, you will have corresponding entry ld mapped in the DB.

2.Some timestamps values needs to be correlated or replaced using web save param timestamp function.

3. If you look closely at the above backchannel requests, you will see that it has got query in it,so you need to keep an eye that whenever you get the response , your value for n should be greater than 0.If you have a response like n=0, then you need to see and compare as what was the value while recording, if you have n=18 while recording and n=0 while replay, then your api call has failed.LoadRunner will not catch this for you.Testing remedy ARS is more like api testing.You have response for backchannel servlets in JSON format.So you need to know to read and interpret the response in the meaning full way.

4.Since the response comes in the json format, all required data will be in double quotes,one can easily pull whatever information one requires by placing web reg save function with left and right boundaries in double quotes and using ORD= ALL.This will give you all the values of JSON response  and it really helps to speed up the correlation process quite fast.However you still need to know where to place this.If you do not know where your values lies, then I suggest place it before every backchannel request with different variable name and then turn on parameter substitution in extended logs.If you are getting right response, your web reg save param will pass else you have some issue to deal with in your request.

5.I also recommend giving continue on error option in Remedy ARS, part of the reason for doing this is that , once the user login,he holds some session in portal/DB/ARS Server,so until and unless he logs out,the user will not be able to continue further iteration.Remedy will throw an error saying that” User is already connected to the application “.Again this depends on data available during the testing phase.But my understanding is that Users and their roles are closely tied with the license they are using.

I think I need to have one more post as what issues we encountered during our scripting phase and my thoughts on those issues.


10 Responses to “Little Fun playing Remedy ARS 7.x version with LoadRunner 9.x–Part 1”

  1. Adoor October 15, 2012 at 12:44 pm #

    Am not able to create an incident ticket,Could you please tell me what are things to see? What is ARROOT1234455667 some random value in that ? am not able to create incident ticket in today’s date?

    • kiranbadi1991 October 16, 2012 at 12:21 am #

      If you are not able create incident ticket, then probably you have missing correlation somewhere.Creating tickets is not that hard in Remedy.Do recording twice with same data set and see what is the difference and correlate that difference.Keep in mind you need to have same dataset in both recordings.

      • sunil June 27, 2013 at 5:22 am #

        Could you please tell me which protocol I need to use for recording.

        I Appreciate your Help

      • kiranbadi1991 July 21, 2013 at 3:46 am #

        You can use the HTTP protocol if you are on LR.

  2. Alagiri February 20, 2014 at 10:55 pm #

    can you please upload some sample script for bmc remedy load runner script or send me an email

    • Alagiri February 20, 2014 at 11:00 pm #

      pls cosider as high

      • kiranbadi1991 February 21, 2014 at 12:37 am #

        I dont have any sample script for Remedy Alagiri. Do you have any specific issue which you want to discuss with me. Please ask.

  3. Alagiri February 21, 2014 at 9:59 am #

    What are all default correlation required for service request BMC Script. I have recorded with URL mode…

    • Alagiri February 21, 2014 at 10:01 am #

      Can i have your mobile number pls

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: