1. 程式人生 > >自動化測試系統計算器---Android studio + java + appium

自動化測試系統計算器---Android studio + java + appium

前言:已配置好appium+java環境,如有問題,可參考前篇blog。

 

例項:

1.建立java專案,匯入相關依賴,java-client和selenium版本號最好對應,不然可能出現很奇葩的問題。相關網站:https://mvnrepository.com/artifact/io.appium/java-client。點選相應版本,下面會有對應的selenium版本號對應的網址。

 

 java檔案對應的配置如下

配置好java專案後,可以通過sdk包下面的tools資料夾下面找到uiautomatorviewer.bat檔案,雙擊開啟,可以獲取app頁面相關元素的id,記錄,後面編碼有用到

。如下圖:

編碼,測試1+6,開啟appium並執行,並執行下面程式碼,觀察結果

public class MyClass {

    private AppiumDriver driver;

    @BeforeClass
    public void setup() throws Exception{
        DesiredCapabilities cap = new DesiredCapabilities();
        cap.setCapability(CapabilityType.BROWSER_NAME,"");
        cap.setCapability(
"platformName","Android"); cap.setCapability("deviceName","9HNBB18330161672"); cap.setCapability("platformVersion","6.0"); cap.setCapability("appPackage","com.android.calculator2"); cap.setCapability("appActivity","com.android.calculator2.Calculator"); cap.setCapability(
"appWaitActivity","com.android.calculator2.Calculator"); cap.setCapability("sessionOverride",true); driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap); } @Test public void plus(){ //獲取1 driver.findElementById("com.android.calculator2:id/digit1").click(); //獲取+ driver.findElementById("com.android.calculator2:id/plus").click(); //獲取6 driver.findElementById("com.android.calculator2:id/digit6").click(); //獲取= driver.findElementById("com.android.calculator2:id/equal").click(); } @AfterClass public void tearDown() throws Exception{ driver.quit(); } }

 

難點解析:

1.環境配置。一點要建立java專案,避免依賴檔案衝突。

採坑點,在Android studio中匯入相關jar檔案,必須建立java專案,而不是android專案。因為AS會預設建立Android專案,剛開始沒注意這一點,在通過glide匯入相關依賴檔案的時候,衝突了,一直報錯。

如下:Caused by: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives

因為io.appium:java-client:4.1.2和com.android.support:appcompat-v7:27.1.1有重複引用

2.獲取app頁面元素id,如果可以自己看程式碼,皆大歡喜,如果沒法看到原始碼,可以通過sdk下自帶工具獲取。

3.編碼,後續詳解