< 上一個課程 | 下一個課程 >

第 10 課:使用正規表示式

使用物件對映表時要做的最後一件事,就是將內容值轉換成正規表示式。在這個案例中,正規表示式可為物件識別提供更大的彈性。
我們剛才已看過 Script 如何在 ClassicsB 上完全通過測試。這正是我們的目標,因為 ClassicsB 中對應用程式所做的變更是正確的。因此 Script 目前正處於您要它進行的狀態。現在當您針對 ClassicsA 來播放 Script 時,它會因為之前所做的變更而失敗。您可能想要讓物件的多個變式通過測試。您可能擁有動態物件,或是擁有幾個版本的應用程式(內含具有些許差異的物件版本),而兩種情況都是正確的。您可以使用正規表示式來允許多個版本的內容值(例如文字),以容許這種情況。

開啟物件對映表,並統一物件

  1. 如果要針對 ClassicsA 來播放,請編輯 Script 頂端的 startApp 指令,並將 B 改成 A。
  2. 按一下「功能測試」工具列上的執行功能測試 Script 播放期間,Functional Tester 會在密碼勾選框物件上暫停一會,但最終仍會完成。Script 現在會提供警告。請注意日誌中有相同的物件:rememberPassword 測試物件。
  3. 關閉日誌,然後以您在第 8 課練習的方式,在「Script 瀏覽器」中按兩下 rememberPassword,從密碼勾選框物件開啟物件對映表。
  4. 在物件對映表中按一下應用程式 > 執行,來開啟應用程式。選取 ClassicsJavaA,然後按一下確定
  5. 挑選任一片 CD,然後按一下 ClassicsCD 中的 Place Order 以開啟 Member Logon 視窗。
  6. 按一下測試物件 > 插入物件,將新的物件加入對映表中。
  7. 使用「物件搜尋器」工具來選取應用程式中 Member Logon 視窗內的密碼勾選框。
  8. 下一步,然後按一下完成
  9. 在物件對映表的頂端窗格中,將舊勾選框物件拖曳到新勾選框物件中,以統一這些物件。
  10. 如有必要,請將「統一測試物件」精靈其中一邊往外拖曳使其變寬,以增加欄位長度。

    您將使用兩個不同的正規表示式:其中一個位於 name 內容上, 另一個則位於 text 內容上。

    統一的物件會顯示在統一測試物件內容方格(頂端窗格)中; name 內容的值為 checkRemember

將內容值轉換成正規表示式

  1. 在頂端窗格中,用滑鼠右鍵按一下 checkRemember 值,然後按一下將值轉換成正規表示式

    Functional Tester 會以值文字前面的 "xy" 圖示,將值指派為正規表示式。

  2. 再按兩下名稱值以編輯欄位。
  3. 刪除 check 這個字,然後將剩下的字編輯如下:[rR]emember
  4. 在資料格的外面按一下。

    這種以下會讓 "remember" 這個字不管是大寫的 "R" 或小寫的 "r" 都能通過驗證。這非常重要,因為比較是區分大小寫的,而且只有完全相符的項目才能通過驗證。text 內容的值是 "Remember Password"。

  5. 用滑鼠右鍵按一下 Remember Password 值,然後選取將值轉換成正規表示式加以轉換。
  6. 按兩下這個值,然後將它編輯如下:Remember.*Password。您將移除空格並加入句點 (.) 和星號 (*) 字元。
  7. 按一下另一個資料格。

    "." 允許任何字元出現在該位置。在應用程式的其中一個版本中,這個內容中的兩個單字之間有一個空格,而另外一個版本則沒有空格。這種型樣可同時涵蓋這兩種情況。

  8. 下一步,然後按一下完成
  9. 在物件對映表中按一下檔案 > 儲存來儲存變更,然後關閉物件對映表。
  10. 關閉 ClassicsCD。
  11. 再次於 ClassicsA 上播放 Script。圖片驗證點和內容驗證點失敗。 由於 javax.swing.JLabel 物件的高度和加權不同, 使得圖片驗證點失敗。驗證點預期會失敗,因為文字 Orders for Trent Culpito 從未變更為正規表示式。日誌中不再顯示有關 ClassicsA 的物件識別警告。
  12. 關閉日誌。
  13. 將 startApp 指令改成播放 ClassicsB,然後執行 Script。

    物件識別也會通過 ClassicsB!如果某個物件在不同的應用程式版本中擁有不同的內容,而且系統會在播放期間識別這兩者,正規表示式便可為其提供彈性較大的識別功能。如果需要有關正規表示式的詳細資訊,請參閱 Functional Tester 說明。

< 上一個課程 | 下一個課程 >

意見