1. 程式人生 > >Appium系列|建立專案

Appium系列|建立專案

​一、建立專案

點選Create New Project就可以進行專案的建立

Appium官方有示例是通過maven來進行專案構建的,所以我們可以選擇建立Maven型別的專案。

選擇視窗左側的Maven選項,表明接著要建立Maven型別的專案,IDE會自動建立這種型別專案所需的一切,如pom.xml檔案等,如下所示:

第一次使用IntelliJ IDEA需要設定下jdk的路徑,點選上圖右側的New按鈕,然後找到jdk的安裝目錄,比如我的安裝路徑為:"C:\Program Files\Java\jdk1.8.0_131",就選擇該目錄即可,設定完如下所示:

接著需要設定下GroupId和ArtifactId,如下所示

接著設定下專案名以及存放路徑,完成專案建立

二、Appium依賴新增

Appium Server已經安裝完畢,接著需要藉助Maven自動化去下載Appium的客戶端依賴。

開啟專案裡的pom.xml檔案,這個檔案主要用來宣告依賴用的,我們在這裡宣告需要用到的依賴,到時候IDE就會自動根據配置的宣告下載對應的依賴。這裡我們需要用到Appium,所以需要宣告Appium的依賴,同時需要用到單元測試框架,也需要宣告對應的依賴,這裡單元測試框架選擇TestNG,當然選擇JUnit也是可以的。

宣告如下:

<dependencies>
       <dependency>
           <groupId>org.testng</groupId>
           <artifactId>testng</artifactId>
           <version>6.9.10</version>
           <scope>test</scope>
       </dependency>

       <dependency>
           <groupId>io.appium</groupId>
           <artifactId>java-client</artifactId>
           <version>5.0.3</version>
       </dependency>

   </dependencies>

建議大家testng和java-client的版本和我報紙一致,因為後續要介紹一些報告展示的常見對版本是有要求的,不同的版本可能需要的依賴版本也會不一樣,為了避免後續出現意想不到的錯誤,最後跟本書使用的版本保持一致。

在pom.xml檔案邊上會出現如下的選擇,選擇Enable Auto-Import,這樣就會自動匯入需要的依賴,如下所示

等依賴都下載完成後就可以來編寫具體的測試指令碼了。

三、指令碼執行

在編寫具體指令碼之前先來介紹下被測試的應用,這本書我們會使用開源中國這個APP來作為被測試的物件。這個 應用的APK可以從開源中國的網站上獲取得到。但最新的版本有的模擬器映象不支援安裝,如果你使用的是真實的手機來執行指令碼就不會有這個問題,為了演示方便本書直接獲取開源中國的原始碼編譯了一個支援模擬器安裝的版本,可以通過如下的github連結獲取到:

https://github.com/if1else0/appium_pratice/raw/master/AUT/osc.apk

有了安裝檔案後,可以將這個apk安裝到模擬器上,如果有手機直接安裝到手機也可以(需要在電腦上安裝好驅動並開啟usb除錯模式)。現在來簡單介紹下如何通過Android Studio去建立一個模擬器並啟動它。

開啟Android Studio,第一次使用的時候可以先建立個Android 工程,具體步驟如下所示:

 

 

 

 

建立完專案後就可以點選選單欄的這個圖片進行模擬器的建立了,如下圖所示:

點選完後,可以看到如下的介面

點選“Create Virtual Device”就可以進行模擬器的建立,在如下的介面中選擇你要建立的模擬器的手機型號,如Nexus 5

接著需要選擇模擬器的映象,如果要啟動硬體加速就得選擇x86的CPU架構,不能選擇ARM的CPU架構。之前如果沒有下載過映象的話,要先進行下載,如下所示:

點選上圖的Download後,會進入如下的介面,勾選"Accept",選擇Next進行安裝即可

下載完後,就可以選擇該映象進行模擬器的建立了。

建立完模擬器後,可以通過點選綠色的啟動圖片,進行模擬器的啟動,如下所示

模擬器啟動完的介面如下:

模擬器啟動完後就可以建立專案的基本結構了。

我們可以在專案的根目錄下建立一個資料夾,給這個資料夾任意命名下如AUT,專門來存放被測試的apk的資料夾。

然後將上面提到的github裡下載得到的apk放到這個資料夾下。

src/test下主要用來存放測試指令碼,所以我們可以在這底下去建立我們的測試指令碼。

可以在src/test/java下新建一個包如appium.chapter1用來存放第一章節的測試程式碼。建立完後的專案結構如下所示:

接著在這個包下新建一個Java類,命名為HelloWorld,然後在這個新建的類裡面,滑鼠右擊選擇“Generate”,然後依次選擇“SetUp Method”、“Test Method”、"TearDown Method",讓IDE依次幫忙生成這三部分的程式碼。在依次選擇的時候IDE會提示裡要使用的JUnit4或者TestNG,因為我們要使用的是TestNG單元測試框架,所以這裡都選擇TestNG即可。

這這個測試類裡首先需要宣告一個AppiumDriver的物件引用,然後在setUp方法裡給這個物件引用進行例項化。例項化的構造引數裡需要一個DesiredCapabilities的物件應用,所以還得在setUp方法裡宣告和設定DesiredCapabilities物件引用的值,也是通過這些值的設定來告訴Appium Server你要操作的裝置以及測試物件的相關資訊。具體編寫完的測試程式碼如下:

package appium.chapter1;

import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

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

public class HelloWorld {
   private AppiumDriver<WebElement> driver;

   @BeforeMethod
   public void setUp() throws Exception {
       //構造被測試應用的路徑
       File app = new File(System.getProperty("user.dir"), "AUT/osc.apk");
       //例項化DesiredCapabilities
       DesiredCapabilities capabilities = new DesiredCapabilities();
       //deviceName的值可以任意指定
       capabilities.setCapability("deviceName","My Device");
       //設定被測應用的絕對路徑
       capabilities.setCapability("app", app.getAbsolutePath());
       capabilities.setCapability("appPackage","net.oschina.app");
       //設定啟動類的資訊,這個資訊可以通過aapt dump bading apkname來獲得
       capabilities.setCapability("appActivity", ".AppStart");
       //初始化AppiumDriver
       driver = new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
   }

   @Test
   public void testName() throws Exception {
       Thread.sleep(5000);
   }

   @AfterMethod
   public void tearDown() throws Exception {
      driver.quit();
   }
}

其中appActivity的值可以通過執行命令aapt dumpg badging apk名得到。如果我被測試apk檔案放在桌面,然後檔名是osc.apk,就可以在命令列下進入到桌面然後執行如下命令獲得啟動類的值:

aapt dump badging osc.apk

如下圖所示:

現在可以啟動Appium Desktop,設定下主機地址為127.0.0.1,埠號為4723,如下:

然後點選下Start Server的按鈕,就可以啟動Appium Server了。現在可以選擇這個測試類,滑鼠右鍵選擇Run HelloWorld,如果開源中國可以被成功啟動,說明這個指令碼可以正常工作了。

至此我們已經編寫了第一個測試指令碼,這個指令碼主要用來把被測試應用啟動後起來,並沒有做其他操作,如何對應用進行操作我們會在後面章節進行詳細講解。