溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

移動平臺測試自動化工具Appium試用筆記(二)

發(fā)布時間:2020-07-03 11:04:55 來源:網(wǎng)絡(luò) 閱讀:536 作者:zhukev 欄目:開發(fā)技術(shù)

對不同的自動化工具做了初步的比較,個人總結(jié)下。

1. Appium 使用的Driver是在Selenium Webdriver的基礎(chǔ)上進行封裝,底層會根據(jù)不同的平臺決定調(diào)用ios的UIAutomation還是Android的UIAutomator. 也就是說用戶使用的webdriver相應(yīng)的方法會根據(jù)不同的平臺轉(zhuǎn)換成對應(yīng)的UIAutomaxxxx的方法。所以用戶使用Appium的Driver時候就可以像使用Webdriver一樣。

2. Android下面的測試支持框架根據(jù)出現(xiàn)時間的先后有兩個:Test Instrumentation和UIAutomator. 個人認(rèn)為兩者最重要的一個區(qū)別是Test Instrumentation框架是不能跨應(yīng)用,而UIAutomator是可以跨應(yīng)用的。 也就是說如果你在測試當(dāng)前應(yīng)用的時候需要調(diào)用照相機去拍照,前者是控制不了的。

3. 自動化測試工具Robotium是基于Test Instrumentation的,所以Robotium是不能跨應(yīng)用的

4. UIAutomator就是基于UIAutomator框架的,所以可以跨應(yīng)用

5. Appium是基于UIAutomator和Test Instrumentation的,所以可以跨應(yīng)用

6. Robotium中只有一個solo類就處理了所有的事情,比如:

public void testAddNote() throws Exception {
solo.clickOnMenuItem("Add note");
//Assert that NoteEditor activity is opened
solo.assertCurrentActivity("Expected NoteEditor activity", "NoteEditor"); 
//In text field 0, add Note 1
solo.enterText(0, "Note 1");
solo.goBack(); 
//Clicks on menu item
solo.clickOnMenuItem("Add note");
//In text field 0, add Note 2
solo.enterText(0, "Note 2");
//Go back to first activity named "NotesList"
solo.goBackToActivity("NotesList"); 
//Takes a screenshot and saves it in "/sdcard/Robotium-Screenshots/".
solo.takeScreenshot();
boolean expected = true;
boolean actual = solo.searchText("Note 1") && solo.searchText("Note 2");
//Assert that Note 1 & Note 2 are found
assertEquals("Note 1 and/or Note 2 are not found", expected, actual); 


}

7. UIAutomator主要是用幾個類進行控制:"UiDevice,UiSelector,UiScrollable,UiObjectUiCollection.

 public void testDemo() throws UiObjectNotFoundException {  
        getUiDevice().pressHome();  
        // 進入設(shè)置菜單  
        UiObject settingApp = new UiObject(new UiSelector().text("MAJC Box"));  
        settingApp.click();  
        //休眠3秒  
        try {  
            Thread.sleep(3000);  
        } catch (InterruptedException e1) {  
            // TODO Auto-generated catch block  
            e1.printStackTrace();  
        }  
        // 進入語言和輸入法設(shè)置  
        UiScrollable settingItems = new UiScrollable( new UiSelector().scrollable(true));  
        settingItems.setAsHorizontalList();
  
        UiObject languageAndInputItem = settingItems.getChildByText(  
                new UiSelector().textContains("192.168.1.174"), "MAJC Box\n192.168.1.174", true);  
        languageAndInputItem.clickAndWaitForNewWindow();  
        
        UiObject btnSetup = new UiObject(new UiSelector().resourceId("com.incasedata.app:id/btn_setting_up"));
        btnSetup.clickAndWaitForNewWindow();
        UiObject btnNext = new UiObject(new UiSelector().resourceId("com.incasedata.app:id/btn_next"));
        btnNext.clickAndWaitForNewWindow();
        
        //UiObject imgView = new UiObject(new UiSelector().resourceId("com.incasedata.app:id/user_avatar"));
        //imgView.clickAndWaitForNewWindow();
        UiObject txtUserName = new UiObject(new UiSelector().resourceId("com.incasedata.app:id/edit_account"));
        txtUserName.setText("MAJCBOXISTHEBESTTOOLSFORYOUTOUSERPLEASEGOAHEAD");
        
          
    }  

8. 易測云可以接受Robotium框架開發(fā)的測試腳本

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI