appium教學(xué)資料_第1頁
appium教學(xué)資料_第2頁
appium教學(xué)資料_第3頁
appium教學(xué)資料_第4頁
appium教學(xué)資料_第5頁
已閱讀5頁,還剩124頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、匯聚智慧,動力無限匯聚智慧,動力無限 Appium自動化測試自動化測試培訓(xùn)課程培訓(xùn)課程匯聚智慧,動力無限匯聚智慧,動力無限目錄目錄第一章:了解自動化測試第二章:手機App自動化測試的初探第三章:App自動化測試的4大流行測試工具第四章:appium自動化測試的初步探究(配置與安裝)第五章:appium自動化測試的深入(使用)第六章:appium自動化測試的API介紹第七章:appium自動化測試的實戰(zhàn)練習(xí)匯聚智慧,動力無限匯聚智慧,動力無限第一章:認(rèn)識自動化測試第一章:認(rèn)識自動化測試 課程目標(biāo): 了解自動化測試的基礎(chǔ)知識 理解自動化測試的優(yōu)缺點匯聚智慧,動力無限匯聚智慧,動力無限 1.1: 自

2、動化測試就是把以人為驅(qū)動的測試行為轉(zhuǎn)化為機器執(zhí)行的一種過程。通常情況下,測試人員根據(jù)項目組的要求或者根據(jù)需求規(guī)格說明書在設(shè)計了測試用例并通過評審之后,由自動化測試人員盡可能的模擬測試用例中描述的規(guī)程一步步編寫自動化測試腳本,然后根據(jù)得到實際結(jié)果與期望結(jié)果進(jìn)行比較。得到測試最后的結(jié)果的這么一個過程。稱為自動化測試。常見的自動化測試工具有:QTP、Appium、Selenium、AutoRunner、SilkTest等等匯聚智慧,動力無限匯聚智慧,動力無限1) 需求變動不頻繁 自動化測試腳本的穩(wěn)定性決定了自動化測試的維護成本。如果軟件需求變動過于頻繁,測試人員需要根據(jù)變動的需求來更新測試用例以及相

3、關(guān)的測試腳本,而腳本的維護本身就是一個代碼開發(fā)的過程,會耗費很大一部分時間。如果自動化測試的開發(fā)周期超過了手工測試的測試周期,那么這個自動化測試就是失敗的(看項目組的具體決策)。 當(dāng)然,項目中的某些模塊相對穩(wěn)定,而某些模塊需求變動性很大。我們便可對相對穩(wěn)定的模塊進(jìn)行自動化測試,而變動較大的仍是用手工測試。匯聚智慧,動力無限匯聚智慧,動力無限 2) 項目周期足夠長自動化測試需求的確定、的設(shè)計、測試腳本的編寫與調(diào)試均需要相當(dāng)長的時間來完成,這樣的過程本身就是一個測試軟件的開發(fā)過程,需要較長的時間來完成。如果項目的周期比較短,沒有足夠的時間去支持這樣一個過程,那么自動化測試便成為笑談。 3) 自動化

4、測試腳本可重復(fù)使用如果費盡心思開發(fā)了一套近乎完美的自動化測試腳本,但是腳本的重復(fù)使用率很低,致使其間所耗費的成本大于所創(chuàng)造的經(jīng)濟價值,自動化測試便成為了測試人員的練手之作,而并非是真正可產(chǎn)生效益的測試手段了。 4)測試對象能盡可能的被自動化自動化測試是不是一定要按照需求規(guī)格書那樣的標(biāo)準(zhǔn)來編寫測試腳本?這里的答案就是測試人員能夠盡可能達(dá)到測試用例的標(biāo)準(zhǔn)即可,因為有些需求是無法用自動化測試來覆蓋測試的,自動化測試標(biāo)準(zhǔn)一般在項目開始之初便會制定下來,比如完成測試用例的70%覆蓋等等。匯聚智慧,動力無限匯聚智慧,動力無限1 1)第一代自動化測試即自動化測試思想剛開始誕生時,依靠的是傳統(tǒng)的“錄制-回放”

5、技術(shù),這種技術(shù)與現(xiàn)在的工具的“錄制-回放”思想不一樣,其其實就是一個“模擬”的過程,即模擬你對PC的操作而形成的,其基于你對鍵盤的輸入與對鼠標(biāo)的操作,原理與按鍵精靈等類似,這種機制對環(huán)境的依賴性太強,對變化性太過于敏感,因此不可能發(fā)展成一種規(guī)模。 2 2)第二代自動化測試即腳本化的自動化測試,利用腳本進(jìn)行結(jié)構(gòu)化的自動化測試,此可以應(yīng)用于CLI與API的自動化測試,在其就開始集成了模塊化與庫思想。 3 3)第三代自動化測試開始產(chǎn)生了各種自動化測試思想,包括數(shù)據(jù)驅(qū)動與關(guān)鍵字驅(qū)動思想,其伴隨著對象化思想的產(chǎn)生,而且也造就了現(xiàn)在一系列的自動化測試軟件,其實其中都集成了這些思想,從這時候開始,自動化就開

6、始實現(xiàn)了一定的規(guī)模,開始運用在各個行業(yè),并且發(fā)展趨勢越來越快。匯聚智慧,動力無限匯聚智慧,動力無限自動化測試一般應(yīng)用于功能測試和回歸測試更佳,在功能測試和回歸測試的環(huán)節(jié)下可以減少版本迭代時間的測試時間周期。匯聚智慧,動力無限匯聚智慧,動力無限 1)自動化測試需求的分析在項目滿足了自動化的前提條件,并確定在該項目中需要使用自動化測試時,我們便開始進(jìn)行自動化測試需求分析。此過程需要確定自動化測試的范圍以及相應(yīng)的測試用例、測試數(shù)據(jù),并形成詳細(xì)的文檔,以便與以后測試框架的建立。2)根據(jù)項目情況選擇相應(yīng)的自動化測試工具在需求既定的情況下,通常項目組會根據(jù)項目的實際情況選擇相應(yīng)的自動化測試工具,比如網(wǎng)頁w

7、eb測試的話選擇selenium、UFT等測試工具等等,選擇好了自動化測試工具后才能更好的進(jìn)行自動化測試。 3)自動化測試工具的環(huán)境搭建。選擇好了相應(yīng)的自動化測試工具后就搭建相應(yīng)的自動化測試的環(huán)境 4)項目版本發(fā)布下來后,根據(jù)測試用例編寫自動化腳本 5)執(zhí)行測試用例、出具測試報告匯聚智慧,動力無限匯聚智慧,動力無限 1)優(yōu)點: 提高測試效率和降低測試成本 實現(xiàn)快速的回歸測試,加快測試進(jìn)度從而加快產(chǎn)品發(fā)布進(jìn)度 更多的測試,提高測試覆蓋率 保證一致性 提高測試的可靠性,避免人為因素 2)缺點: 時間周期長、對測試人員技術(shù)要求高匯聚智慧,動力無限匯聚智慧,動力無限第二章第二章:手機手機App自動化測

8、試的初探自動化測試的初探課程目標(biāo):1 1:了解手機:了解手機appapp自動化測試主流工具自動化測試主流工具2 2:熟悉手機:熟悉手機appapp自動化測試流程自動化測試流程3 3:了解進(jìn)行:了解進(jìn)行appapp自動化測試測試人員需要的技能自動化測試測試人員需要的技能匯聚智慧,動力無限匯聚智慧,動力無限匯聚智慧,動力無限匯聚智慧,動力無限 2.1.1:calabash(ios/android)介紹:calabash是一款適用于ios、Android平臺的跨平臺應(yīng)用的測試框架,支持cucumber,開源并且免費,錄屬于Xamarin公司。通過calabash開發(fā)者可以對應(yīng)用進(jìn)行應(yīng)用多方位的測試,

9、比如截圖/手勢識別/實際功能代碼等等。但是目前國內(nèi)的論壇較少。匯聚智慧,動力無限匯聚智慧,動力無限 2.1.2:Frank(iOS)介紹:Frank也是一款深受開發(fā)者喜愛的iOS應(yīng)用測試框架,該框架可以模擬用戶操作對應(yīng)用程序進(jìn)行黑河測試,并幫助cucumber作為自然語言來編寫測試用例。此外,F(xiàn)rank還會對應(yīng)用測試操作進(jìn)行記錄,以幫助開發(fā)者進(jìn)行測試回顧匯聚智慧,動力無限匯聚智慧,動力無限匯聚智慧,動力無限匯聚智慧,動力無限 App自動化測試應(yīng)用的場景可以是在功能測試以及回歸測試和兼容性測試(android手機上非常有必要)上,對于比較好的app產(chǎn)品,如果只是簡單的版本功能的新增,在兼容性上可

10、以采用自動化測試,而針對升級的功能的部分可以采用手工測試代替自動化測試。匯聚智慧,動力無限匯聚智慧,動力無限匯聚智慧,動力無限匯聚智慧,動力無限1)計算機或通訊相關(guān)專業(yè)大專及以上學(xué)歷,2年以上測試或者開發(fā)工作經(jīng)驗2)至少熟練掌握一種編程語言,有Java/Python等使用經(jīng)驗者優(yōu)先3)熟悉App自動化測試及性能測試和接口測試工作4)熟悉Xcode,Android Studio,Android SDK的使用5)具有集成測試或白盒測試能力的優(yōu)先6)熟悉相關(guān)的測試流程、測試方法、測試等基本原理匯聚智慧,動力無限匯聚智慧,動力無限第三章:第三章:App自動化工具的使用介紹自動化工具的使用介紹 課程目標(biāo)

11、課程目標(biāo) 1:了解常用的幾種自動化工具 2:初步掌握常用的自動化工具的使用方法匯聚智慧,動力無限匯聚智慧,動力無限 3.1:App常用的自動化工具的分類:1:Monkey2:Monkeyrunner3:selendroid4:Appium(之后介紹)匯聚智慧,動力無限匯聚智慧,動力無限 3.2:Monkey介紹:3.2.1:什么是Monkey測試 Monkey是一個命令行工具,可以運行在模擬器里或?qū)嶋H設(shè)備中。它向系統(tǒng)發(fā)送偽隨機的用戶事件流,實現(xiàn)對正在開發(fā)的應(yīng)用程序進(jìn)行壓力測試。另外Monkey不是一個完全的自動化測試工具,它更多的應(yīng)用于android的UI的健壯性測試上。3.2.2:Monke

12、y測試的使用操作步驟: 1)下載安裝android SDKSDK里提供了一個android的模擬器在里面,同時也提供了uiaotomatorviwer的視圖查看工具,之后我們會利用Monkey結(jié)合android的虛擬機進(jìn)行Monkey測試 2)配置android的環(huán)境變量在window下先配置ANDROID_HOME環(huán)境,再配置path變量,具體操作如下:匯聚智慧,動力無限匯聚智慧,動力無限a:配置SDK的ANDROID_HOME變量b:配置path變量:%ANDROID_HOME%platform-tools;%ANDROID_HOME%tools;匯聚智慧,動力無限匯聚智慧,動力無限3)進(jìn)

13、入adb shell 使用monkey測試操作步驟: a:在cmd命令框下輸入 emulator avd test (備注:test為你本機的模擬器名稱) b:打開windows下的CMD的命令框,輸入adb shell c:在adb shell下進(jìn)入data下的data目錄,查看你需要進(jìn)行Monkey測試的應(yīng)用包名 d:輸入monkey p packagename v times 。其中packagename是包名的參數(shù) times是你要施加測試的次數(shù),比如:1000 比如輸入:monkey p com.example.sellclientapp v 1000 此時Monkey會向模擬器的s

14、ellclientapp應(yīng)用發(fā)送1000個偽點擊事件,達(dá)到健壯性測試的效果。下圖所示:匯聚智慧,動力無限匯聚智慧,動力無限 Monkey測試的操作結(jié)果:匯聚智慧,動力無限匯聚智慧,動力無限 3.3:MonkeyRunner的使用3.3.1:MonkeyRunner簡介 monkeyrunner工具提供了一個API,使用此API寫出的程序可以在Android代碼之外控制Android設(shè)備和模擬器。通過monkeyrunner,您可以寫出一個Python程序去安裝一個Android應(yīng)用程序或測試包,運行它,向它發(fā)送模擬擊鍵,截取它的用戶界面圖片,并將截圖存儲于工作站上。monkeyrunner工具

15、的主要設(shè)計目的是用于測試功能/框架水平上的應(yīng)用程序和設(shè)備,或用于運行單元測試套件,但您當(dāng)然也可以將其用于其它目的。另:monkeyrunner工具與monkey工具并無關(guān)聯(lián)。monkey工具直接運行在設(shè)備或模擬器的adbshell中,生成用戶或系統(tǒng)的偽隨機事件流。而monkeyrunner工具則是在工作站上通過API定義的特定命令和事件控制設(shè)備或模擬器。匯聚智慧,動力無限匯聚智慧,動力無限3.3.2:MonkeyRunner的特性: 1).多設(shè)備控制:monkeyrunner API可以跨多個設(shè)備或模擬器實施測試套件。您可以在同一時間接上所有的設(shè)備或一次啟動全部模擬器(或統(tǒng)統(tǒng)一起),依據(jù)程序依

16、次連接到每一個,然后運行一個或多個測試。您也可以用程序啟動一個配置好的模擬器,運行一個或多個測試,然后關(guān)閉模擬器。 2)功能測試: monkeyrunner可以為一個應(yīng)用自動貫徹一次功能測試。您提供按鍵或觸摸事件的輸入數(shù)值,然后觀察輸出結(jié)果的截屏。 3)回歸測試:monkeyrunner可以運行某個應(yīng)用,并將其結(jié)果截屏與既定已知正確的結(jié)果截屏相比較,以此測試應(yīng)用的穩(wěn)定性。 4) 可擴展的自動化:由于monkeyrunner是一個API工具包,您可以基于Python模塊和程序開發(fā)一整套系統(tǒng),以此來控制Android設(shè)備。除了使用monkeyrunner API之外,您還可以使用標(biāo)準(zhǔn)的Python

17、 os和subpress模塊來調(diào)用如adb這樣的Android工具。您還可以向monkeyrunner API中添加您自己的類。匯聚智慧,動力無限匯聚智慧,動力無限3.3.3:monkeyrunner的示例腳本匯聚智慧,動力無限匯聚智慧,動力無限 3.3.4:monkeyrunner部分Api1)安裝軟件:installPackage(路徑) 比如:device=mr.WaitForConnection() device.installPackage(myproject/bin/MyApplication.apk) 2)卸載removePackage (路徑) 比如:device=mr.Wai

18、tForConnection() removePackage(myproject/bin/MyApplication.apk) 3)等待時間的設(shè)定:MonkeyRunner.sleep(seconds) 比如:MonkeyRunner.sleep(20) 4)喚醒屏幕:MonkeyRunner.wake() 5)觸摸屏幕: device.touch(10,20,DOWN_AND_UP)匯聚智慧,動力無限匯聚智慧,動力無限6)執(zhí)行adb shell指令:device.shell(xxx) 7) home鍵:KEYCODE_HOME back鍵:KEYCODE_BACK send鍵:KEYCODE

19、_CALL end鍵:KEYCODE_ENDCALL 上導(dǎo)航鍵:KEYCODE_DPAD_UP 下導(dǎo)航鍵:KEYCODE_DPAD_DOWN 左導(dǎo)航:KEYCODE_DPAD_LEFT 右導(dǎo)航鍵:KEYCODE_DPAD_RIGHT ok鍵:KEYCODE_DPAD_CENTER 上音量鍵:KEYCODE_VOLUME_UP 下音量鍵:KEYCODE_VOLUME_DOWN power鍵:KEYCODE_POWER camera鍵:KEYCODE_CAMERA menu鍵:KEYCODE_MENU 舉例用法: device.press(KEYCODE_HOME,DOWN_AND_UP),點擊h

20、ome鍵 8) 重啟設(shè)備:device.reboot() 9)拖動, device.drag(200,300),(100,300),0.1,1) 其中:0.1為拖動時間,1為次數(shù) 10) device = MonkeyRunner.waitForConnection()if not device:print Please connect a device to start!else:print Start 匯聚智慧,動力無限匯聚智慧,動力無限 3.3.5MonkeyRunner上機任務(wù): 寫出sdk自帶模擬器的計算器測試腳本,自動化測試內(nèi)容:1:隨機產(chǎn)生10個數(shù),每出現(xiàn)一個數(shù)就點擊計算器的一個

21、數(shù)字按鍵(提示:if語句)2:截圖,截圖后對比前后2張截圖相識度為90%的情況,提示(sameas)匯聚智慧,動力無限匯聚智慧,動力無限 3.4.1:selendroid的簡介 Selendroid 是一個測試自動化框架,支持 Android 的原生應(yīng)用,混合應(yīng)用和移動 Web。軟件測試工程師可以使用 Selenium 2 的客戶端 API 來寫自動化測試腳本。Selendroid由eBay Software FoundationeBay Software Foundation發(fā)起的一個開源項目,由眾多人士支持。目前代碼 base 在github上。 3.4.2:selendroid支持的設(shè)備

22、Selendroid 支持且僅支持 Android 的模擬器和真機。同時可以集成到 Selenium Grid 中去 進(jìn)行大規(guī)?;蛘卟l(fā)測試。匯聚智慧,動力無限匯聚智慧,動力無限 3.4.3:selendroid的特性:完全兼容 Webdriver 的 JSON Wire Protocol(基于selenium2生成)不需要為了自動化修改被測應(yīng)用使用一個 Android webview 應(yīng)用來測試移動網(wǎng)頁原生和混合應(yīng)用自動化采用同樣的理念使用不同的定位方式來查找 UI 元素支持手勢:高級用戶交互接口Selendroid 可以同時和多臺設(shè)備(模擬器或者真機)交互可以自動啟動模擬器.匯聚智慧,動力

23、無限匯聚智慧,動力無限 3.4.4:Selendroid 有四大組件:1)Selendroid-Client:Java 客戶端,連接java客戶端(基于Selenium Webdriver API 實現(xiàn)的)2)Selendroid-Server:運行在安卓設(shè)備中 instrumentation server。通過selendroid.apk文件HttpServer 實現(xiàn)了 Selenium Webdiver 的協(xié)議3)AndroidDriver-App:一個 android webview 應(yīng)用,用來測試移動網(wǎng)頁的。4)Selendroid-Standalone:大管家,負(fù)責(zé)將 Selendr

24、oid-Server 和 被測應(yīng)用安裝到設(shè)備中去,同時負(fù)責(zé)管理不同的安卓設(shè)備。5)其中 selendroid-standalone.jar 包含了 standalone-server, selendroid-server 和 selendroid-client driver。6)啟動inspector:http:/localhost:4444/inspector匯聚智慧,動力無限匯聚智慧,動力無限 3.4.5:啟動Selendroid:使用大管家selendroid-standalone-version-with-dependencies.jar包啟動selendroid模式,然后直接使用以下

25、命令就可以啟動: java -jar selendroid-standalone-0.15.0-with-dependencies.jar -app selendroid-test-app-0.15.0.apk-app 參數(shù):android應(yīng)用的包名 目前selendroid-standalone-version-with-dependencies.jar最新版本是 0.17.0,穩(wěn)定版本是 0.15.0,我們使用0.15.0版本作為課程的引入Selendroid-standalone會開啟一個http服務(wù)器,您可以http:/localhost:4444/wd/hub/status來查詢你的

26、設(shè)備和應(yīng)用情況。匯聚智慧,動力無限匯聚智慧,動力無限 3.4.6:selendroid啟動參數(shù):1)-h, -help-h, -help打印幫助信息2) -port -port指定監(jiān)聽端口,默認(rèn) 44443) -deviceLog -deviceLog是否激活 adb 日志。4) -logLevel -logLevel指定日志級別,默認(rèn)是:ERROR,可選有:ERROR,WARNING,INFO,DEBUG 和 VERBOSE匯聚智慧,動力無限匯聚智慧,動力無限 3.4.7:第一個測試用例:python:匯聚智慧,動力無限匯聚智慧,動力無限:Python中webdriver的簡介

27、:webdriver的是一個Web應(yīng)用程序測試自動化工具,用來驗證程序是否如預(yù)期的那樣執(zhí)行。它的目的是提供一個友好的API,比seleniumRC(1.0)API更容易使用,這將有助于使你的測試腳本更容易閱讀和維護。它不依賴于任何特定的測試框架,所以它可以用于單元測試或者一個老式的“main”方法中。匯聚智慧,動力無限匯聚智慧,動力無限 java:匯聚智慧,動力無限匯聚智慧,動力無限3.4.8Selendroid的部分的部分Api介紹介紹(java)1).click(); 對控件進(jìn)行點擊按鈕操作 2) sendKeys(); 對控件輸入相關(guān)文字(漢字除外) 3) Thread.sleep(30

28、00); 暫停好多時間 4) WebElement ele = driver.findElement(By.id(控件的ID名); 獲取id控件,操作ID控件 5)WebElement ele = driver.findElement(B(“控件的name名); 6)3.滑動WebElement ele= driver.findElement(By.id(webElementID);TouchActions flick = new TouchActions(driver).flick(ele,對于控件ele滑動到目標(biāo)位置x軸的位移值, 對于控件ele滑動到目標(biāo)位置y軸的位移值, 滑

29、動速度)flick.perform(); 7)由于WebElement ele = driver.findElement(By.xpath(“控件的xpath路徑”)這種方法在inspector自動生成的腳本中都無法識別,估不建議使用該方法定位元素匯聚智慧,動力無限匯聚智慧,動力無限7)獲取控件的值控件為輸入框時,返回輸入框中的值;控件為按鈕時,返回按鈕上的值;等等。driver.findElement(By.id(控件的ID名).getText();8)查看控件的類型driver.findElement(By.id(控件的ID名).getTagName()9)判斷當(dāng)前焦點是否在控件上 dri

30、ver.findElement(By.id(控件的ID名).getAttribute(selected);10)判斷單選/復(fù)選框控件是否被選中 driver.findElement(By.id(控件的ID名).getAttribute(checked);11)判斷當(dāng)前控件是否可用driver.findElement(By.id(控件的ID名).getAttribute(enabled);匯聚智慧,動力無限匯聚智慧,動力無限3.4.9:練習(xí):使用selendroid寫出ride應(yīng)用的登錄模塊。并輸入測試賬號密碼“123456”,然后點擊登錄。匯聚智慧,動力無限匯聚智慧,

31、動力無限第四章:第四章:Appium的初步探究的初步探究(安裝與配置安裝與配置) 4.1:Appium工具的簡介:Appium是一個開源、跨平臺的測試測試框架,可以用來測試原生及混合的移動移動端應(yīng)用。Appium支持模擬器(iOS,F(xiàn)irefoxOS,Android)和真機(iOS, Android, FirefoxOS)上的原生應(yīng)用,混合應(yīng)用和移動web 應(yīng)用。Appium使用WebDriver的json wire協(xié)議,來驅(qū)動Apple系統(tǒng)的UIAutomation庫、Android系統(tǒng)的UIAutomator框架。Appium對IOS系統(tǒng)的支持得益于Dan Cuellars對于IOS自動化

32、的研究。Appium也集成了Selendroid,來支持老android版本。(注意: 官方網(wǎng)址:http:/appium.io/。另Android自動化要求:Android SDK API版本 = 17,即android版本高于4.2。Iphone自動化要求在Mac os操作系統(tǒng),Mac OS X 10.7或者更高版本,其中穩(wěn)定版本為10.8.4版本。)匯聚智慧,動力無限匯聚智慧,動力無限 4.1.2為什么選擇Appium 1)測試人員不用重新編譯應(yīng)用或者以其他方式修改他,因為Appium在所有平臺上使用標(biāo)準(zhǔn)的自動化Api 2)測試人員可以使用任何測試框架驅(qū)動appium。Appium基于w

33、eb driver協(xié)議,該協(xié)議已經(jīng)成為事實上的國際標(biāo)準(zhǔn)。不要把自己鎖進(jìn)一個專有的協(xié)議中 3)測試人員可以使用自己喜歡的開發(fā)工具,可以使用任何兼容web driver的語言,比如java、object_c、javascript、node.js、php、python等等,并基于selenium webdriver api和特定語言的客戶端庫來實現(xiàn)自動化測試匯聚智慧,動力無限匯聚智慧,動力無限 4.1.3:Appium的設(shè)計理念: 第一:測試人員為了自動化測試而去重新編譯應(yīng)用或者以任何方式修改它 第二:基于Appium編寫自動化測試時,不會將測試人員局限在特定的語言和框架上 第三:移動自動化測試框架

34、不應(yīng)該另起爐灶,搞一套自己獨有的自動化API 第四:移動自動化測試框架應(yīng)該是開源的匯聚智慧,動力無限匯聚智慧,動力無限 4.2:玩轉(zhuǎn)Appium需要的技能:(1)建立自動化思維(2)了解android開發(fā)的一些基礎(chǔ)原理,比如“package”、 “activity”等(3)具有一定的python或者java基礎(chǔ),建議初學(xué)者學(xué)python,比較容易。(4)有相關(guān)的selenium基礎(chǔ),Appium使用的是selenium webdriver protocol。(5)了解android sdk 和iphone的sdk相關(guān)工具的使用匯聚智慧,動力無限匯聚智慧,動力無限4.3:Appium工具的特點:

35、1)你無需為了自動化,而重新編譯或者修改你的應(yīng)用。 2)你不必局限于某種語言或者框架來寫和運行測試腳本。 3)一個移動自動化的框架不應(yīng)該在接口上重復(fù)造輪子。(移動自動化的接口應(yīng)該統(tǒng)一) 4)無論是精神上,還是名義上,都必須開源。(譯于官方)4.4:appium支持平臺:1)ios2)android3)firefoxos【火狐系統(tǒng)】另:腳本編寫可以在linux/mac/windows等系統(tǒng)下進(jìn)行編寫,通常在windows和mac下編寫匯聚智慧,動力無限匯聚智慧,動力無限4.5:android自動化真機測試要求:1)android真機測試:a:在desired_caps設(shè)置devicename為a

36、ndroidb:代碼里appactivity和waitactivity一定要和appium設(shè)置的內(nèi)容一致c:打開android手機的“usb調(diào)試”功能匯聚智慧,動力無限匯聚智慧,動力無限2)iphone真機測試:a:需要一個蘋果開發(fā)者賬號和開發(fā)者證書b:需要1臺mac系統(tǒng)(有 xcode和xcode command line 的 蘋果系統(tǒng))c:iphone的udid與app簽名匯聚智慧,動力無限匯聚智慧,動力無限 4.6:appium的inspector的使用條件:1:在真機連接的狀態(tài)下,并告訴appium你的真機機型名稱2:有測試app在windows下的安裝路徑3:啟動inspect的時候

37、點擊“refresh”即可匯聚智慧,動力無限匯聚智慧,動力無限 4.7:appium的配置和安裝(python)4.7.1安裝jdk:步驟一: 安裝JDK (版本1.7)選擇安裝目錄 安裝過程中會出現(xiàn)兩次 安裝提示 。第一次是安裝 jdk ,第二次是安裝 jre 。建議兩個都安裝在同一個java文件夾中的不同文件夾中。(不能都安裝在java文件夾的根目錄下,jdk和jre安裝在同一文件夾會出錯)如下圖所示匯聚智慧,動力無限匯聚智慧,動力無限步驟二:1:安裝jdk 隨意選擇目錄 只需把默認(rèn)安裝目錄 java 之前的目錄修改即可2:安裝jre更改 java 之前目錄和安裝 jdk 目錄相同即可注:

38、若無安裝目錄要求,可全默認(rèn)設(shè)置。無需做任何修改,兩次均直接點下一步匯聚智慧,動力無限匯聚智慧,動力無限步驟三: 安裝完JDK后配置環(huán)境變量 計算機屬性高級系統(tǒng)設(shè)置高級環(huán)境變量 匯聚智慧,動力無限匯聚智慧,動力無限步驟四: 系統(tǒng)變量新建 JAVA_HOME 變量 。變量值填寫jdk的安裝目錄(本人是 C:Javajdk1.7.0) 匯聚智慧,動力無限匯聚智慧,動力無限步驟五:系統(tǒng)變量尋找 Path 變量編輯在變量值最后輸入 %JAVA_HOME%bin;%JAVA_HOME%jrebin;(注意原來Path的變量值末尾有沒有;號,如果沒有,先輸入;號再輸入上面的代碼匯聚智慧,動力無限匯聚智慧,動

39、力無限步驟六:系統(tǒng)變量新建 CLASSPATH 變量變量值填寫 .;%JAVA_HOME%lib;%JAVA_HOME%libtools.jar(注意最前面有一點)系統(tǒng)變量配置完畢匯聚智慧,動力無限匯聚智慧,動力無限步驟七:步驟七:檢驗是否配置成功 運行cmd 輸入 java version與javac (java 和 -version 之間有空格)若如圖所示 顯示版本信息 則說明安裝和配置成功。匯聚智慧,動力無限匯聚智慧,動力無限步驟一:點擊“python-2.7.5.msi”進(jìn)行安裝。備注:python3.0以上對appium兼容性不是很好,建議2.7版本4.7.2:python客戶端的安

40、裝匯聚智慧,動力無限匯聚智慧,動力無限步驟二: 配置環(huán)境變量在path環(huán)境變量下配置python的安裝路徑匯聚智慧,動力無限匯聚智慧,動力無限步驟三:檢查python環(huán)境,在cmd命令行中輸入:python。出現(xiàn)下圖所示驗證安裝成功匯聚智慧,動力無限匯聚智慧,動力無限4.7.3:安裝apache Ant步驟一:安裝Apache Ant(/bindownload.cgi)。解壓縮文件夾,并把路徑加入環(huán)境變量:變量:path:ANT_HOME D:antapache 環(huán)境變量:path %ANT_HOME/bin匯聚智慧,動力無限匯聚智慧,動力無限匯聚智慧,

41、動力無限匯聚智慧,動力無限步驟二:驗證ant-apache是否安裝成功 cmd輸入ant即可,顯示下圖代表安裝成功匯聚智慧,動力無限匯聚智慧,動力無限4.7.4:安裝配置Android sdk步驟一:下載最新版本的sdk配置運行環(huán)境配置變量:ANDROID_HOME:E:adtadtsdk配置path變量:path:%ANDROID_HOME%platform-tools;%ANDROID_HOME%tools;匯聚智慧,動力無限匯聚智慧,動力無限 步驟二:檢驗sdk環(huán)境是否配置成功在cmd窗口下輸入adb shell,顯示以下內(nèi)容為配置成功匯聚智慧,動力無限匯聚智慧,動力無限4.7.5 安裝

42、配置 appium 步驟一:在windows下我們使用的.exe執(zhí)行文件,估安裝很方便,直接一鍵安裝即可匯聚智慧,動力無限匯聚智慧,動力無限 步驟二:檢查appium是否安裝成功在cmd中輸入:appium-doctor即可,顯示下面內(nèi)容表示安裝成功匯聚智慧,動力無限匯聚智慧,動力無限4.7.6:python client 的安裝 步驟一:安裝python client tar -xvf Appium-Python-Client-X.X.tar.gz(windows上用7zip可以解壓) cd Appium-Python-Client-X.X python setup.py install匯聚

43、智慧,動力無限匯聚智慧,動力無限 步驟二:安裝pythontools匯聚智慧,動力無限匯聚智慧,動力無限4.7.7:安裝appium步驟一:安裝匯聚智慧,動力無限匯聚智慧,動力無限 步驟二:配置環(huán)境變量配置appium的path變量:D:Appiumnode_modules.bin;D:Appium; 匯聚智慧,動力無限匯聚智慧,動力無限第五章:第五章:appium的使用(的使用(android) 5.1:查看Appium關(guān)于webdriver的API- python -m pydoc -p 4567- 瀏覽器中訪問http:/localhost:4567/appium.webdriver.w

44、ebdriver.html- 此時系統(tǒng)就會打印出appium的webdriver的api。匯聚智慧,動力無限匯聚智慧,動力無限匯聚智慧,動力無限匯聚智慧,動力無限5.2:desired_capablitiescaps的用法:1) desired_caps=:先聲明desire-caps是一個字典2)desired_capsautomationName:Appium (默認(rèn)) 或 Selendroid(測試選用引擎)3) desired_capsplatformName:ios或者android或者Firefoxos(測試的系統(tǒng)類型)4) desired_capsplatformVersion:

45、手機的操作系統(tǒng)的版本:4.4.0、ios的8.0等等5)desired_capsdeviceName:手機名稱:注意:ios要使用instruments -s devices得到6) desired_capsappPackage:啟動的手機app的包名7) desired_capsappActivity:啟動的手機app的活動頁8) desired_capsbrowserName:啟動的手機瀏覽器:如:ios的Safari,android的Chrome”或者”browser9)desired_capsnewCommandTimeout:命令超時的時間:比如60s匯聚智慧,動力無限匯聚智慧,動力

46、無限10) desired_capsfullReset:重置被測對象數(shù)據(jù):true/false11)desired_capsnoReset:不要在回話前重置應(yīng)用12) desire_capsappWaitActivity:你想要等待啟動的活動頁13) desire_capsavd :需要啟動的安卓模擬器設(shè)備14)desire_caps unicodeKeyboard:啟動這個輸入法,true/false匯聚智慧,動力無限匯聚智慧,動力無限匯聚智慧,動力無限匯聚智慧,動力無限5.3:appium的log日志的分析:啟動REST,默認(rèn)監(jiān)聽本地4723端口,用于接收客戶端發(fā)過來的JSON格式的命令指

47、示。根據(jù)客戶端提供的capabilities指示建立一個Android Sesision用于跟客戶端保持后續(xù)通信匯聚智慧,動力無限匯聚智慧,動力無限通過”adb devices“命令檢查安卓手機是否已經(jīng)準(zhǔn)備好通過manifest文件來獲取app的activity和package匯聚智慧,動力無限匯聚智慧,動力無限安卓手機shell調(diào)用命令獲得機器的API Level是否已經(jīng)超過16.通過adb執(zhí)行相應(yīng)的shell命令檢查目標(biāo)應(yīng)用是否已經(jīng)存在目標(biāo)機器上清理目標(biāo)應(yīng)用運行環(huán)境匯聚智慧,動力無限匯聚智慧,動力無限建立Appium Server到目標(biāo)機器上的端口轉(zhuǎn)發(fā)把AppiumBootstrap.ap

48、k push到目標(biāo)設(shè)備把appium.apk和unlock.apk push到目標(biāo)機器匯聚智慧,動力無限匯聚智慧,動力無限檢查uiautomator是否在運行5.4:appium的錄制與回放功能的錄制與回放功能appium和其他的自動化測試工具一樣,也具有最基礎(chǔ)的錄制與回放功能,該功能作為自動化測試的入門基礎(chǔ)部分,故此需要入門的同學(xué)可以學(xué)習(xí)一下該部分內(nèi)容,另錄制與回放功能在windows下的appium的客戶端是沒有該功能的,只有在mac的appium客戶端才有該功能,所以在此就不再一一進(jìn)行演示。匯聚智慧,動力無限匯聚智慧,動力無限第六章:第六章:appium部分部分API介紹(介紹(pyth

49、on)Appium對python的api支持還是很好的,部分API是繼承的object基類寫成。今天我們就針對python來學(xué)習(xí)appium的部分API匯聚智慧,動力無限匯聚智慧,動力無限 API介紹介紹: 1).contextscontexts(self): Returns the contexts within the current session. 返回當(dāng)前會話中的上下文,使用后可以識別H5頁面的控件用法 driver.contexts(該方法一般用于混合型app)contexts=self.driver.contextsfor cotext in contexts:print cot

50、ext 根據(jù)輸出的信息,如果有WebView信息的時候,可以切換:driver.switch_to.context(WEBVIEW)或是 driver.context(“WEBVIEW”)匯聚智慧,動力無限匯聚智慧,動力無限 2). current_contextcurrent_context(self): Returns the current context of the current session. 返回當(dāng)前會話的當(dāng)前上下文 :Usage: driver.current_context用法driver. current_context匯聚智慧,動力無限匯聚智慧,動力無限 3). co

51、ntextcontext(self): Returns the current context of the current session. 返回當(dāng)前會話的當(dāng)前上下文。 :Usage: driver.context用法driver. Context匯聚智慧,動力無限匯聚智慧,動力無限 4). find_element_by_ios_uiautomationfind_element_by_ios_uiautomation(self, uia_string):Finds an element by uiautomation in iOS.(只能用于ios系統(tǒng)) 通過iOS uiautomatio

52、n查找元素 :Args: - uia_string - The element name in the iOS UIAutomation library :Usage: driver.find_element_by_ios_uiautomation(.elements()1.cells()2)用法dr. find_element_by_ios_uiautomation(elements)匯聚智慧,動力無限匯聚智慧,動力無限 5). find_element_by_accessibility_idfind_element_by_accessibility_id(self, id):Finds a

53、n element by accessibility id. 通過accessibility id查找元素 :Args: - id - a string corresponding to a recursive element search using the Id/Name that the native Accessibility options utilize :Usage: driver.find_element_by_accessibility_id()用法driver.find_element_by_accessibility_id(id)匯聚智慧,動力無限匯聚智慧,動力無限 6)

54、.scrollscroll(self, origin_el, destination_el):Scrolls from one element to another 從元素origin_el滾動至元素destination_el :Args: - originalEl - the element from which to being scrolling - destinationEl - the element to scroll to :Usage: driver.scroll(el1, el2)用法 driver.scroll(el1,el2)匯聚智慧,動力無限匯聚智慧,動力無限 7).

55、 drag_and_dropdrag_and_drop(self, origin_el, destination_el):Drag the origin element to the destination element 將元素origin_el拖到目標(biāo)元素destination_el :Args: - originEl - the element to drag - destinationEl - the element to drag to用法 driver.drag_and_drop(el1,el2)匯聚智慧,動力無限匯聚智慧,動力無限 8.taptap(self, positions

56、, duration=None):Taps on an particular place with up to five fingers, holding for a certain time模擬手指點擊(最多五個手指),可設(shè)置按住時間長度(毫秒) :Args: - positions - an array of tuples representing the x/y coordinates of the fingers to tap. Length can be up to five. - duration - (optional) length of time to tap, in ms

57、:Usage: driver.tap(100, 20), (100, 60), (100, 100), 500)用法 driver.tap(x,y),(x1,y1),500)匯聚智慧,動力無限匯聚智慧,動力無限 9. swipeswipe(self, start_x, start_y, end_x, end_y, duration=None):Swipe from one point to another point, for an optional duration. 從A點滑動至B點,滑動時間為毫秒 :Args: - start_x - x-coordinate at which to s

58、tart - start_y - y-coordinate at which to start - end_x - x-coordinate at which to stop - end_y - y-coordinate at which to stop - duration - (optional) time to take the swipe, in ms. :Usage: driver.swipe(100, 100, 100, 400)用法 driver.swipe(x1,y1,x2,y2,500)匯聚智慧,動力無限匯聚智慧,動力無限 10.flickflick(self, start_

59、x, start_y, end_x, end_y):Flick from one point to another point. 按住A點后快速滑動至B點 :Args: - start_x - x-coordinate at which to start - start_y - y-coordinate at which to start - end_x - x-coordinate at which to stop - end_y - y-coordinate at which to stop :Usage: driver.flick(100, 100, 100, 400)用法 driver

60、.flick(x1,y1,x2,y2)匯聚智慧,動力無限匯聚智慧,動力無限 11.pinchpinch(self, element=None, percent=200, steps=50):Pinch on an element a certain amount 在元素上執(zhí)行模擬雙指捏(縮小操作) :Args: - element - the element to pinch - percent - (optional) amount to pinch. Defaults to 200% - steps - (optional) number of steps in the pinch act

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論