Tuesday, September 11, 2007

WinRunner An Introduction

WinRunner, Mercury Interactive enterprise functional testing tool. It is used to quickly create and run sophisticated automated tests on your application. Winrunner helps you automate the testing process, from test development to execution. You create adaptable and reusable test scripts that challenge the functionality of your application. Prior to a software release, you can run these tests in a single overnight run- enabling you to detect and ensure superior software quality.

NAVIGATIONAL STEPS FOR WINRUNNER LAB-EXERCISES

Using Rapid Test Script wizard

Start->Program Files->Winrunner->winruner
Select the Rapid Test Script Wizard (or) create->Rapid Test Script wizard
Click Next button of welcome to script wizard
Select hand icon and click on Application window and Click Next button
Select the tests and click Next button
Select Navigation controls and Click Next button
Set the Learning Flow(Express or Comprehensive) and click Learn button
Select start application YES or NO, then click Next button
Save the Startup script and GUI map files, click Next button
Save the selected tests, click Next button
Click Ok button
Script will be generated. Then run the scripts. Run->Run from top
Find results of each script and select tools->text report in Winrunner test results.

Using GUI-Map Configuration Tool:

Open an application.
Select Tools-GUI Map Configuration; Windows pops-up.
Click ADD button; Click on hand icon.
Click on the object, which is to be configured. A user-defined class for that object is added to list.
Select User-defined class you added and press ‘Configure’ button.
Mapped to Class ;( Select a corresponding standard class from the combo box).
You can move the properties from available properties to Learned Properties. By selecting Insert button
Select the Selector and recording methods.
Click Ok button
Now, you will observe Winrunner identifying the configured objects.

Using Record-Context Sensitive mode:

Create->Record context Sensitive
Select start->program files->Accessories->Calculator
Do some action on the application.
Stop recording
Run from Top; Press ‘OK’.

Using Record-Analog Mode:

Create->Insert Function->from function generator
Function name:(select ‘invoke application’ from combo box).
Click Args button; File: mspaint.
Click on ‘paste’ button; Click on ‘Execute’ button to open the application; Finally click on ‘Close’.
Create->Record-Analog.
Draw some picture in the paintbrush file.
Stop Recording
Run->Run from Top; Press ‘OK’.

GUI CHECK POINTS-Single Property Check:

Create->Insert function->Function Generator-> (Function name:Invoke_application; File :Flight 1a)
Click on’ paste’ and click on’ execute’ & close the window.
Create->Record Context sensitive.
Do some operations & stop recording.
Create->GUI Check Point->For single Property.
Click on some button whose property to be checked.
Click on paste.
Now close the Flight1a application; Run->Run from top.
Press ‘OK’ it displays results window.
Double click on the result statement. It shows the expected value & actual value window.

GUI CHECK POINTS-For Object/Window Property:

Create->Insert function->Function Generator-> (Function name:Invoke_application; File :Flight 1a)
Click on’ paste’ and click on’ execute’ & close the window.
Create->Record Context sensitive.
Do some operations & stop recording.
Create->GUI Check Point->Object/Window Property.
Click on some button whose property to be checked.
Click on paste.
40Now close the Flight 1a application; Run->Run from top.
Press ‘OK’ it displays results window.
Double click on the result statement. It shows the expected value & actual value window.

GUI CHECK POINTS-For Object/Window Property:

Create->Insert function->Function Generator-> (Function name:Invoke_application; File :Flight 1a)
Click on’ paste’ and click on’ execute’ & close the window.
Create->Record Context sensitive.
Do some operations & stop recording.
Create->GUI Check Point->For Multiple Object.
Click on some button whose property to be checked.
Click on Add button.
Click on few objects & Right click to quit.
Select each object & select corresponding properties to be checked for that object: click ‘OK’.
Run->Run from Top. It displays the results.

BITMAP CHECK POINT:

For object/window.

Create->Insert function->Function Generator-> (Function name:Invoke_application; File :Flight 1a)
Click on’ paste’ and click on’ execute’ & close the window.
Create->Record Context sensitive.
Enter the Username, Password & click ‘OK’ button
Open the Order in Flight Reservation Application
Select File->Fax Order& enter Fax Number, Signature
Press ‘Cancel’ button.
Create->Stop Recording.
Then open Fax Order in Flight Reservation Application
Create->Bitmap Check->For obj.window;
Run->run from top.
The test fails and you can see the difference.

For Screen Area:

Open new Paint Brush file;
Create->Bitmap check point->from screen area.
Paint file pops up; select an image with cross hair pointer.
Do slight modification in the paint file(you can also run on the same paint file);
Run->Run from Top.
The test fails and you can see the difference of images.

DATABASE CHECK POINTS

Using Default check (for MS-Access only)

Create->Database Check Point->Default check
Select the Specify SQL Statement check box
Click Next button
Click Create button
Type New DSN name and Click New button
Then select a driver for which you want to set up a database & double click that driver
Then select Browse button and retype same DSN name and Click save button.
Click Next button & click Finish button
Select database button & set path of the your database name
Click ‘OK’ button & then Click the your DSN window ‘OK’ button
Type the SQL query in SQL box
Then click Finish button Note : same process will be Custom Check Point

Runtime Record Check Point.

Repeat above 10 steps.
Type query of two related tables in SQL box Ex: select Orders.Order_Number, Flights.Flight_Number from Orders, Flights where Flight.Flight_Number=Orders.Flight_Number.
Select Finish Button
Select hand Icon button& select Order No in your Application
Click Next button.
Select hand Icon button& select Flight No in your Application
Click Next button
Select any one of the following check box 1. One match record 2. One or more match records. 3. No match record
select Finish button the script will be generated.

Synchronization Point

For Obj/Win Properties:

Open start->Programs->Win Runner->Sample applications->Flight1A.
Open winrunner window
Create->Record Context Sensitive
Insert information for new Order &click on "insert Order" button
After inserting click on "delete" button
Stop recording& save the file.
Run->Run from top: Gives your results.

Without Synchronization:

settings->General Options->Click on "Run" tab. "Timeout for checkpoints& Cs statements’ value:10000 follow 1 to 7->the test display on "Error Message" that "delete" button is disabled.

With Synchronization:.

Keep Timeout value:1000 only
Go to the Test Script file, insert pointed after "Insert Order" button, press statement.
Create->Synchronization->For Obj/Window Property
Click on” Delete Order" button & select enable property; click on "paste".
It inserts the Synch statement.

For Obj/Win Bitmap:

Create-> Record Context Sensitive.
Insert information for new order & click on "Insert order" button
Stop recording & save the file.
Go to the TSL Script, just before inserting of data into "date of flight" insert pointer.
Create->Synchronization->For Obj/Win Bitmap is selected.
(Make sure flight reservation is empty) click on "data of flight" text box
Run->Run from Top; results are displayed. Note:(Keep "Timeout value" :1000)

Get Text: From Screen Area:

(Note: Checking whether Order no is increasing when ever Order is created)
Open Flight1A; Analysis->graphs(Keep it open)
Create->get text->from screen area
Capture the No of tickets sold; right click &close the graph
Now , insert new order, open the graph(Analysis->graphs)
Go to Winrunner window, create->get text->from screen area
Capture the No of tickets sold and right click; close the graph
Save the script file
Add the following script; If(text2==text1) tl_step("text comparision",0,"updateed"); else tl_step("text comparision",1,"update property");
Run->Run from top to see the results.

Get Text: For Object/Window:

Open a "Calc" application in two windows (Assuming two are two versions)
Create->get text->for Obj/Window
Click on some button in one window
Stop recording
Repeat 1 to 4 for Capture the text of same object from another "Calc" application.
Add the following TSL(Note: Change "text" to text1 & text2 for each statement) if(text1==text2) report_msg("correct" text1); Else report_msg("incorrect" text2);
Run & see the results

Using GUI-Spy:

Using the GUI Spy, you can view and verify the properties of any GUI object on selected application

Tools->Gui Spy…
Select Spy On ( select Object or Window)
Select Hand icon Button
Point the Object or window & Press Ctrl_L + F3.
You can view and verify the properties.

Using Virtual Object Wizard:

Using the Virtual Object wizard, you can assign a bitmap to a standard object class, define the coordinates of that object, and assign it a logical name

tools->Virtual Object Wizard.
Click Next Button
Select standard class object for the virtual object Ex: class: Push_button
Click Next button
Click Mark Object button
Drag the cursor to mark the area of the virtual object.
Click Next button
Assign the Logical Name, This name will appear in the test script when you record object.
Select Yes or No check box
Click Finish button
Go to winrunner window & Create->Start Recording.
Do some operations
Stop Recording

Using Gui Map Editor:

Using the GUI Map Editor, you can view and modify the properties of any GUI object on selected application. To modify an object’s logical name in a GUI map file
Tools->GUI Map Editor
Select Learn button
Select the Application A winrunner message box informs “do you want to learn all objects within the window” & select ‘yes’’ button.
Select particular object and select Modify Button
Change the Logical Name& click ‘OK’ Button
Save the File

To find an object in a GUI map file:

Choose Tools > GUI Map Editor.
Choose View > GUI Files.
Choose File > Open to load the GUI map file.
Click Find. The mouse pointer turns into a pointing hand.
Click the object in the application being tested. The object is highlighted in the GUI map file.

To highlight an object in a Application:.

Choose Tools > GUI Map Editor.
Choose View > GUI Files.
Choose File > Open to load the GUI map file.
Select the object in the GUI map file
Click Show. The object is highlighted in the Application.

Data Driver Wizard

Start->Programs->Wirunner->Sample applications->Flight 1A
Open Flight Reservation Application
Go to Winrunner window
Create->Start recording
Select file->new order, insert the fields; Click the Insert Order
Tools->Data Table; Enter different Customer names in one row and Tickets in another row.
Default that two column names are Noname1 and Noname2.
Tools->Data Driver Wizard
Click Next button &select the data table
Select Parameterize the test; select Line by Line check box
Click Next Button
Parameterize each specific values with column names of tables; Repeat for all
Finally Click finish button.
Run->Run from top;
View the results.

Merge the GUI Files:

Manual Merge

Tools->Merge GUI Map Files A WinRunner message box informs you that all open GUI maps will be closed and all unsaved changes will be discarded & click ‘OK’ button.
Select the Manual Merge. Manual Merge enables you to manually add GUI objects from the source to target files.
To specify the Target GUI map file click the browse button& select GUI map file
To specify the Source GUI map file. Click the add button& select source GUI map file.
Click ‘OK’ button
GUI Map File Manual Merge Tool Opens Select Objects and move Source File to Target File
Close the GUI Map File Manual Merge Tool

Auto Merge

Tools->Merge GUI Map Files A WinRunner message box informs you that all open GUI maps will be closed and all unsaved changes will be discarded & click ‘OK’ button.
Select the Auto Merge in Merge Type. If you chose Auto Merge and the source GUI map files are merged successfully without conflicts,
To specify the Target GUI map file click the browse button& select GUI map file
To specify the Source GUI map file.
Click the add button& select source GUI map file. Click ‘OK’ button A message confirms the merge.

Manually Retrieve the Records form Database

db_connect(query1,DSN=Flight32);
db_execute_query(query1,select * from Orders, rec);
db_get_field_value(query1,#0,#0);
db_get_headers(query1, field_num,headers);
db_get_row(query1,5,row_con);
db_write_records(query1,,c:\\str.txt,TRUE,10);

TSL SCRIPTS FOR WEB TESTING

1. web_browser_invoke ( browser, site );// invokes the browser and opens a specified site. Browser The name of browser (IE or NETSCAPE). site The address of the site.

2. web_cursor_to_image ( image, x, y ); // moves the cursor to an image on a page. image The logical name of the image. x,y The x- and y-coordinates of the mouse pointer when moved to an image

3. web_cursor_to_label (label, x, y); // moves the cursor to a label on a page. Label the name of the label. x,y The x- and y-coordinates of the mouse pointer when moved to a label.

4.web_cursor_to_link ( link, x, y ); // moves the cursor to a link on a page. link The name of the link. x,y The x- and y-coordinates of the mouse pointer when moved to a link.

5.web_cursor_to_obj ( object, x, y );// moves the cursor to an object on a page. object The name of the object. x,y The x- and y-coordinates of the mouse pointer when moved to an object.

6.web_event ( object, event_name [, x , y ] );// uns an event on a specified object. object The logical name of the recorded object. event_name The name of an event handler. x,y The x- and y-coordinates of the mouse pointer when moved to an object

7.web_file_browse ( object ); // clicks a browse button. object A file-type object.

8.web_file_set ( object, value );// sets the text value in a file-type object. object A file-type object. Value A text string.

9. web_find_text ( frame, text_to_find, result_array [, text_before, text_after, index, show ] ); // returns the location of text within a frame.

10. web_frame_get_text ( frame, out_text [, text_before, text_after, index ] );// retrieves the text content of a frame.

11. web_frame_get_text_count ( frame, regex_text_to_find , count );// returns the number of occurrences of a regular expression in a frame.

12. web_frame_text_exists ( frame, text_to_find [, text_before, text_after ] );// returns a text value if it is found in a frame.

13.web_get_run_event_mode ( out_mode ); // returns the current run mode out_mode The run mode in use. If the mode is FALSE, the default parameter, the test runs by mouse operations. If TRUE, is specified, the test runs by events.

14. web_get_timeout ( out_timeout );// returns the maximum time that WinRunner waits for response from the web. out_timeout The maximum interval in seconds

15.web_image_click ( image, x, y ); // clicks a hypergraphic link or an image. image The logical name of the image. x,y The x- and y-coordinates of the mouse pointer when clicked on a hyper graphic link or an image.

16. web_label_click ( label );// clicks the specified label. Label the name of the label.

17. web_link_click ( link ); // clicks a hypertext link. Link the name of link.

18. web_link_valid ( name, valid );// checks whether a URL name of a link is valid (not broken). name The logical name of a link. valid The status of the link may be valid (TRUE) or invalid (FALSE)

19. web_obj_click ( object, x, y );object The logical name of an object. x,y The x- and y-coordinates of the mouse pointer when clicked on an object.

20. web_obj_get_child_item ( object, table_row, table_column, object_type, index, out_object ); // returns the description of the children in an object.

21. function returns the count of the children in an object. web_obj_get_child_item_count ( object, table_row, table_column, object_type, object_count );

22. returns the value of an object property.web_obj_get_info ( object, property_name, property_value );

23. returns a text string from an object.web_obj_get_text ( object, table_row, table_column, out_text [, text_before, text_after, index] );

24. returns the number of occurrences of a regular expression in an object.web_obj_get_text_count ( object, table_row, table_column, regex_text_to_find, count );

25. returns a text value if it is found in an object.web_obj_text_exists ( object, table_row, table_column, text_to_find [, text_before, text_after] );

26. web_restore_event_default ( ); //resets all events to their default settings.

27. web_set_event ( class, event_name, event_type, event_status ); // sets the event status.

28. web_set_run_event_mode ( mode ); //sets the event run mode.

29 web_set_timeout ( timeout );//.sets the maximum time WinRunner waits for a response from the web.

30. web_set_tooltip_color ( fg_color, bg_color );// sets the colors of the WebTest ToolTip.

31. web_sync ( timeout ); //waits for the navigation of a frame to be completed.

32. web_url_valid ( URL, valid );// checks whether a URL is valid.

2 comments:

Anonymous said...

Oi, achei seu blog pelo google está bem interessante gostei desse post. Gostaria de falar sobre o CresceNet. O CresceNet é um provedor de internet discada que remunera seus usuários pelo tempo conectado. Exatamente isso que você leu, estão pagando para você conectar. O provedor paga 20 centavos por hora de conexão discada com ligação local para mais de 2100 cidades do Brasil. O CresceNet tem um acelerador de conexão, que deixa sua conexão até 10 vezes mais rápida. Quem utiliza banda larga pode lucrar também, basta se cadastrar no CresceNet e quando for dormir conectar por discada, é possível pagar a ADSL só com o dinheiro da discada. Nos horários de minuto único o gasto com telefone é mínimo e a remuneração do CresceNet generosa. Se você quiser linkar o CresceNet(www.provedorcrescenet.com) no seu blog eu ficaria agradecido, até mais e sucesso. (If he will be possible add the CresceNet(www.provedorcrescenet.com) in your blogroll I thankful, bye friend).

Anonymous said...

Nice post and this enter helped me alot in my college assignement. Gratefulness you on your information.

Counts