Tuesday, May 27, 2008

Winrunner Script Examples - Data Driven Test From the Data base

Winrunner Script Examples - Data Driven Test From the Data base Data Driven Test (Capturing Error windows and Reporting)
Test Conditon : Data Dreiven Test from the database
1. Automatically test-data taken from the data base table
2. If invalid order number entered then close error message window and close the Open Order window
3. generate report mesage valid and invalid inputs
[Pre Requesties : Open Flight Reservation Window,Learn all Objects, Database Table, ODBC Connetion Name ]
Steps :
1a. Record Fligh Reservation-->File-openOrder
1b. Select Order no and enter valid order no and press ok button.
1c. Below code will appear


win_activate ("Flight Reservation");
set_window ("Flight Reservation", 2);
menu_select_item ("File;Open Order...");
set_window ("Open Order", 1);
button_set ("Order No.", ON);
edit_set ("Edit", "5");
button_press ("OK");


1d. Go to Table menu --> Data Driver ( Data Dirver wizard window will appear) press Next Button

1e. Select the import data from the database. press nex button
1f. Select New Sql Query option press next button
1g. Connect ODBC link and write SQL Command in our case i take existing Orders Table so sql query is ( select order_number from orders)
1h.Select Appropriate Input Entry (Where you want to check multiple values), select new coloum change name of coloum (Which is appeared on the excel sheet) to "order number " and press next button

[ Above Step continue for as many as inputs you want to check , but in our case open Order want check.]
1i. Select Open Data Table and press Finish.
1j.1i. Back to win runner below code will generate
[ Data is automatically loaded in to excel sheet ]

table = "default.xls";
rc = ddt_open(table, DDT_MODE_READWRITE);
if (rc!= E_OK && rc != E_FILE_OPEN)
pause("Cannot open table.");
ddt_update_from_db(table, "msqr1.sql", out_rows_count);
ddt_save(table);
ddt_get_row_count(table,table_RowCount);
for(table_Row = 1; table_Row <= table_RowCount; table_Row ++)
{
ddt_set_row(table,table_Row);
# Flight Reservation
win_activate ("Flight Reservation");
set_window ("Flight Reservation", 9);
menu_select_item ("File;Open Order...");
# Open Order_1
set_window ("Open Order_1", 1);
button_set ("Order No.", ON);
edit_set ("Edit", ddt_val(table,"order_number"));
button_press ("OK");
}
ddt_close(table);


[Above code will work for valid order numbers]

2a. Open Flight Reservations error window by enter invalid value in to the order umber and press ok button of Openorder window.

2b.Record actions if FlightReservations(error window ) will appear,i.e press ok button of error window and cancel button of Openorder window.Below code will appear.

win_activate ("Flight Reservations");
set_window ("Flight Reservations", 1);
button_press ("OK");
# Open Order
set_window ("Open Order", 1);
button_press ("Cancel");


2c. Write down code in If conditon like if that error window appear then this action should happen.

if (win_exists("Flight Reservations")==E_OK)
{
# Flight Reservations
win_activate ("Flight Reservations");
set_window ("Flight Reservations", 1);
button_press ("OK");
# Open Order
set_window ("Open Order", 1);
button_press ("Cancel");
}

2d. Enter Report message function in the if and else portions
report_msg("In valid Entry "& ddt_val(table,"order_number"));
[ddt_val(table,"order_number")- this code part in the edit_set ( ) function in the above code]

Total code is

table = "default.xls";
rc = ddt_open(table, DDT_MODE_READWRITE);
if (rc!= E_OK && rc != E_FILE_OPEN)
pause("Cannot open table.");
ddt_update_from_db(table, "msqr1.sql", out_rows_count);
ddt_save(table);
ddt_get_row_count(table,table_RowCount);
for(table_Row = 1; table_Row <= table_RowCount; table_Row ++)
{
ddt_set_row(table,table_Row);
# Flight Reservation
win_activate ("Flight Reservation");
set_window ("Flight Reservation", 9);
menu_select_item ("File;Open Order...");
# Open Order_1
set_window ("Open Order_1", 1);
button_set ("Order No.", ON);
edit_set ("Edit", ddt_val(table,"order_number"));
button_press ("OK");
if (win_exists("Flight Reservations")==E_OK)
{
set_window ("Flight Reservations", 1);
button_press ("OK");
set_window ("Open Order_1", 1);
button_press ("Cancel");
report_msg("In valid Entry "& ddt_val(table,"order_number"));
}
else
{
report_msg(" valid Entry "& ddt_val(table,"order_number"));
} }
ddt_close(table);

[ Any quaries place the message in message forum ]

No comments: