當前正在學習如何使用geb編寫自動化測試的過程,因此這可能是一個noob觀察和問題。它只是我還是一個接一個地運行多個測試似乎可以加速測試的執行?例如,當寫一個新的測試時,我會註釋掉其他測試,只是運行一個或兩個方法來確保其正常工作。一切都會運行良好,並通過。然後,當我取消所有運行完整測試的註釋時,測試似乎運行得非常快,並且到了我自動化的Web應用程序無法跟上的地步,並且會導致我的測試由於未加載元素而失敗。即使使用waitFor{}
塊。我發現在某些地方使用sleep(1000)
已經有所幫助,但我覺得好像有更好的方法來解決這個問題。我正在使用的Web應用程序似乎每當用戶對字段進行任何操作時都會刷新頁面,這可能是我無法控制的問題的一部分。在我測試的一部分中,我需要填寫一個表單,但是在填寫輸入後刷新頁面,所以我編寫了下面的代碼,但是由於所有的睡眠語句,看起來有些差別。在geb自動測試中使用waitFor {}和sleep()的最佳做法是什麼?
void populateRequiredFields(){
def fName = "Test"
def lName = "User"
def email = "[email protected]"
def question = "Do you even test bro?"
clear.click()
//sleep() to slow down test in order to get correct elements due to page refreshing
sleep(3000)
firstName << fName
sleep(1000)
lastName << lName
sleep(1000)
emailAddress << email
sleep(1000)
veryifyEmail << email
sleep(1000)
questionField << question
sleep(1000)
}
因此經常使用waitFor {firstName.displayed}然後用firstName << fName填充字段? – WontonJon