閱讀196 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Appium Android UI自動化簡介 + 實戰

一、自動化比較適合的場景

1、穩定迭代;

2、回歸階段;回歸上一版功能,對新功能不適用。

3、研發驅動的底層代碼重構;

  • 不適合case:無網、支付、需要數據準備的case

二、Appium簡介

Appium是目前最為強大的自動化測試框架,支持IOS 與Android。

  • IOS: 蘋果公司的 UIAutomation。

  • Android 4.2+: Google公司的 UiAutomator。

  • Android 2.3+: Google公司的 Instrumentation. (Instrumentation 的支持是通過綁定另外一個獨立的Selendroid項目來實現的)。

C/S 架構

Appium的核心是一個遵守REST設計風格的web 服務器,它接受客戶端的連接,接收客戶端的命令,在手機設備上執行命令,然後通過HTTP的響應收集命令執行的結果。

支持多語言

三、case編寫思路

過程抽象: 定位-------操作-------等待---------校驗---------定位

定位方式

1、文案

2、id

3、xpath

4、類名

5、屬性

6、組合

PS:元素信息通過UIAutomator Viewer工具查看:

操作

1、點擊;2、輸入;3、滑動;

等待、判斷頁麵元素出現或者消失:

1、 sleep

2、 View或文案顯示

3、 View或文案消失

校驗

按需求~文案顯示或消失,View顯示或消失,Dialog消失或消失,Toast等等

四、操作步驟

1、JDK、Android、eclipse、appium 等環境安裝

2、啟動appium server端

3、run,舉例說明~~

/**
* example用例
*/
@Test
public void test_000_example() {
Gotocate(1);
Sleep(2000);
//文案
driver.findElementByAndroidUIAutomator("new UiSelector().text(\"餐飲\")").click();
Sleep(2000);
driver.findElementById("com.baidu.lbs.waimai:id/back").click();
Sleep(2000);

//id
driver.findElementById("com.baidu.lbs.waimai:id/left_container").click();
Sleep(2000);
driver.findElementById("com.baidu.lbs.waimai:id/actionbar_left").click();
Sleep(1000);

//xpath
driver.findElementByXPath("//android.widget.LinearLayout/android.widget.LinearLayout[1]/android.widget.RelativeLayout[2]").click();
Sleep(2000);
driver.findElementById("com.baidu.lbs.waimai:id/back").click();
Sleep(2000);
//類名--推薦在View數量小的頁麵使用

//滑動--下拉
int width = driver.manage().window().getSize().width;
int height = driver.manage().window().getSize().height;

for(int i = 0; i < 10; i++)
{
driver.swipe(width / 2, height * 3 / 4, width / 2, height / 4, 1000);
}

// WaitForStringShow("餐飲");
// WaitForViewShow("com.baidu.lbs.waimai:id/left_container");
// WaitForViewHide("com.baidu.lbs.waimai:id/left_container");
}

五、失敗case問題定位

三種可能:1、bug—>提icafe;2、腳本問題->Fix;3、工具問題->尋求其他方式解決;4、環境準備問題(無網、手機無電、有彈窗、目標app後台未殺死等等)

  • 定位問題方式:

1、查看失敗case截圖

2、定位代碼行,查看出錯原因(函數級)

3、結合功能,確定出錯點

特例:crash,無結果收集,需手工複現

最後更新:2017-09-30 16:02:51

  上一篇:go  低價做營銷網站陷阱,您了解嗎?
  下一篇:go  Mysql 查詢語句優化原則