當前位置:兩周學會自動化測試 >> 自動化測試場景異常處理

自動化測試場景異常處理

在這里我們提到的AR場景異常,應該理解為場景下不正常的輸入導致的報錯。比如在登錄頁面上,我們輸入了錯誤的用戶名或密碼,這個時候頁面通常會彈出一個錯誤提示框,把錯誤信息反饋給我們。

在自動化測試里面,我們需要對這些報錯,也是異常進行處理,一般的做法是把這個報錯信息記錄下來,之后處理下異常,然后繼續(xù)執(zhí)行后續(xù)的測試。

在這里我們以一個上海澤眾CRM客戶管理系統(tǒng)的登錄場景為例,來看一下場景的異常處理方法:

1.首先,我們來錄制一個登陸上海澤眾CRM客戶關(guān)系管理系統(tǒng)的腳本,我們在登陸界面輸入用戶名和密碼,點擊登陸,再點擊退出系統(tǒng),錄制的腳本信息如下所示:

ar.window("IEFrame_上海澤眾軟件科技有限公司客戶管理系統(tǒng) - Windows Internet Explorer").setValue("INPUT_text_username", "test"); //輸入用戶名

ar.window("IEFrame_上海澤眾軟件科技有限公司客戶管理系統(tǒng) - Windows Internet Explorer").setValue("INPUT_password_password", "test"); //輸入密碼

ar.window("IEFrame_上海澤眾軟件科技有限公司客戶管理系統(tǒng) - Windows Internet Explorer").clickControl("INPUT_submit_登 錄", 27, 6, "left"); //點擊登錄

ar.window("IEFrame_上海澤眾軟件科技有限公司客戶管理系統(tǒng) - Windows Internet Explorer").clickControl("A_退出系統(tǒng)", 23, 2, "left"); //點擊退出系統(tǒng)

2. 在這個登錄場景下,我們可以將用戶名和密碼進行參數(shù)化處理,具體操作如下:

在原腳本輸入用戶名和密碼的位置,將具體的用戶名和密碼改為:"+pd.getFrom(“username”)和"+pd.getFrom(“password”)

即:

ar.window("IEFrame_上海澤眾軟件科技有限公司客戶管理系統(tǒng) - Windows Internet Explorer").setValue("INPUT_text_username", ""+pd.getFrom(“username”)); //輸入用戶名

ar.window("IEFrame_上海澤眾軟件科技有限公司客戶管理系統(tǒng) - Windows Internet Explorer").setValue("INPUT_password_password",""+pd.getFrom(“password”)); //輸入密碼

ar.window("IEFrame_上海澤眾軟件科技有限公司客戶管理系統(tǒng) - Windows Internet Explorer").clickControl("INPUT_submit_登 錄", 27, 6, "left"); //點擊登錄

ar.window("IEFrame_上海澤眾軟件科技有限公司客戶管理系統(tǒng) - Windows Internet Explorer").clickControl("A_退出系統(tǒng)", 23, 2, "left"); //點擊退出系統(tǒng)

3.設置參數(shù)表:

在信息框下方的參數(shù)表欄目中,我們可以自己手動添加行和列。

參數(shù)表的第一列我們設置的是參數(shù)化字段的名稱,第一列第一行是用戶名:username;第一列第二行是密碼:password。這里的設置順序和一般腳本里面的參數(shù)化字段的順序一致,第一個參數(shù)化字段是用戶名,第二個參數(shù)化字段是密碼。

4.循環(huán)參數(shù)表設置:

設置好參數(shù)表中要循環(huán)的部分:

5.把要循環(huán)執(zhí)行的腳本放到循環(huán)體內(nèi),完整的腳本如下:

for(ParameterData pd : ar.getParameterDataList("ghf.xls")/*.subList(0, 3)*/)

{

//ar.parameterData = pd;//ar.parameterData可用于腳本之間傳遞參數(shù)

ar.window("IEFrame_上海澤眾軟件科技有限公司客戶管理系統(tǒng) - Windows Internet Explorer").setValue("INPUT_text_username",""+pd.getFrom("username"));// 輸入用戶名

ar.window("IEFrame_上海澤眾軟件科技有限公司客戶管理系統(tǒng) - Windows Internet Explorer").setValue("INPUT_password_password",""+pd.getFrom("password"));// 輸入密碼

ar.window("IEFrame_上海澤眾軟件科技有限公司客戶管理系統(tǒng) - Windows Internet Explorer").clickControl("INPUT_submit_登 錄",27,6,"left");// 點擊登錄

ar.window("IEFrame_上海澤眾軟件科技有限公司客戶管理系統(tǒng) - Windows Internet Explorer").clickControl("A_退出系統(tǒng)",23,2,"left");// 點擊退出系統(tǒng)

}

6.執(zhí)行腳本:

上面的過程沒有涉及到用戶名和密碼的錯誤處理,下面我們把這些情況添加進去,用戶名輸入錯誤的時候會出現(xiàn)如下的報錯信息:

密碼錯誤會出現(xiàn)如下的報錯信息:

如果出現(xiàn)這兩種情況,我們要把結(jié)果異常的腳本錄制下來,然后,繼續(xù)執(zhí)行后面的測試:

參數(shù)表設計:

完整的腳本如下:

for(ParameterData pd : ar.getParameterDataList("ghf.xls")/*.subList(0, 3)*/)

{

//ar.parameterData = pd;//ar.parameterData可用于腳本之間傳遞參數(shù)

ar.window("IEFrame_上海澤眾軟件科技有限公司客戶管理系統(tǒng) - Windows Internet Explorer").setValue("INPUT_text_username",""+pd.getFrom("username"));// 輸入用戶名

ar.window("IEFrame_上海澤眾軟件科技有限公司客戶管理系統(tǒng) - Windows Internet Explorer").setValue("INPUT_password_password",""+pd.getFrom("password"));// 輸入密碼

ar.window("IEFrame_上海澤眾軟件科技有限公司客戶管理系統(tǒng) - Windows Internet Explorer").clickControl("INPUT_submit_登 錄",27,6,"left");// 點擊登錄

if (ar.windowExist("#32770_來自網(wǎng)頁的消息")){

String str1 = ar.window("#32770_來自網(wǎng)頁的消息").getProperty("Static_用戶名不存在!", "name");

System.out.println(str1);

ar.window("#32770_來自網(wǎng)頁的消息").clickControl("Button_確定", 34, 16, "left");

} else if (ar.windowExist("#32770_來自網(wǎng)頁的消息_2")){

String str2 = ar.window("#32770_來自網(wǎng)頁的消息_2").getProperty("Static_密碼錯誤!", "name");

System.out.println(str2);

ar.window("#32770_來自網(wǎng)頁的消息_2").clickControl("Button_確定_2", 53, 16, "left");

}else if (ar.windowExist("IEFrame_上海澤眾軟件科技有限公司客戶管理系統(tǒng) - Windows Internet Explorer")){

System.out.println("登錄成功!");

ar.window("IEFrame_上海澤眾軟件科技有限公司客戶管理系統(tǒng) - Windows Internet Explorer").clickControl("A_退出系統(tǒng)",23,2,"left");// 點擊退出系統(tǒng)

}

}

下面我們執(zhí)行下腳本,看看結(jié)果:

腳本運行成功,并且我們把參數(shù)表中每一組的執(zhí)行結(jié)果都輸出到輸出區(qū)域了,我們成功了!