Appium手機自動化測試從頭學 –Windows/Android環境安裝篇

手機自動化測試從頭學 –環境安裝篇

這篇文章主要說明手機自動化測試的工具準備與環境安裝。

這個例子中我們會逐步的完成環境的安裝與設定,並且寫一個小程式自動啟動指定的 App。

環境以 Windows/Android 為例子說明。主要使用的手機自動化測試架構為 “Appium”。

(Mac/iOS 可以參考這篇手機自動化測試 Appium 於 Mac上的環境設定)

硬體環境需求建議

CPU 建議

最好為 Intel 支援Virtual Technology。因為可以讓 android Emulator 的執行更順暢。

記憶體建議 8G:

主要是影響 Android emulator 的執行速度。記憶體越大 Android emulator執行的會越順利。

 

磁碟空間需求約 20 G

  • C:\Users\Administrator\AppData\Local\Temp\AndroidEmulator => 2G
  • Android SDK / API 21 / Android 5.0.1 => 13G
  • Appium => 350 MB
  • Eclipse => 450 MB
  • Selenium/Appium JAR => 45 MB

測試情境

我們除了環境安裝完畢之後,最後寫一個小的測試程式 Java Junit

  • 1. 自動啟動 Android Emulator 後
  • 2. 安裝指定 App
  • 3. 啟動該 app
  • 4. 程式自動點擊開始畫面按鈕

環境設定與安裝主要分為三大部分。

一部分是安裝 Eclipse 的環境,一部分是Android Emulator,最後一部分就是 Appium。

又分為十大步驟,安裝與設定。

Step 1: 安裝 Java

筆者建議最快的方式是透過 Chocolatey,直接在 Command Console 下執行下列兩列指令

這個指令會安裝 Chocolatey

@powershell -NoProfile -ExecutionPolicy Bypass -Command “iex ((new-object net.webclient).DownloadString(‘https://chocolatey.org/install.ps1’))” && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin

這個指令會直接自動下載JDK並且安裝 JDK

choco install jdk8

Step 2: 設定環境變數

主要設定Java 與 Android SDK 的環境變數,範例如下:

JAVA_HOME = C:\Program Files\Java\jdk1.8.0_45
ANDROID_HOME= D:\AndroidSDK\sdk
PATH= D:\AndroidSDK\sdk\tools; D:\AndroidSDK\sdk\platform-tools;C:\Program Files\Java\jdk1.8.0_45\bin;

(假設AndroidSDK 存放位置為 D:\AndroidSDK\sdk )

 

Step 3: 下載 Eclipse IDE for Java EE Developer

http://www.eclipse.org/downloads/

該下載檔案是一個壓縮包。

下載完後解壓縮後執行 eclipse.exe 即可。

Step 3.1: 設定 Selenium Javadoc

為了讓程式撰寫時可以有即時的線上說明每一個 API的使用,我們需要設定 Selenium Javadoc。

1. 找到 Selenium-Java-2.xx.jar 後,右鍵 properties

2. Java Source Attachment

3. External location > “Selenium-Java-2.xx-srcs.jar”

如下圖所示:

Selenium Javadoc setting in Eclipse

 

Step 4. 安裝 ADT Plugin

啟動 Eclipse.exe 之後,透過下列參考步驟安裝ADT plugin

http://developer.android.com/sdk/installing/installing-adt.html

Help > Install New Software.

Name: ADT Plugin
Location: https://dl-ssl.google.com/android/eclipse/

 

ADT Plugin install2

Step 4.5. 下載安裝 Android SDK

筆者下載並且安裝在 D:\AndroidSDK\

https://developer.android.com/sdk/index.html#Other

Step 4.6 安裝 TestNG

Help> Eclipse Marketplace > “TestNG” > Install

TestNG_Install

Step 5. Eclipse 設定 Android, AVD Manager

Windows > Perspective > Customize Perspective的視窗中做下列設定

Action Set Availability > Android SDK and AVD Manager

Action Visibility

 

Tool Bar Visibility > Android SDK and AVD Manager

Tool Bar Visibility

 

完成後應該會在 Eclipse 的TooBar 看到 AVD and Android SDK Manager

AVD ToolBar

 

設定Android SDK 位置: Window > Preferences

例如,筆者設定將 android SDK 存放位置為 D:\AndroidSDK\sdk

Android SDK location

Step 6: 設定 Virtual Device

在Eclipse 的 ToolBar 中啟動 “Android Virtual Device Manager”

例如筆者設定一個 Virtual Device,AVD Name = “3”

Android Virtual Device

到目前為止我們大致完成 Android與 Eclipse的環境安裝與設定

接著我們要設定與安裝 Appium

Step 6.1: 安裝 Emulator 加速套件

Windows > Android SDK Manager

主要需要下載的是下列兩個

  • “Intel x86 Atom System Images” (根據所需要的 API版本下載對應的 Intel x86 Atom)
  • “Intel Hardware Accelerated Execution Manager”

這裡特別要強調的是,透過 android SDK Manager 下載只是下載並不會自動安裝!   下載之後還必須手動安裝才會生效。

這個安裝檔案通常會放在下列路徑。

..\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm-android.exe

 

Enter image description here

Step 7: 安裝 Dotnet framework 4.5

由於 Windows Appium需要 Dotnet framework 4.5

如果之前的步驟以將安裝好 Chocolatey的話,那麼直接執行下列步驟及可

choco install dotnet4.5

或是也可以到微軟網站下載安裝

https://www.microsoft.com/en-in/download/details.aspx?id=30653

Step 8: 安裝 Appium Server

http://appium.io/downloads.html

選擇相對應的平台與最新的版本安裝

以 Windows為例,筆者寫這篇文章時 2015.8,最新版本為Appium 1.4

https://bitbucket.org/appium/appium.app/downloads/AppiumForWindows_1_4_0_0.zip

下載之後,解壓縮為一個 Installer。按照畫面步驟 Install Next Next…

設定 appium 啟動之前設定好的 “3”的Virtual Device,並且啟動 Appium

Configure Appium

 

Step 9: 下載相關的 JAR 檔案

 

Selenium JAR  檔案可以在這裡下載 http://www.seleniumhq.org/download/

Java 2.47.1 2015-07-29 Download

另外,Appium JAR 檔案可以在這裡下載

http://mvnrepository.com/artifact/io.appium/java-client

舉例來說,筆者下載 Java-client-3.1.0的版本。因為更新速度很快,建議可以更新最新版。

http://central.maven.org/maven2/io/appium/java-client/3.1.0/java-client-3.1.0.jar

最後將所有的 Selenium JAR 與 Appium JAR  檔案加入。

Project > Right Click properties > Java Build Path > Libraries > Add External JARS

Add Jar into Eclipse

 

Step 9: 寫程式

New 一個 Java Project,輸入程式碼如下

[pastacode lang=”java” message=”” highlight=”” provider=”manual”]

import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;

import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.remote.MobileCapabilityType;
import io.appium.java_client.remote.MobilePlatform;

import org.junit.Test;
import org.openqa.selenium.remote.DesiredCapabilities;



public class myAppiumTest {
	
	@Test
	public void test() throws MalformedURLException {
		File appDir = new File("D:\\AndroidSDK\\myAppium\\src\\");
		File app = new File(appDir, "bookMyShow-ucb.apk");
		
		DesiredCapabilities cap = new DesiredCapabilities();
		cap.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.ANDROID);
		cap.setCapability(MobileCapabilityType.DEVICE_NAME, "3");
		//cap.setCapability(MobileCapabilityType.BROWSER_NAME, "BROWSER");
		
		cap.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
		

		AndroidDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),cap);
		Thread.sleep(5000);
		//driver.get("http://www.google.com/");
		driver.findElementById("com.bt.bms:id/btnNoThanks").click();
		
		
	}

}

[/pastacode]

1. 這個例子中筆者準備一個 ADK在下列路徑,讀者可視情況修改

D:\\AndroidSDK\\myAppium\\src\\bookMyShow-ucb.apk

2. Device Name = “3”

我們之前創建一個 Virtual Device Name = 3。這部分讀者也可以適情況修改

cap.setCapability(MobileCapabilityType.DEVICE_NAME, “3”);

Step 10:啟動與執行

先確定 Appium 是啟動的狀態。右上角有一個”播放”的按鈕。

接著,執行 Eclipse 的程式。Run as “Junit Test”。

執行成功時,應該可以看到一個 android 虛擬器被啟動,並且自動啟動一個 App

之後的章節我們再介紹如何透過程式操作該 app的畫面操作與模擬人手勢的一些行為。

BookMyApp

 

 

如何執行在實體手機?

程式只有一行需要修改 “Android emulator” => “Android device”

  • 執行在虛擬環境:  cap.setCapability(MobileCapabilityType.DEVICE_NAME,”Android emulator“);
  • 執行在實體手機:cap.setCapability(MobileCapabilityType.DEVICE_NAME,”Android device“);

除錯,執行前確定手機的連接狀況,例如這個例子有連接一個實體手機與虛擬機。

$adb devices
4d00b3de5ea0a0bc           device
emulator-5554                    device

如果沒有顯示已連結的手機,可以執行下列指令重新啟動:
$adb kill-server
$adb start-server

另外,檢查手機是否已將開發者模式啟動。

 

 小結

到底我們安裝了哪些工具套件呢?  安裝步驟確實有些繁瑣,這邊做一點整理。

  1. ANDROID SDK [Link]-
  2. JDK (Java Development Kit) [Link]
  3. TestNG [Link]
  4. Eclipse [Link]
  5. Selenium Server JAR [Link]
  6. Webdriver Language Binding Library [Link]
  7. APPIUM For Windows [Link]
  8. APK App Info On Google Play [Link] (optional)主要用來查看 App的 Application Package Name 與啟動的 Activity Name
  9. Node.js (對於Windows 版本,安裝 appium本時,Node.Js 會自動安裝好)

 

 

 

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *