初識ios自動化(一)

來源:互聯網
上載者:User

標籤:

Appium進行自動化測試有兩個好處:

1. Appium在不同平台中使用了標準的自動化APIs,所以在跨平台時,不需要重新編譯或者修改自己的應用。

2. Appium支援Selenium WebDriver支援的所有語言,如java、Object-C、JavaScript、Php、Python、Ruby、C#、Clojure,或者Perl語言,更可以使用Selenium WebDriver的Api。Appium支援任何一種測試架構。如果只使用Apple的UIAutomation,我們只能用javascript來編寫測試案例,而且只能用Instruction來運行測試案例。同樣,如果只使用Google的UIAutomation,我們就只能用java來編寫測試案例。Appium實現了真正的跨平台自動化測試。

 

使用appium進行ios自動化需知:

 

IOS自動化測試需要Mac os作業系統

Mac OS X 10.7或者更高版本,推薦10.8.4版本

Android自動化測試可以在Mac、Linux上進行。

需要安裝node和npm(node版本高於0.8)

Mac Xcode(本人使用)

Apple開發人員工具(iphone模擬器sdk,及命令列工具)

 

安裝appium

這裡轉寄一個部落格:http://www.cnblogs.com/oscarxie/p/3894559.html

到這裡環境已經準備的差不多了,我開始自己的第一個ios自動化指令碼

appium設定:

 

使用真機串連,要選中UUID,將真機的UUID填入,選擇正確真機ios版本,這樣在啟動時,就會自動去尋找連結的裝置。

發現在虛擬機器上啟動inspector,application 的設定必須設定App Path,使用BundleID將啟動不了,會報以下錯誤:

Could not start a new session

Be sure the Appium server is running with an application opened by using the "App Path" parameter in Appium.app (along with package and activity for Android) or by connecting with selenium client and supplying this in the desired capabilities object.

如果有inspector啟動不了,請尋找之前寫的一篇文章:http://www.cnblogs.com/llining/p/5040290.html

啟動之後顯示介面:

 

下面介紹下使用appium 錄製指令碼

開啟inspector後,會發現上面有個record按鈕,點擊它,下面會彈出如下所示視窗:

 

點選某個文字框控制項,點擊text後,輸入要輸入的文本,點擊Send Keys,代碼中就會產生一行新的代碼,

 

在Touch 中,會有一個常用動作,如點擊、活動、長按等,Text中,是對文本的操作,Locator是用來檢查定位元素的路徑的正確,Misc中是對視窗中彈出的提示框的處理。

 

錄製完畢後,點擊sava,儲存代碼。

 

匯出的代碼如:

import io.appium.java_client.AppiumDriver;

import org.openqa.selenium.remote.DesiredCapabilities;

import java.net.URL;

 

public class {scriptName} {

           public static void main(String[] args) {

                     DesiredCapabilities capabilities = new DesiredCapabilities();

                     capabilities.setCapability("appium-version", "1.0");

                     capabilities.setCapability("platformName", "iOS"); //表示要啟動的裝置為ios

                     capabilities.setCapability("platformVersion", "9.1"); //啟動裝置的系統版本

                     capabilities.setCapability("deviceName", "iPhone 6 Plus"); //啟動裝置名稱,虛擬機器的唯寫裝置名稱就可以了,真機需要填寫UUID

                     capabilities.setCapability("app", "/Users/123/Downloads/Reserve.ipa"); //要測試的包

                     wd = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); //appiumserver 串連地址

                     wd.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);

wd.findElement(By.xpath("//UIAApplication[1]/UIAWindow[1]/UIAScrollView[1]/UIATextField[1]/UIATextField[1]")).sendKeys("156XXXX2606");  //像文字框輸入文本

           wd.findElement(By.xpath(".//UIAScrollView[1]/UIASecureTextField[1]/UIASecureTextField[1]")).sendKeys("111111");  //像文字框輸入文本

wd.findElement(By.xpath("//UIAApplication[1]/UIAWindow[1]/UIAScrollView[1]/UIAButton[1]")).click();   //點擊登入按鈕

                     wd.close();

           }

}

 

以上指令碼,就實現一個簡單的登入功能。

   

初識ios自動化(一)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.