Discussion Forum

Welcome to the Discussion Forum, we encourage you to REGISTER on our forum and participate in the debate.For more details Click here

Online Advertising

Viewers now you can promote Your Websites/Blogs/Products by using our online advertising program.Using this feature you can place your Ads in my blog and can attract the people logging over here.To place your ads, just sign in my Guest Book and leave your details over there.

Monday, December 7, 2009

How to capture the ID in URL and correlate using OpenSTA


In webapplications, session id or some user id will be encoded in urls like, http://localhost/login.jsp;jsessionid=25698FG34. In this example 25698FG34 is the session identifier.Mainly these sessionids can be found in two ways,they are as follows
1.Cookie
2.HTML body
Inorder to retrieve the sessionid from cookie use the following code,
Load Response_Info Header on 4 Into VAR_UID ,WITH "Set-Cookie,UID"
Inorder to retrieve the sessionid from html body use the following code,
LOAD RESPONSE_INFO BODY ON 5 INTO VAR_SID ,WITH  "HTML(0)/BODY(1)/FORM(2)/TABLE(4)/TBODY(0)/TR(0)/TD(0)/A(0):ATTRIBUTE:onclick(0)"
 SET VAR_STRLEN = ~LENGTH(VAR_SID)
 SET VAR_STRLEN = VAR_STRLEN - 2
 SET VAR_SID = ~LEFTSTR(VAR_STRLEN, VAR_SID)
 SET VAR_SEPPOS = ~LOCATE("','", VAR_SID)
 SET VAR_SEPPOS = VAR_SEPPOS + 3
 SET VAR_STRLEN = ~LENGTH(VAR_SID)
 SET VAR_STRLEN = VAR_STRLEN - VAR_SEPPOS
 SET VAR_SID = ~RIGHTSTR(VAR_STRLEN, VAR_SID)

Once the desired ID has been obtained, it can be concatenated into applicable URLs as shown below:
 


Tuesday, November 3, 2009

Distributed Testing in OpenSTA

Distributed testing is nothing but playing back of scripts with more than one machine.
To setup for the method of distributed testing do the following:
1. Select 1 machine that will be the master on which you will develop the tests and Run: this will be your RepositoryHost and the other machines will be the slave load generating machines.
2. On EACH of your slave machines, configure the OpenSTA Name Server by right clicking on the name server icon in the task bar and selecting Configure. Set the 'Repository Host' to the IP/Name of your master(RepositoryHost).
3. On the master(RepositoryHost) machine, create a test. Add your script to the Task group. Set the 'Host' to the IP of one of your slave machines. Set the VU to the load you want that slave to generate. Set the 'Start' to a scheduled time.
4. Now right-click on the task you've added and select 'Duplicate Task Group'. Set the 'Host in the duplicated task to another slave's IP. Optionally, you can modify the load.
5. Repeat Step 4 for all the slaves.

Monday, October 5, 2009

STOP - SEE - SUGGEST

Hello visitors,its time to get a feedback for my work,post your valuable susggestions for improving my blog

Sunday, September 6, 2009

Calling a web service to read a csv file in OpenSTA

Here is an example of calling a web service to read a comma separated file into an array for later use. This technique can be used to call user defined functions coded in languages other than SCL. The web service should be running on the machine hosting opensta to minimize overhead.
 

The file can be downloaded from here

Unzip the contents into a directory and launch file_reader_service (and leave it running).

Load script filereader.htp into your repository scripts directory, create a 10 VU test executing a single iteration and run it.

I thank Cory Golberg for providing this feature to OpenSTA.

Monday, August 3, 2009

Script Modelling and capturing the ViewState

After a script is recorded, it must be edited to capture the ViewState value dynamically. The ViewState value may be found in many pages but should only be captured just before a request that needs to use it. This is performed by simply “Addressing a DOM element” which is explained in detail by the Modeller help. How that process relates to ViewState is described here, in summary only.

After recording the script, no changes should be made to the URLs. The Yellow colored arrow icon in the tool-bar of the Script Modeller will populate the Query Pane with content of the server’s response for the selected URL. The “HTML Tree” tab in the query pane displays a tree representation of the Document Object Model (DOM).
Right click on the HTML Node and choose “Search”. In the textbox that appears, enter “VIEWSTATE” (without the quotes) and hit [Return]. Then right click on the VIEWSTATE value:

From the shortcut menu that appears, select “Address” and assign a variable name, for example “TEMP_VS”.

This will automatically insert the necessary code into the script:
LOAD RESPONSE_INFO BODY ON 1 &
INTO TEMP_VS &
,WITH "HTML(0)/BODY(1)/DIV(0)/FORM(0)/INPUT(0):ATTRIBUTE:value(2);

Unfortunately, after capturing the ViewState, simply substituting the string with the new variable in the next request will result in an HTTP 500 error when played back. There is a little more to using the captured ViewState than this, hence the “TEMP” in the chosen variable-name, “TEMP_VS”.

Using the Viewstate
The format of the ViewState is issued to the browser in literal characters. There are numerous encoded values in the ViewState, each delimited by “+”. The server, however, expects to receive the ViewState back with special characters replaced with their ASCII equivalent. The only special character that is observed to be dynamic in the ViewState string is the delimiter “+”, represented in a post body or URL query string as “%2B”.

Thus, before the captured ViewState can be successfully used, each of these “+” symbols that are interspersed in the string must be substituted with “%2B”. This can be reformatted by passing the value obtained by the “LOAD RESPONSE_INFO” command to a subroutine held in an “Include” file.

This subroutine must use the SCL commands “~LOCATE” to find the position of the next “+”:

SET Len = ~LOCATE("+", TEMP_VS)

It is the text prior to that position that is of interest. Using “~EXTRACT”, that section of the ViewState can be copied to another variable, appending “%2B”:
SET VS = VS+~EXTRACT(0,Len,TEMP_VS)+"%2B"

That portion and the “+” is then removed from the temporary ViewState variable:
SET OFFSET = Len+1
SET TEMP_VS = ~EXTRACT(OFFSET,5120,TEMP_VS)

This must all be repeated until the temporary ViewState variable is empty. It is occasionally necessary to substitute trailing “=” symbols.
The VSTATE variable can then be used in the original script, instead of the ViewState string originally recorded:
,BODY"__VIEWSTATE="+VS+"%3D%3D&hdnIncomingURL=username

Tuesday, June 23, 2009

PDF File Verification in OpenSTA

To begin with, OpenSTA emulates browser traffic, it does not run a real browser. The only evidence you will have that the server has produced the PDF file is that a link to it, a url, will be returned as the result of a get or post. Next, when you click on that link, opensta records the browser fetching the file.

So, when playing back a script, you have to first be sure the file name of the pdf doesn't change... if it does, you need to correlate it. Next you find the GET statement that retrieves the PDF file. Consider either checking the status returned to be sure its 200 or perhaps loading the response (load response_info body on ) and verifying the first few bytes to see if it contains the right text (something like %PDF should appear in the text).

Thursday, June 11, 2009

Text Verification script in OpenSTA

Consider that we need to check whether the particular page gets loaded while executing the application under test by OpenSTA..
For the above scenario let us derive a script,
Place the following code below the url where we would like to verify the text,
SET VER_STRING = "Your Search Text goes here"
LOAD RESPONSE_INFO BODY ON 2 INTO VER_BODY
Log VER_BODY
!HTML response body content will be stored in the above variable.
SET VER_LOCATION = ~LOCATE (VER_STRING,VER_BODY), CASE_BLIND
!Location of the string you searched will be stored in the above variable.
SET L2 = ~EXTRACT(VER_LOCATION, 62, VER_BODY)
Log L2
!Text searched for verification will be stored in the above variable.
IF (VER_LOCATION >= 0) THEN
LOG "Verification SUCCES - Page contained the string '", VER_STRING , "'"
ELSE
LOG "Verification FAILED - Page did not contain the string '", VER_STRING , "'"
ENDIF

Note:
2 refers to Connection Id and
62 refers to the length of yor search string.
Free advertising


Lowes Coupon
How to Blog

Free Advertising