Android自动化测试工具Appium环境搭建
2019獨角獸企業重金招聘Python工程師標準>>>
1、搭建Android環境
http://blog.csdn.net/jlminghui/article/details/39582895
注:需要設置系統變量“ANDROID_HOME”。
2、安裝Node.js
http://www.nodejs.org/download/
下載相關操作系統的版本
安裝過程,一路“Next”。
?
3、安裝Appium
(1)下載地址:http://appium.io/?下載完畢后解壓到pc本地,將壓縮包里有appium.cmd文件的路徑設置到環境變量path中。
(2)進入命令行,輸入appium-doctor?
?
另外也可在線安裝(可選,網絡不好還是選上面的好些)
(1)進入命令行
(2)輸入命令:npm install -g appium
注:翻墻下載比較靠譜
(3)等待更新完畢
(4)安裝后驗證:appium-doctor
?
4、創建虛擬機或使用實際設備
創建一個4.4.2的虛擬機
不熟悉這塊的朋友參考:http://blog.csdn.net/jlminghui/article/details/39582895
?
5、創建Java工程(Eclipse)
?推薦使用maven工程,直接可以maven導入。方法如下
1.創建一個maven工程
2.百度maven中央倉庫,在中央倉庫搜索selenium、appium、junit,找到對應的依賴加入到pom.xml,就可以不用再去對應的官網下載包了,又麻煩又慢
<dependencies>??<dependency>??<groupId>org.seleniumhq.selenium</groupId>??<artifactId>selenium-server</artifactId>??<version>2.48.2</version>??</dependency>??<dependency>??<groupId>org.seleniumhq.selenium</groupId>??<artifactId>selenium-java</artifactId>??<version>2.48.2</version>??</dependency>??<dependency>??<groupId>io.appium</groupId>??<artifactId>java-client</artifactId>??<version>3.2.0</version>??</dependency>??<dependency>??<groupId>junit</groupId>??<artifactId>junit</artifactId>??<version>4.12</version>??</dependency>??</dependencies>??一般方法
(1)導入Selenium類庫
http://selenium-release.storage.googleapis.com/2.44/selenium-java-2.44.0.zip
http://selenium-release.storage.googleapis.com/2.44/selenium-server-standalone-2.44.0.jar
(確認2014.11.14有效,如無效請訪問http://docs.seleniumhq.org/download/?進行下載 )
?
注:需要導入兩個,一個是客戶端,一個是服務端,服務端庫不導入會導致運行時報錯。
(2)導入Appium類庫
https://search.maven.org/remotecontent?filepath=io/appium/java-client/1.2.1/java-client-1.2.1.jar?
(確認2014.11.14有效,如無效請訪問http://appium.io/downloads.html? 進行下載?)
注:此處如果選擇下載最新的2.0以上的版本,會導致編譯new?AppiumDriver時報錯。解決辦法見:
http://blog.csdn.net/zhubaitian/article/details/39717889?
?
?
6、運行Appium示列
(1)下載示例程序
https://github.com/appium/sample-code/tree/master/sample-code/apps/ContactManager
上面鏈接中下載ContactManager.apk
(點擊下方的RAW按鈕下載)
并將該apps放到當前項目的apps目錄下(目錄自行創建)
(2)下載示例程序測試
地址:https://github.com/appium/sample-code/tree/master/sample-code/examples/java/junit/src/test/java/com/saucelabs/appium
java文件為“AndroidContactsTest.java”
(點擊下方的RAW按鈕下載)
內容經過更改如下:
package?com.Demo;??import?io.appium.java_client.AppiumDriver;?? import?org.junit.After;?? import?org.junit.Before;?? import?org.junit.Test;?? import?org.openqa.selenium.By;?? import?org.openqa.selenium.WebElement;?? import?org.openqa.selenium.remote.CapabilityType;?? import?org.openqa.selenium.remote.DesiredCapabilities;??import?java.io.File;?? import?java.net.URL;?? import?java.util.List;??public?class?AppDemo?{??private?AppiumDriver?driver;??@Before??public?void?setUp()?throws?Exception?{??//?set?up?appium??File?classpathRoot?=?new?File(System.getProperty("user.dir"));??File?appDir?=?new?File(classpathRoot,?"apps");??File?app?=?new?File(appDir,?"ContactManager.apk");??DesiredCapabilities?capabilities?=?new?DesiredCapabilities();??capabilities.setCapability(CapabilityType.BROWSER_NAME,?"");??capabilities.setCapability("platformName",?"Android");??capabilities.setCapability("deviceName","Android?Emulator");??capabilities.setCapability("platformVersion",?"4.4");??capabilities.setCapability("app",?app.getAbsolutePath());??capabilities.setCapability("appPackage",?"com.example.android.contactmanager");??capabilities.setCapability("appActivity",?".ContactManager");??driver?=?new?AppiumDriver(new?URL("http://127.0.0.1:4723/wd/hub"),?capabilities);??}??@After??public?void?tearDown()?throws?Exception?{??driver.quit();??}??@Test??public?void?addContact(){??WebElement?el?=?driver.findElement(By.name("Add?Contact"));??el.click();??List<WebElement>?textFieldsList?=?driver.findElementsByClassName("android.widget.EditText");??textFieldsList.get(0).sendKeys("Some?Name");??textFieldsList.get(2).sendKeys("Some@example.com");??driver.swipe(100,?500,?100,?100,?2);??driver.findElementByName("Save").click();??}?? }??(3)啟動android4.4.2虛擬機
(4)命令行啟動后輸入:appium?
(5)appium啟動到對應設備:appium -a 127.0.0.1 -p4723 -Uemulator-5554?(-a表示ip,-p表示端口,默認都是4723,-U表示設備的udid,可以通過adb devices查看)
(6)項目右鍵>“Run As”>“JUnit Test”(選擇Eclipse JUnit Launcher)
? ? ? ?以上步驟確認可以運行成功,但由于筆者也是剛接觸Appium,可能存在遺漏,也請大家幫忙指出,另外也可以使用maven和相關Eclipse插件會更方便些,網上例子很多可自行查找。
7、Appium遇到問題
問題一:
問題org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
解決辦法:
(1)啟動appium
(2)運行cmd 輸入 adb devices ?查看UDID 如圖:
(3)再在cmd中輸入 appium -a 127.0.0.1 -p4723 -Uemulator-5554 (-a表示ip,-p表示端口,默認都是4723,-U表示設備的udid 可以通過appium -h查看更多命令)
(4)如果如下圖所示 就表示 appium服務啟動成功了,注意這個窗口不要關閉 因為這是appium的服務 關了就關了服務,后面過程無法執行,而且這個窗口也是 日志輸出的窗口用于排錯。
問題二:
問題:org.openqa.selenium.SessionNotCreatedException: A new session could not be created.
(Original error: Device ZX1C622BU3 was not in the list of connected devices)
(WARNING: The server did not provide any stacktrace information)
解決辦法:可能手機驅動未安裝成功,雖然在adb devices中可以正常查看到devices
問題三:
問題:org.openqa.selenium.SessionNotCreatedException: A new session could not be created. (Original error: Waited 20 secs for selendroid server and it never showed up)
解決辦法:
查看包的簽名的和Activity
例如:APP從I5版本后啟動界面的capabilities.setCapability("appActivity", ".CordovaApp");
從I5版本后Acitivity變成了MainActivity
capabilities.setCapability("appActivity",".MainActivity");// 被測app的Activity類
問題四:
org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. (WARNING: The server did not provide any stacktrace information)
解決方法:
查看設備上是否安裝Selendroid,或者升級Selendroid
IOS問題五:
org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. (WARNING: The server did not provide any stacktrace information)
?
解決辦法:IOS_webkit_debug_proxy –c –[Udid] -d
?
問題六
error: Couldn't start Appium REST http interface listener. Requested port is already in use. Please make sure there's no other instance of Appium running already.
因為端口被node占用,可以用如下退出node
找出PID命令::netstat -ano|findstr "7922" ? (這個4723是被占用的端口,我們需要先找該占用該端口程序的PID)
停止PID命令:taskkill /pid 8828 /f
8、相關工具
工具一
? ? ? ? SDK\tools下的:uiautomatorviewer
? ? ? ? 作用:查看元素ID、Name、坐標
工具二
? ? ? ? SDK\build-tools\23.0.0下的:aapt
? ? ? ? 作用:查看啟動包名和首頁ACTIVITY
轉載于:https://my.oschina.net/u/2391658/blog/706576
總結
以上是生活随笔為你收集整理的Android自动化测试工具Appium环境搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenCV学习笔记——Mat类型数据存
- 下一篇: Powershell AWS 自动化管理