等10個(gè)文件試講appium介紹環(huán)境搭建_第1頁
等10個(gè)文件試講appium介紹環(huán)境搭建_第2頁
等10個(gè)文件試講appium介紹環(huán)境搭建_第3頁
等10個(gè)文件試講appium介紹環(huán)境搭建_第4頁
等10個(gè)文件試講appium介紹環(huán)境搭建_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

Appium介紹

與環(huán)境搭建龍騰育才講師:劉老師目標(biāo)

Appium思想與架構(gòu)Appium名詞

AppiumiOS/Android圖解

SeleniumJSON協(xié)議

Appium介紹

Android環(huán)境搭建Appium介紹Appium是一個(gè)自動化測試開源工具,支持iOS和Android平臺上的原生應(yīng)用,web應(yīng)用和混合應(yīng)用.移動原生應(yīng)用:是指那些用iOSSDK或者AndroidSDK寫的應(yīng)用。例如:酷狗音樂,美圖秀秀移動web應(yīng)用:是指使用移動瀏覽器訪問的應(yīng)用(Appium支持iOS上的Safari和Android上的Chrome)。例如:用手機(jī)端瀏覽器打開搶票助手混合應(yīng)用:是上面兩者的結(jié)合,通常是指原生應(yīng)用內(nèi)嵌了瀏覽器(即:原生代碼封裝網(wǎng)頁視圖——原生代碼和web內(nèi)容交互。)例如:天貓的活動頁面,攜程訂單詳情頁面,58同城的貼子等。重要的是,Appium是一個(gè)跨平臺的工具:它允許測試人員在不同的平臺(iOS,Android),使用不同的開發(fā)語言(JAVA,Python和Ruby等語言),使用同一套API來寫自動化測試腳本,這樣大大增加了iOS和Android測試代碼的復(fù)用性。Appium思想為了滿足移動自動化需求,Appium遵循著一種哲學(xué),重點(diǎn)體現(xiàn)于以下4個(gè)需求:·你無需為了自動化,而重新編譯或者修改你的應(yīng)用?!つ悴槐鼐窒抻谀撤N語言或者框架或者平臺來書寫和運(yùn)行測試代碼?!ひ粋€(gè)移動自動化的框架不應(yīng)該在接口上重復(fù)造輪子。(移動自動化的接口應(yīng)該統(tǒng)一)?!ぴ创a必須開源。Appium架構(gòu)Appium真正的工作引擎其實(shí)是第三方自動化框架。這樣,我們就不需在你的應(yīng)用里植入Appium相關(guān)或者第三方的代碼。這意味著你測試使用的應(yīng)用與最終發(fā)布的應(yīng)用并無二致。我們使用以下的第三方框架:iOS:蘋果的UIAutomationAndroid4.2+:Google'sUiAutomatorAndroid2.3+:Google'sInstrumentation.(Instrumentation由單獨(dú)的項(xiàng)目Selendroid提供支持)我們把這些第三方框架封裝成一套API,WebDriverAPI.WebDriver(也就是"SeleniumWebDriver")指定了客戶端到服務(wù)端的協(xié)議(JSONWireProtocol)。使用這種客戶端-服務(wù)端的架構(gòu),我們可以使用任何語言來編寫客戶端,向服務(wù)端發(fā)送恰當(dāng)?shù)腍TTP請求。目前已經(jīng)實(shí)現(xiàn)了大多數(shù)流行語言版本的客戶端,這意味著你可以使用任何測試套件或者測試框架??蛻舳藥炀褪呛唵蔚腍TTP客戶,可以以任何你喜歡的方式潛入你的代碼。換句話說,Appium和WebDriver客戶端不是技術(shù)意義上的“測試框架”,而是“自動化庫”。你可以在你的測試環(huán)境中隨意使用這些自動化庫Appium名詞1.C/S架構(gòu):Appium的核心是一個(gè)web服務(wù)器,它提供了一套REST的接口。它收到客戶端的連接,監(jiān)聽到命令,接著在移動設(shè)備上執(zhí)行這些命令,然后將執(zhí)行結(jié)果放在HTTP響應(yīng)中返還給客戶端。2.Session:自動化始終圍繞一個(gè)session進(jìn)行,客戶端初始化一個(gè)seesion(會話)來與服務(wù)端交互,不同的語言有不同的實(shí)現(xiàn)方式,但是他們最終都是發(fā)送為一個(gè)POST請求給服務(wù)端,請求中包含一個(gè)JSON對象,被稱作“desiredcapabilities”。此時(shí),服務(wù)端就會開啟一個(gè)自動化的session,然后返回一個(gè)sessionID,sessionID將會被用戶發(fā)送后續(xù)的命令。3.Desiredcapabilities:是一些鍵值對的集合(比如,一個(gè)map或者h(yuǎn)ash),客戶端將這些鍵值對發(fā)給服務(wù)端,告訴服務(wù)端我們想要怎么測試。比如,我們可以把platformNamecapability設(shè)置為iOS,告訴Appium服務(wù)端,我們想要一個(gè)iOS的session,而不是一個(gè)Android的。4.AppiumServerAppiumserver是用Node.js寫的。我們可以用源碼編譯或者從NPM直接安裝。Appium服務(wù)端有很多語言庫Java,Ruby,Python,PHP,JavaScript和C#,這些庫都實(shí)現(xiàn)了Appium對WebDriver協(xié)議的擴(kuò)展。當(dāng)使用Appium的時(shí)候,你只需使用這些庫代替常規(guī)的WebDriver庫就可以了。5.Appium.dmg,Appium.exe

提供了GUI封裝的Appium服務(wù)端下載,它封裝了運(yùn)行Appium服務(wù)端的所有依賴,而不需要擔(dān)心怎樣安裝Node.js。其中還包括一個(gè)Inspector工具(MAC機(jī)上才能用),可以幫助你檢查應(yīng)用的界面層級,這樣寫測試用例時(shí)更方便。AppiumiOS圖解當(dāng)我們執(zhí)行測試用例的時(shí)候,它通過JSON傳遞數(shù)據(jù),再由http請求發(fā)送給AppiumServer。AppiumServer發(fā)送命令給AppleInstruments,然后Instruments去查找bootstrap.js(此文件是由APPIUMServer安裝到IOS設(shè)備中的)。然后這些命令在IOSInstruments環(huán)境下被bootstrap.js執(zhí)行。當(dāng)執(zhí)行完命令以后,客戶端返回信息(包含信息的執(zhí)行命令的日志)給AppiumServer。

在IOS設(shè)備上,Appium使用蘋果的UIAutomationAPI去和UI元素去交互。UIAutomation是一個(gè)JS庫,它是由蘋果公司負(fù)責(zé)編寫的。Appium利用這些庫去自動化IOSAPP。在上述的圖中,我們可以看到UIAutomator/Selendroid代替了IOS的Instruments、Bootstrap.jar代替了bootstrap.js,其他的流程都是一致的。AppiumAndroid圖解APPIUM支持的Android版本需要API>=17,早期的版本,使用的是selendroid框架。當(dāng)我們執(zhí)行測試用例的時(shí)候,APPIUM發(fā)送命令給UIAutomator或者Selendroid。這里的bootstrap.jar扮演的是一個(gè)TCPserver的角色,它可以發(fā)送命令去執(zhí)行測試。在測試androidapp的時(shí)候,appium使用UIAutomator框架去自動化測試APP。UIAutomator是安卓開發(fā)人員開發(fā)的一款可以測試androidui的測試框架。我們先看看appium測試androidapp的結(jié)構(gòu)圖.SeleniumJSON協(xié)議(JSONWP)是一個(gè)傳輸方法,它是由WebDriver開發(fā)者開發(fā)的,這個(gè)協(xié)議是一組特定的預(yù)定義和標(biāo)準(zhǔn)化的端點(diǎn),它通過RESTfulAPI(接口測試相關(guān))去展現(xiàn)。WebDriver和JSONWP的目的就是為了通過瀏覽器(chrome、firefox和IE)去測試web站點(diǎn),APPIUM繼承了移動JSONWP協(xié)議,擴(kuò)展了SeleniumJSON協(xié)議,它可以控制不同的移動設(shè)備的行為,比如通過session安裝和卸載APP。

Appium底層就是通過Session來傳遞信息的。SeleniumJSON協(xié)議硬件軟件軟件安裝軟件配置Android環(huán)境搭建硬件:·一臺windows7或者win10的PC機(jī)(64位操作系統(tǒng)或32位操作系統(tǒng));·內(nèi)存至少4G;·CPU需要支持虛擬化加速技術(shù)(很重要)。移動設(shè)備測試機(jī):(最好使用移動設(shè)備,如果沒有也可以使用模擬器)軟件:1.安裝JDK,

1)下載地址:/technetwork/java/javase/downloads/index.html2)安裝

3)配置環(huán)境變量:

1、打開”開始->計(jì)算機(jī)->屬性->高級系統(tǒng)設(shè)置->環(huán)境變量“

2、設(shè)置環(huán)境變量(當(dāng)前最新的是1.8.0_25),如下:

JAVA_HOMED:\Android\Java\jdk1.8.0_25 classpath.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; path%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;4)檢查JAVA環(huán)境是否配置好 進(jìn)入CMD命令行,輸入java-version或javac-version,輸出版本號信息。2.安裝SDK,1)下載地址:/studio/index.html2)安裝

3)設(shè)置環(huán)境變量,如下:

ANDROID_HOME:D:\adt-bundle-mac-x86_64-20140702\sdk:,

path:D:\adt-bundle-mac-x86_64-20140702\sdk\tools;D:\adt-bundle-mac-x86_64-20140702\sdk\platform-tools

4)檢查是否安裝成功,運(yùn)行

adb或者adbshell3.安裝Node.js(Appium是使用nodejs實(shí)現(xiàn)的,node是解釋器,首先需要確認(rèn)安裝好。)1)下載地址:/en/download/ WINDOWS選擇‘WindowsInstaller(.msi)’,32位就下32bit,64就下64bit2)安裝

3)檢查安裝Nodejs是否成功:

CMD—->輸入node-v,可以看到版本號,說明成功了。4.安裝Python1)下載地址:/downloads/

我裝的是2.7版本

2)配置環(huán)境變量(一般也可以不配)如果想用pip.exe工具安裝軟件,需要配環(huán)境變量path==>d:\Python\Scripts3)檢查安裝Python是否成功:

cmd—>輸入python檢查是否安裝成功155.安裝Appium 1)下載地址:http://appium.io/2)安裝

3)配置環(huán)境變量:如果想通過命令行運(yùn)行APPIUM,需要配置環(huán)境變量path(E:\Appium\node_modules\.bin)4)檢查安裝Appium是否成功:進(jìn)入Cmd命令行,輸入appium-doctor,出現(xiàn)以下提示,AllChecksweresuccessful,說明環(huán)境成功。6.安裝Appium-Python-Client(是對webdriver原生api的一些擴(kuò)展和封裝。它可以幫助我們更容易的寫出用例,寫出更好懂的用例)三種下載方式:

1.appium的python客戶端,進(jìn)入cmd,輸入:pipinstallAppium-Python-Client

(pip工具在c:\Python\Scripts\pip.exe目錄下)

2.從git下載源碼包,下載地址:/appium/python-client

下載后解壓,在命令行中進(jìn)入python-client-master目錄,該目錄下包含setup.py文件 進(jìn)入后輸入pythonsetup.pyinstall命令安裝客戶端

3.下載tar.gz包,/pypi/Appium-Python-Client tar-xvfAppium-Python-Client-X.X.tar.gz cdAppium-Python-Client-X.X pythonsetup.pyinstall16Appium實(shí)例演示1.連接手機(jī)/模擬器2.開啟APPIUM服務(wù)后3.打開CMD窗口4.運(yùn)行python腳本,例子:demo.py17#-*-coding:utf-8-*-fromappiumimportwebdriverfromtimeimportsleepdesired_caps={}desired_ca

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論