|
Introduction
This page presents an eValid's regression
test/monitoring solution that runs on a complex
website implemented in the
Yahoo! User Interface (YUI).
This interface is important because it includes a wide variety of web ready widgets and supporting elements, and because YUI is used in a number of important commercial websites. By choosing a relatively difficult YUI-built site -- in this case the site for Southwest Airlines -- we can also demonstrate some of eValid's advanced features such as page-layout-independent operations.
Script Description
The demonstration script given below is organized into six steps,
described individually.
The overall goal of the test script is to identify the costs for
a flight between two USA airports and report the fare.
In addition, the script times each of the major steps with annotated ElapsedTime commands so that you can measure how long the target website required to complete each step. This is done to show how eValid would collect performance data if this script was put in use in "monitoring mode".
Here are the step-by-step descriptions of the script. Screen shots after each step are shown below.
Example Script
Here is the final working version of the eValid script.
# Recording by eValid # Copyright © 2012 by Software Research, Inc. ProjectID "Project" GroupID "Findex" TestID "yui01" LogID "AUTO" ScreenSize 1280 1024 FontSize 0 DeleteCache DeleteCookies # Go to the Yahoo's YUI developer network area... InitLink "http://developer.yahoo.com/yui/" Wait 4667 ResetTimer # ---------------------------------------------------------------------- # Step 1: Click on the Yahoo! UI Library link... #----------------------------------------------------------------------- FollowLink 0 394 "Powered by YUI" "http:" \ "//developer.yahoo.com/yui/poweredby/" "" Wait 5028 ElapsedTime "Step_1: Starting page is up..." # ---------------------------------------------------------------------- # Step 2: Find the SOUTHWEST.COM website, using index motion commands... # ---------------------------------------------------------------------- # FollowLink 0 84 "Southwest Airlines" "http://www.southwest.com/" "" # Recorded FollowLink replaced with IndexMotion equivalent... IndexFindElement 0 DOWN "id" "southwest" "" IndexFollowLink 0 "" Wait 2308 # We will assume that our testing/monitoring scenario is to email # the pricing of a round trip for a 14 day stay at the selected destination: # # Click on Book Travel tab and wait for reservation menu... FollowLink 0 38 "" "http://www.southwest.com/cgi-bin/buildItinerary2" \ "?ref=bktrvl_gn" "" # Wait 3510 # DOM Synchronization added here because above FollowLink + Wait # was found to be unreliable... SyncOnText 0 "Standard Reservation" "" ElapsedTime "Step_2: Reservation page available..." Wait 1566 # ---------------------------------------------------------------------- # Step 3: Choose a round trip from OAKLAND, CA to OKLAHOMA CITY, OK... # ---------------------------------------------------------------------- InputValue 0 213 "SELECT-ONE" "" "s0m3valu3" "Oakland, CA - OAK" "49" "" Wait 1211 InputValue 0 299 "SELECT-ONE" "" "out_arr_airport" "Oklahoma City, OK - " \ "OKC" "49" "" Wait 1904 InputValue 0 377 "SELECT-ONE" "" "return_arrive_airport" "Oakland, CA - " \ "OAK" "51" "" Wait 1436 # Choose departure one month in future... IndexSet 0 IndexFindElement 0 DOWN "name" "outbound_depart_month" "" IndexInputValue 0 "SELECT-ONE" "" "1" "" Wait 1857 # Original Input value replaced with today + 1... # InputValue 0 477 "SELECT-ONE" "" "outbound_depart_month" "August" "1" "" # Input departure day for the 1st of the selected month at any time... InputValue 0 485 "SELECT-ONE" "" "outbound_depart_day" "1" "0" "" Wait 1856 InputValue 0 528 "RADIO" "" "outbound_depart_time" "4" "TRUE" "" Wait 1630 # Choose to return one month in the future... IndexSet 0 IndexFindElement 0 DOWN "name" "return_depart_month" "" IndexInputValue 0 "SELECT-ONE" "" "1" "" # InputValue 0 477 "SELECT-ONE" "" "return_depart_month" "August" "1" "" Wait 1025 # Input return day for the 15th of the selected month... InputValue 0 544 "SELECT-ONE" "" "return_depart_day" "15" "14" "" Wait 1704 InputValue 0 587 "RADIO" "" "return_depart_time" "4" "TRUE" "" Wait 1539 ElapsedTime "Step_3: RT/Month/Day input..." # ---------------------------------------------------------------------- # Step 4: Submit, then sync/wait "WANNA GET AWAY" fares to appear... # ---------------------------------------------------------------------- SubmitClick 0 684 "" "C99" "Go To Next Step - Select Flight >>" "" # Wait 2501 # SyncOnText added to assure playback synchronization on this AJAX page... SyncOnText 0 "Wanna\r\nGet Away\r\n" "" SyncOnText 0 "Select Departing Flight" "" ElapsedTime "Step_4: Display fares..." # ---------------------------------------------------------------------- # Step 5: Use motion commands to put fare data in "fares.txt"... # ---------------------------------------------------------------------- IndexSet 0 IndexFindElement 0 DOWN "id" "fareHeaderDiscountFare" "" IndexSaveObjProperty 0 "innerText" "fares.txt" "" SaveRecord "fares.txt" "\n" APPEND Wait 1000 IndexMove +1 IndexFindElement 0 DOWN "id" "fareHeaderDiscountFare" "" IndexSaveObjProperty 0 "innerText" "fares.txt" "" APPEND Wait 1000 ElapsedTime "Step_5: Fares composed OK..." # ---------------------------------------------------------------------- # Step 6: EMAIL the saved file (requires email SETTINGS values)... # ---------------------------------------------------------------------- # # NOTE TO USER: Please edit in your own valid email address! Email "address@domain.com" "Discount Fares for OAK - OHK" "Website " \ "Reservations" "fares.txt" ElapsedTime "Step_6: Fares data result emailed out..." # End of script.
Screen Shots
When the script is played back you will see a series of actions
that reflect all of the steps.
Here are some selected screen shots that show the progress of playback.