UI 自動化測試使用 Sikuli 操作介紹 Part 2 – 流程控制與基本操作

繼續 UI 自動化測試使用 Sikuli 操作介紹 Part 1 的介紹,上一篇的教學已經初步的了解 Sikuli 開發工具的操作,也做了一個簡單的練習,如何透過 Sikuli 這套開發環境來撰寫的腳本開啓瀏覽器,然後自動輸入網址,最後檢驗前往的網址是否正確的練習。

本篇教學主要著重在腳本的流程控制,那什麼是流程控制?

如果你的操作必須某條件成立後才執行,或是會重複的進行某個動作的執行等這些動作,我們就需要有流程控制來控制腳本執行的流程。

首先先從條件判斷流程控制開始講起,如果要執行的動作是要某個條件成立才執行,當判斷的條件成立,程式就會執行:後的動作,否則就不會執行,程式語法如下所示:


if [條件] : [動作]

另外為一種流程控制為迴圈控制,讓某個動作可以重複的執行,會有以下兩種語法語法如下所示:

第一種為 while 迴圈直到某個條件不成立才結束,當條件成立時,程式就會執行:後的動作,直到條件不成立,程式語法如下所示:


while [條件]:[動作]

第二種為 for 迴圈先確定需要重複操作的某一個集合,然後再進行重複操作,程式語法如下所示:


for [項目] in [集合] : [動作] 

我們就做一個簡單的範例來說明以上三種流程控制的使用,例如我們要寫一個自動到購物網站訂購要購買的產品,購物網站如下圖所示:

mk2

執行的程式碼如下所示:

mk1

一開始我們透過 App.open() 函式來開啓 Safari 瀏覽器,接著透過 wait() 等待網址列出現,用來等候確定 Safari 瀏覽器已被開啓。

第 3 個註解下,使用了條件判斷 if 語法,裡面的條件為檢查網址列存在,如果存在我們就在網址列上輸入購物網站的網址,接著按下鍵盤 Enter 按鍵前往購物網站。

第 6 個註解下,使用了 while 迴圈,裡面的條件為放入購物車按鈕不存在時,會按下鍵盤 Down 按鍵,接著使用 wait(1) 來等候一秒鐘(wait 函式傳入的時間單位為秒),接著再繼續檢查 while 迴圈的判斷是否成立,來決定是否要在執行 while 迴圈裡的執行動作。這個執行的目的是因為如果螢幕尺寸比較小,開啓的網站可能不會顯示購物車按鈕,所以我們就需要按下鍵盤 Down 讓網頁捲動到可以看到購物車按鈕為止。

第 9 個註解下,我們取得增加購買數量的按鈕,也就是 + 的符號,一開始先讓程式找尋購買數量的位置,然後 right() 用來表示搜尋的方向,向右搜尋 + 按鈕,找到按鈕後把這個按鈕元件指定給變數 addButton。

第 10 個註解下,我們使用 for 迴圈來點擊增加數量按鈕,其中 range 函式用來產生數列的函數,如呼叫 range(2) 則產生 0 ~ 1 的數列,接著程式就會點擊 addButton 兩次,增加購買數量。最後按下放入購物車按鈕即可完成。

參考文章:

[1] Sikuli的入門使用

2 thoughts on “UI 自動化測試使用 Sikuli 操作介紹 Part 2 – 流程控制與基本操作

發表留言