appium 搭建及实例
一、Appium環境搭建(Java版本)
轉載2016-04-26 09:24:55
標簽:appium移動端自動化測試
市場需求與職業生涯的碰撞,陰差陽錯我就跨進了移動App端自動化測試的大門,前生乃iOS程序猿一枚,好了,入正題~
Appium環境的搭建,本文主要講解一下Java環境配置、Android環境配置、Appium相關組件的安裝。
?Java環境配置
1、JDK安裝 :首先度娘下載JDK,傳送門http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html
第一步,點擊下載 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???
第二步,接受用戶協議,不點接受不能下載; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?第三步,根據自己系統下載對應的JDK,我的是Windows 64位,Windows 32位下載Windows X86那個
下載下來后點擊安裝,一直下一步默認安裝就行。。。。。。
全部默認設置就行(PS:第二張圖的JDK安裝地址在下面會用到)?
2、Java_Home與Path環境變量的配置
按照以上步驟就能找到Windows7添加環境變量的入口了
在新建里輸入變量名:“JAVA_HOME”和變量值,變量值就是上面安裝JDK的地址,我的是“C:\Program Files (x86)\Java\jdk1.7.0_45”,然后點擊確定。
以上為我添加JAVA_HOME的截圖
然后,添加Path環境變量,因為我的系統變量里已經存在Path變量,所以不用新建了,直接找到Path點擊編輯,直接把“%JAVA_HOME%\bin;”添加到變量值欄里就行了,注意分號隔開!
點擊確定,完成Path環境變量添加
3、Java環境驗證
點擊Windows鍵,輸入cmd,點擊第一個進入終端
輸入:”set“,回車查看JAVA_HOME配置成功,如上圖看到所示信息即可
輸入:”java ?-version“回車查看java版本信息,說明配置成功
?好了,Java環境配置就算基本完成了~
Android環境配置?
1、adt-bundle-windows的下載?
根據對應系統下載對應的adt,直接度娘adt-bundle-windows就能找到。給個64位windows7傳送門http://125.39.35.131/files/3074000007BDAD4A/dl.google.com/android/adt/adt-bundle-windows-x86_64-20140702.zip
adt解壓后大概就是這樣
2、Android_Home的配置和Path的添加
步驟與Java_Home的配置一樣,新建->變量名:“Android_Home”,變量值:你的adt解壓后,文件夾里sdk的地址,我的是“C:\adt-bundle-windows-x86-20140702\sdk”。然后在Path變量值里添加兩個路徑,步驟與上相同,分別是“%Android_Home%\tools”、“%Android_Home%\platform-tools”,注意添加到Path變量值里時用分號隔開。
3、Android環境驗證
重新打開cmd,?輸入set查看是否有上面添加的路徑。然后輸入"adb devices"回車,輸入“emulator”查看上面兩個環境配置是否成功。
如果未出現“xxx不是內部或外部命令,也不是可運行xxxx”,如上所示則成功了
現在Android環境搭建基本完成。
Appium相關組件安裝
1、安裝Node.js
度娘下載Node.js,雙擊一直默認安裝就行,傳送門https://nodejs.org/dist/v4.4.3/node-v4.4.3-x64.msi,安裝時把安裝地址記錄下來,到下面需要配置環境變量。
2、添加Path
把Node.js的安裝路徑添加到環境變量Path的變量值里,注意分號隔開,我的是“C:\Program Files\nodejs\”。?
3、安裝.Net Framework4.5
如果電腦已經安裝?.Net Framework4.5或者高于4.5則不用再安裝,基本大家都有安裝,可以直接略過,如果沒有安裝,直接度娘下載安裝一下就能解決。傳送門:http://www.microsoft.com/zh-cn/download/details.aspx?id=30653。
4、安裝Appium?
下載安裝Appium,默認安裝即可,傳送門:https://bitbucket.org/appium/appium.app/downloads/。個人推薦通過傳送門的圖像化界面下載安裝,方便簡單。(PS:也可在命令行輸入“npm install -g appium”,回車下載安裝,輸入“appium-doctor”驗證通過命令行是否安裝成功)
啟動Appium,雙擊Appium圖標就可以打開了,里面有啟動服務按鈕。?
Appium打開后的界面
?
?
?
二、Appium測試demo(Java版)
轉載2016-05-31 09:15:51
標簽:appium移動端自動化測試
上一節已經告訴大家Appium的環境搭建了,不知道大家都搭建的怎么樣了,我且說一下我身邊的小伙伴們遇到的問題吧。
1、有因為環境變量填寫有誤導致不成功,這個,就自己檢查盡量避免吧。
2、有通過其他途徑拷貝的Appium,安裝完后部分系統文件缺失導致啟動服務失敗。
這個的解決辦法就是,卸載壞掉的Appium,從我給的地址去下載對應版本的Appium,然后重新安裝。可能會遇到被墻的問題,再推薦一個靠譜的VPN,度娘Lantern,懶得找的直接傳送門?http://www.mfbuluo.com/lantern,或者去我的網盤直接download一份Windows版的?http://pan.baidu.com/s/1i4Wshal??。
言歸正傳,現在來說如何運行一個測試demo。首先,準備好一款模擬器、待測試的.apk包、測試會用到的相關jar包。
下載夜神模擬器
為了方便截屏和沒有安卓設備的用戶,先下載一個安卓模擬器,我這里下載的是夜神模擬器,度娘就能下到,樓樓家直通車?http://pan.baidu.com/s/1skLmEHB,當然,如果已經有真機或者更好的模擬器就不用下了。安裝好了之后有一個多開器和一個模擬器,點擊打開模擬器,如下圖。修改設備名稱,這個憑自己喜好,我取名是“VCan”,然后留意一下模擬器版本信息。
更改模擬器名稱
查看模擬器安卓版本信息(我的模擬器安卓系統是4.4.2版)
下載安裝待測試軟件
百度下載一個待測試的安卓安裝包?,比如度娘“新浪微博.apk”,懶癌晚期患者直接從我云盤下載?http://pan.baidu.com/s/1pLmvgb5?,然后直接把新浪安卓安裝包拖到模擬器里,模擬器就會自己安裝新浪微博,其他.apk安裝方法同理。在模擬器里手動點擊打開微博,確定安裝的沒有問題,能正常打開。接下來,獲取安裝包里啟動類名稱。打開終端cmd,先cd進入到剛才下載的“新浪.apk”目錄下,然后使用aapt dump badging xxx.apk命令獲取包內信息。注意,啟動類名稱一個字母都不能錯。
cd進入到你安裝包的目錄下
找到紅框字段,記下啟動類名稱,我這里是“com.sina.weibo.SplashActivity”
備注:如果提示aapt不是內部命令你在sdk \build-tools下的某個android版本中可以找到aapt.exe 文件,如: D:\software\test_tools\adt-bundle-windows-x86-20131030\sdk\build-tools\android-4.4
然后把該路徑添加到你的path 變量中,確定后重啟cmd, 輸入aapt就可以正常使用了。
下載相關jar包
??在一會兒的測試里會依賴相關測試jar包,我已經度娘過了,大家先從樓樓家直接download下來吧,傳送門?http://pan.baidu.com/s/1eRZgrPC?。至此,準備工作基本完畢,我們可以開工了!
正式測試Demo
??打開在上篇博客搭建環境時下載的adt文件夾,具體地址?adt-bundle-windows-x86-20140702\eclipse(PS:版本不同,地址里數字有出入),然后雙擊打開eclipse.exe 。
打開eclipse
左上角File->New->Java Project新建Java項目,項目名隨便,我取的是“VTest”
新建Java項目
選中新建的項目,右鍵,新建文件夾apps(PS:用來放安裝包apk文件),同理再新建一個lib文件夾(PS:用來放之前下的三個jar包)
新建文件夾
然后復制、粘貼,分別把“微博.apk”、三個jar包拷貝到apps文件夾和libs文件夾下。接著把jar包添加到構建路徑,方法是選中jar包,右鍵->Build Path->Add to Build Path,添加前與添加后的項目結構圖如下。
jar包添加到構建路徑
選中scr文件夾,右鍵New->Package新建包,名稱自己隨意取,我取的是“VTest”
新建包VTest
選中包,右鍵New->Class新建類,名稱隨意,我取的是VV,記得勾選添加main函數,途中已經標記,以后新建類時把添加mian函數的勾去掉即可。
新建類VV
雙擊打開VV類,將如下代碼拷貝至main函數里,完整代碼:
?String deviceName = "VCan";
String platformVersion = "4.4.2";
String apkName = "微博.apk";
String appActivity = "com.sina.weibo.SplashActivity";
String AppiumServerIP = "http://127.0.0.1:4723/wd/hub";
AndroidDriver driver;
File apk = new File(System.getProperty("user.dir")+File.separator+"apps"+File.separator+apkName);
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName", deviceName);
capabilities.setCapability("platformVersion", platformVersion);
capabilities.setCapability("app", apk);
capabilities.setCapability("appActivity", appActivity);
capabilities.setCapability("noSign", true);
capabilities.setCapability("noReset", true);
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);
注意30行處會有一個小錯誤,按照圖示方法,或者在第九行回車加上@throws MalformedURLException
此時,打開捕捉模擬器屏幕工具,具體路徑adt-bundle-windows-x86-20140702\sdk\tools,雙擊uiautomatorviewer.bat文件會彈出一個終端黑窗口,一直都不要關閉,然后雙擊zipalign.exe,然后會彈出模擬器截屏工具。
截屏工具打開后的樣子
打開模擬器,運行微博app,等進入到微博首頁后,點擊截屏工具的截屏按鈕進行截屏(PS:截屏工具菜單欄第二個按鈕,下圖有標注)。
注意,是先左圖模擬器運行出新浪新聞的畫面,在右圖點擊截屏
我們這次先做個簡單的,跑起來就行,所以就做一下點擊發布按鈕,然后點擊關閉收起發布界面這個簡單的操作。先在截屏工具里點擊發布按鈕,圖中箭頭1所示,然后把圖中箭頭2圈起來的resource-id復制出來(PS:以后測試里,很多時候都會用到resource-id來標記一個控件)。
獲取發布按鈕source-id
接下來,在模擬器上點擊一下發布按鈕,此時模擬器會彈出一個發布文字、圖片等的一個候選框,再次點擊截屏按鈕,獲取此時的模擬器屏幕,與上同。
獲取關閉發布按鈕source-id
通過代碼鎖定控件,并執行點擊操作。把如下代碼添加到剛才代碼片段后面,紅框內代碼如下:
Thread.sleep(3000);
System.out.println("App啟動等待時間");
Thread.sleep(4000);
driver.findElementById("com.sina.weibo:id/plus_icon").click();
driver.findElementById("com.sina.weibo:id/pop_control_bar_front_close_img").click();
Thread.sleep(2000);
driver.close();
driver.quit();
編碼實現需要自動化測試的步驟
打開Appium,點擊箭頭1所示按鈕,確定服務器地址與端口。點擊箭頭2所示按鈕,啟動Appium服務器。
確定端口信息與啟動Appium?
等待十秒左右,出現如圖輸出信息則說明啟動服務成功。
啟動Appium成功?
點擊模擬器右下角查看后臺進程按鈕,左滑殺掉微博進程,以后每次編譯運行時最好都提前殺掉后臺待測app進程,不然有時會鏈接服務器異常,編譯不能通過等問題。
殺掉微博后臺進程?
打開eclipse,選中VV類,右鍵Run As->Java Application,彈窗點擊OK就行,等待一會兒之后,模擬器里的新浪app會自動運行,然后自動點擊發布按鈕與關閉按鈕。
編譯運行測試代碼
保存更改
現在就等著自動編譯運行就好了,好了,我們的小demo也就算成功了,整個過程實在太長,這里就不繼續講了。這里有個運行起來的效果視頻,共享在樓樓家,大家可以下載下來看下,直通車?http://pan.baidu.com/s/1qXC1rfI?。然后,剛才寫的這點源代碼一并放上去,直通車地址?http://pan.baidu.com/s/1gfJf4oN。
根據電腦配置不同、模擬器或者真機的區別,運行起來的等待時間會有一定差別
小結
?整個流程基本完畢,這次的demo測試并沒有太多測試代碼,主要是讓大家能把demo跑起來。所以,先掌握測試流程。
然后說一下在整個流程中可能遇到的問題:
1、用截屏工具截屏失敗。
此時,把模擬器里該app后臺進程殺掉,重新手動進入。截屏前,都請手動進入,然后點擊截屏操作。?
2、Appium啟動失敗,提示端口已經被占用。
打開任務管理器,?查看進程。結束“node”進程,如果沒有,就結束“adb.exe”進程,然后再次點擊啟動服務器即可成功。
3、第一次編譯運行能成功,第二次運行就一次報錯不能編譯運行。
把模擬器里該app后臺進程殺掉,然后eclipse重新點擊編譯運行。如果還不行,查看代碼是否有語法錯誤。?
4、獲取source-id后不能點擊,或者運行到點擊時直接crash。
source-id獲取有誤,或者在該頁面有多個控件都是此source-id,此時需要用其他控件定位方式來定位控件。
常用定位控件方法:
driver.findElementById(“id”);?
driver.findElementByName(“name”);??
driver.findElementByClassName(“ClassName”);?
?driver.findElements(By.id(“id”)).get(index);
博文篇幅較長,請耐心實踐。如有不足,懇請指正,謝謝。?樓樓最近正在寫一個微信搶紅包,等完成再與大家一同分享哈~
?
轉載于:https://www.cnblogs.com/Susie-/p/9916311.html
總結
以上是生活随笔為你收集整理的appium 搭建及实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无法获得锁 /var/lib/dpkg/
- 下一篇: BZOJ 3694DTOJ 1972: