在進行 UI 測試時,一般來說我們都是編寫固定的流程腳本,其中各種資料基本上都預先設定好,或者使用資料驅動的方式列出一部分資料。
這種方式固然有其好處,但是畢竟失掉了一些覆寫度,造成資料選項覆寫不全面。
可以在自動化測試過程中,引入一定的随機測試内容來實作一部分對流程影響不大的内容的随機性測試。可以增加同樣代碼情況下流程的覆寫。
這裡面會用到 Python 中的 random(随機函數庫)。
下面以一個系統的注冊為例:
在選擇使用者所在地區時,通過連接配接點選選擇省市:

通過網頁結構分析,這些元素都是一個無序清單 ul 中的 a 元素:
可以借助随機庫中的 random.choice() 函數,随機選擇省市:
# 随機選擇省
random.choice(driver.find_elements_by_css_selector('#list_1 a')).click()
# 随機選擇市
random.choice(driver.find_elements_by_css_selector('#list_2 a')).click()
另外,諸如姓名、年齡、郵箱、手機号等都可以随機生成。
一些業務上也可以進行随機,比如随機選擇某一類型的産品進行購買等。
但是随機測試一定要注意,随機不代表不需要斷言,比如随機選擇一個商品購買,那麼當你在随機到某個商品的時候,必須要能提取一些關鍵資訊出來。
比如下面的商品,如果你想随機選擇一個商品來進行下單流程,那麼商品的名稱、價格、促銷資訊、是否免郵等關鍵資訊需要擷取,才能在最終訂單的斷言中判斷流程的正确性。
而不是說,實作随機選擇就可以了,而是通過随機的方式來擷取更大的一個覆寫。但是随機測試終究是測試,測試就需要判斷預期和實際結果。