日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

appium for java教程_appium自动化测试入门(java版)

發布時間:2024/7/5 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 appium for java教程_appium自动化测试入门(java版) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、簡述

appium 是一個自動化測試開源工具,支持 iOS 平臺和 Android 平臺上的原生應用,web應用和混合應用。

“移動原生應用”是指那些用iOS或者 Android SDK 寫的應用(Application簡稱app)。

“移動web應用”是指使用移動瀏覽器訪問的應用(appium支持iOS上的Safari和Android上的 Chrome)。

“混合應用”是指原生代碼封裝網頁視圖——原生代碼和 web 內容交互。比如,像?Phonegap,可以幫助開發者使用網頁技術開發應用,然后用原生代碼封裝,這些就是混合應用。

重要的是,appium是一個跨平臺的工具:它允許測試人員在不同的平臺(iOS,Android)使用同一套API來寫自動化測試腳本,這樣大大增加了iOS和Android測試套件間代碼的復用性。

2、appium與Selenium區別

appium類庫封裝了標準Selenium客戶端類庫,為用戶提供所有常見的JSON格式selenium命令以及額外的移動設備控制相關的命令,如多點觸控手勢和屏幕朝向。(相互關系)

appium客戶端類庫實現了Mobile JSON Wire Protocol(一個標準協議的官方擴展草稿)和W3C WebDriver spec(一個傳輸不可預知的自動化協議,該協議定義了MultiAction 接口)的元素。(內部實現)

appium服務端定義了官方協議的擴展,為appium 用戶提供了方便的接口來執行各種設備動作,例如在測試過程中安裝/卸載App。這就是為什么我們需要appium特定的客戶端,而不是通用的Selenium 客戶端。當然,appium 客戶端類庫只是增加了一些功能,而實際上這些功能就是簡單的擴展了Selenium 客戶端,所以他們仍然可以用來運行通用的Selenium會話。(不同點)

3、特點

appium是跨平臺的,可以用在多平臺上,如:OSX,Windows以及Linux桌面系統上運行。

appium選擇了Client/Server的設計模式。只要client能夠發送http請求給server,那么的話client用什么語言來實現都是可以的,這就是appium及Selenium(WebDriver)如何做到支持多語言的原因;

appium擴展了WebDriver的協議,沒有自己重新去實現一套。這樣的好處是以前的WebDriver API能夠直接被繼承過來,以前的Selenium(WebDriver)各種語言的binding都可以拿來就用,省去了為每種語言開發一個client的工作量;

支持多語言。

語言/框架Github地址

4、appium工作原理

appium是如何工作的。

首先,appium支持多語言,因為它針對流的幾種語言分別開發的相應的appium庫。好處就是我們可以選擇自己熟悉的語言編寫appium腳本。

其次,appium支持多平臺,包括MAC和Windows。它針對這兩大平臺開發了appium-Server。

最后,appium又同時支持Android 和 iOS兩個操作系統。

這就使得appium變得非常靈活。

當我在MAC平臺上,通過Python(python-client?)編寫了一個appium自動化腳本并執行,請求會首先到 appium.dum (MAC下的appium-Server),appium-Server通過解析,驅動iOS設備來執行appium自動化腳本。

或者,我在Windows平臺上,通過Java(?java-client?)編寫了一個appium自動化腳本并執行,請求會首先到 appiumForWindow.zip(Window下的appium-Server),appium-Server通過解析,驅動Android虛擬機或真機來執行appium腳本。

所以,你會看到appium的強大之處就在于此。

5、需要安裝什么?

這才是你最關心的問題,使用appium都需要安裝些什么?其實,從appium工作原理你就應該知道需要裝什么了。

編程語言:Python ,Java

appium client 請參考?支持多平臺、多語言?的列表,根據你選擇的語言來選擇對應的 appium-client。

appium Server 即nodejs安裝命令行或下載安裝包安裝可視化Server服務。

測試運行環境,即:你需要一個Android模擬器,或 一個 Android 手機,或 一臺 iPhone 手機。

importjava.net.MalformedURLException;importjava.net.URL;importjava.util.concurrent.TimeUnit;importorg.openqa.selenium.By;importorg.openqa.selenium.WebElement;importorg.openqa.selenium.remote.DesiredCapabilities;importio.appium.java_client.android.AndroidDriver;importio.appium.java_client.android.AndroidKeyCode;public classApp {public static void main(String[] args) throwsMalformedURLException {

AndroidDriver driver= null;

DesiredCapabilities des= newDesiredCapabilities();//des.setCapability("automationName", "Appium");//Selendroid//自動化的模式選擇//des.setCapability("app", "C:\\software\\CalcTest.apk");//配置待測試的apk的路徑//des.setCapability("browserName", "chrome");//h5

des.setCapability("platformName", "Android");//平臺名稱

des.setCapability("platformVersion", "4.4");//手機操作系統版本

des.setCapability("udid", "127.0.0.1:62025");//連接的物理設備的唯一設備標識

des.setCapability("deviceName", "S4");//使用的手機類型或模擬器類型 UDID//com.tianqi2345/com.tianqi2345.homepage.ChooseCityActivity

des.setCapability("appPackage", "com.tianqi2345");//App安裝后的包名,注意與原來的CalcTest.apk不一樣

des.setCapability("appActivity", "com.tianqi2345.homepage.ChooseCityActivity");//app測試人員常常要獲取activity,進行相關測試,后續會講到

des.setCapability("unicodeKeyboard", "True");//支持中文輸入

des.setCapability("resetKeyboard", "True");//支持中文輸入

des.setCapability("newCommandTimeout", "60");//沒有新命令時的超時時間設置

des.setCapability("nosign", "True");//跳過檢查和對應用進行 debug 簽名的步驟

driver= new AndroidDriver(new URL("http://192.168.0.251:34000/wd/hub"), des);//虛擬機默認地址

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);//設置超時等待時間,默認9500ms

WebElement findElement = driver.findElement(By.id("com.tianqi2345:id/search_edit_text"));

findElement.click();

findElement.sendKeys("廣州");try{

Thread.sleep(5000);

}catch(InterruptedException e) {

e.printStackTrace();

}

System.out.println("=============測試============");if (driver != null) {

driver.closeApp();

}

}

}

pom.xml

4.0.0

com.ling

appium

0.0.1-SNAPSHOT

jar

appium

http://maven.apache.org

UTF-8

io.appium

java-client

6.1.0

junit

junit

4.12

test

org.apache.maven.plugins

maven-compiler-plugin

3.5.1

1.8

1.8

UTF-8

總結

以上是生活随笔為你收集整理的appium for java教程_appium自动化测试入门(java版)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。