


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
【移動(dòng)應(yīng)用開發(fā)技術(shù)】Appium移動(dòng)自動(dòng)化框架
引言:Appium是一個(gè)移動(dòng)端自動(dòng)化測(cè)試開源工具,可以針對(duì)不同的平臺(tái)用一套API來編寫測(cè)試用例。本文對(duì)Appium自動(dòng)化測(cè)試框架的功能進(jìn)行了概括。本文選自《軟件自動(dòng)化測(cè)試開發(fā)》。引言:Appium是一個(gè)移動(dòng)端自動(dòng)化測(cè)試開源工具,可以針對(duì)不同的平臺(tái)用一套API來編寫測(cè)試用例。本文對(duì)Appium自動(dòng)化測(cè)試框架的功能進(jìn)行了概括。本文選自《軟件自動(dòng)化測(cè)試開發(fā)》。(1)支持iOS、Android,可在多臺(tái)機(jī)器上并行App自動(dòng)化,測(cè)試機(jī)型適配。
(2)代碼實(shí)現(xiàn)關(guān)鍵字驅(qū)動(dòng):測(cè)試集:關(guān)聯(lián)Excel測(cè)試用例和腳本配置。測(cè)試數(shù)據(jù):Excel存儲(chǔ)輸入數(shù)據(jù)、控件元素、測(cè)試結(jié)果。測(cè)試腳本:由Java和TestNG編寫,分層結(jié)構(gòu)有case、log、config、report以及data等。(3)自動(dòng)測(cè)試用例執(zhí)行:從功能測(cè)試用例中抽取需重復(fù)執(zhí)行的、主要的功能進(jìn)行用例覆蓋。支持用例failed(失敗)時(shí)自動(dòng)截屏。failed(失?。┯美詣?dòng)重復(fù)執(zhí)行數(shù)遍。(4)持續(xù)集成環(huán)境Jenkins,定時(shí)自動(dòng)構(gòu)建和執(zhí)行測(cè)試任務(wù)。測(cè)試結(jié)果報(bào)告展示,自動(dòng)郵件展示。Appium自動(dòng)化測(cè)試一個(gè)App的基本過程如下:測(cè)試App的基本過程基于Appium自動(dòng)化測(cè)試框架,我們要進(jìn)行的是連接電腦、連接手機(jī)、解鎖、安裝App、卸載App、啟動(dòng)App、元素定位、元素的操作、屏幕的操作、頁面等待、異常處理截圖、數(shù)據(jù)校驗(yàn)、日志、報(bào)告等一系列自動(dòng)化測(cè)試執(zhí)行的詳細(xì)過程。
Appium自動(dòng)化框架元素控件的捕獲,根據(jù)捕獲到的元素控件進(jìn)行相應(yīng)的操作。
Appium元素控件有多種定位方法,最常用的是元素的ID(即By.id)和元素的值(即B)。還可以通過元素類型TagName、元素的位置XPath、手機(jī)設(shè)備的坐標(biāo)等進(jìn)行定位操作。安卓的元素控件可以通過SDK中的uiautomatorviewer.bat文件進(jìn)行錄制和捕獲定位,如下圖所示。
上圖中,NodeDetail下面的resource-idcom.test.seller:id/phone_edit1對(duì)應(yīng)Excel和代碼中的定位方法By.id,控件元素?cái)?shù)據(jù)tex應(yīng)Excel和代碼中的操作方法sendkeys(),控件元素賦值數(shù)據(jù)
可以這樣理解:首先找到這個(gè)文本框,接著給這個(gè)文本框輸入數(shù)據(jù)。即通過ID屬性值com.test.seller:id/phone_edit1,找到此用戶名文本框的控件元素,然后通過sendkeys()方法輸入用戶名數(shù)此用戶名文本。其他自動(dòng)化測(cè)試步驟的定位方法、控件元素以及操作方法也都與此類似。實(shí)際上,自動(dòng)化測(cè)試就是通過程序代碼來實(shí)現(xiàn)模擬手動(dòng)測(cè)試去操作一遍的過程。
上面介紹了用戶名文本框輸入用sendkeys()方法,那么其他元素的操作方法有哪些呢?元素操作方法大致有單擊(click)、輸入(sendkeys)、元素滑動(dòng)、頁面滑動(dòng)、長(zhǎng)按、下拉、彈出、屏幕放大縮小等,最常用的就是單擊和輸入。
數(shù)據(jù)校驗(yàn)。其實(shí)元素本身就是數(shù)據(jù)校驗(yàn),當(dāng)程序找不到元素時(shí),用例就會(huì)失敗。
另外,測(cè)試用例時(shí)可以加入一個(gè)或多個(gè)斷言進(jìn)行驗(yàn)證數(shù)據(jù),還可設(shè)置步驟等待延遲時(shí)間。
測(cè)試結(jié)果。測(cè)試用例中記錄了運(yùn)行后的測(cè)試結(jié)果,如pass、failed或是skip。(此部分會(huì)在《軟件自動(dòng)化測(cè)試開發(fā)》第4章中進(jìn)行詳細(xì)講解)/20170105154316311?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYnJvYWR2aWV3MjAwNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast/20170105154323936?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYnJvYWR2aWV3MjAwNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast/20170105154330952?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYnJvYWR2aWV3MjAwNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEastAppium是一個(gè)移動(dòng)端自動(dòng)化測(cè)試開源工具,支持iOS和Android平臺(tái),支持Python、Java等語言,即同一套Java或Python腳本可以同時(shí)運(yùn)行在iOS和Android平臺(tái)。
Appium是跨平臺(tái)的,即可以針對(duì)不同的平臺(tái)用一套API來編寫測(cè)試用例。
Appium是一個(gè)C/S架構(gòu),核心是一個(gè)Web服務(wù)器,它提供了一套R(shí)EST的接口。當(dāng)收到客戶端的連接后,就會(huì)監(jiān)聽到命令,然后在移動(dòng)設(shè)備上執(zhí)行這些命令,最后將執(zhí)行結(jié)果放在HTTP響應(yīng)中返還給客戶端。Session自動(dòng)化始終圍繞一個(gè)Session(會(huì)話)進(jìn)行??蛻舳顺跏蓟粋€(gè)Session來與服務(wù)端交互,不同的語言有不同的實(shí)現(xiàn)方式,但是它們最終都是發(fā)送一個(gè)POST請(qǐng)求給服務(wù)端,請(qǐng)求中包含一個(gè)JSON對(duì)象,其被稱作“DesiredCapabilities”。此時(shí),服務(wù)端就會(huì)開啟一個(gè)自動(dòng)化的Session,然后返回一個(gè)SessionID,SessionID將會(huì)被用戶發(fā)送后續(xù)的命令。DesiredCapabilitiesDesiredCapabilities是一些鍵值對(duì)的集合(比如一個(gè)map或者h(yuǎn)ash)??蛻舳藢⑦@些鍵值對(duì)發(fā)送給服務(wù)端,告訴服務(wù)端我們想要怎樣測(cè)試。比如,我們可以把platformNamecapability設(shè)置為iOS,告訴Appium服務(wù)端,我們想要一個(gè)iOS的session,而不是一個(gè)Android的session。AppiumServer服務(wù)端AppiumServer是用Node.js寫的,我們既可以用源碼編譯,也可以從NPM直接安裝。
Appium服務(wù)端有很多語言庫,如Java、Ruby、Python、PHP、JavaScript以及C#等,這些庫都實(shí)現(xiàn)了Appium對(duì)WebDriver協(xié)議的擴(kuò)展。當(dāng)使用Appium的時(shí)候,你只需使用這些庫代替常規(guī)的WebDriver庫就可以了。AppiumClients客戶端此客戶端的概念不是我們傳統(tǒng)意義上的客戶端,更好的理解方式是一個(gè)擴(kuò)展的WebDriver協(xié)議庫,當(dāng)你用自己喜歡的語言寫case時(shí),會(huì)將該語言擴(kuò)展的WebDrvier庫添加到自己的環(huán)境中,這時(shí)你可以把它理解為這就是個(gè)客戶端。
AppiumClients客戶端的安裝包如下。
Mac機(jī)器上直接運(yùn)行Appium.dmg;Windows機(jī)器上運(yùn)行Appium.exe。AppiumAndroid/iOS工作原理API接口調(diào)用Selenium的接口,AppiumServer接收WebDriver標(biāo)準(zhǔn)請(qǐng)求,解析請(qǐng)求內(nèi)容,調(diào)用對(duì)應(yīng)的框架響應(yīng)操作。代碼將DesiredCapability中的鍵值對(duì)組合成一個(gè)JSON,然后通過HTTP協(xié)議發(fā)送到Appium服務(wù)器創(chuàng)建一個(gè)session。代碼與Appium的所有交互都是圍繞著這個(gè)session進(jìn)行的。session創(chuàng)建成功后,Appium再通過USB接口與手機(jī)之間創(chuàng)建TCP連接,先安裝一些服務(wù)端App,比如AndroidAPI4.2+是uiautomator,Android2.3+是Instrumentation;如果是iOS,則是UiAutomation。手機(jī)的操作都是由Appium發(fā)送指令到uiautomator,然后再由uiautomator進(jìn)行控制的。
Appium原理圖如下。
Appium的核心是一個(gè)遵守REST設(shè)計(jì)風(fēng)格的Web服務(wù)器,它接收客戶端的連接和命令,在手機(jī)設(shè)備上執(zhí)行命令,然后通過HTTP的響應(yīng)收集命令執(zhí)行的結(jié)果。這種架構(gòu)給我們提供了很好的開放特性:只要某種語言有HTTP客戶端的API,我們就可以通過這個(gè)語言寫自己的測(cè)試代碼。
本文選自《軟件自動(dòng)化測(cè)試開發(fā)》,點(diǎn)此鏈接可在博文視點(diǎn)官網(wǎng)查看。
/20170105154346427?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYnJvYWR2aWV3MjAwNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQk
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 三級(jí)人力資源管理師-三級(jí)人力資源管理師考試《理論知識(shí)》押題密卷4
- 閔行區(qū)廣場(chǎng)假山施工方案
- 2017-2018學(xué)年人教A版高中數(shù)學(xué)選修2-3課后提升訓(xùn)練七1222組合的綜合應(yīng)用
- 河北省武邑中學(xué)2017-2018學(xué)年高二下學(xué)期開學(xué)考試物理試題
- 新課程標(biāo)準(zhǔn)下初中道德與法治議題式教學(xué)實(shí)踐研究
- 2025年吸污車項(xiàng)目發(fā)展計(jì)劃
- 火化機(jī)安裝施工方案
- 冷飲供銷合同范例
- 上海 辦公租房合同范例
- 倉(cāng)庫防潮施工合同范例
- 幼兒園中班社會(huì)活動(dòng)《警察叔叔你真棒》課件
- 床旁血液凈化治療的原理及應(yīng)用
- 酒店標(biāo)準(zhǔn)間設(shè)計(jì)規(guī)范
- 醫(yī)療護(hù)理查對(duì)制度課件
- 環(huán)衛(wèi)車輛投標(biāo)方案(技術(shù)方案)
- 高速公路建設(shè)承攬合同
- 20以內(nèi)破十法練習(xí)題-A4打印版
- 工程指令單完整版本
- 物業(yè)公司人員培訓(xùn)及考核方案
- 數(shù)據(jù)中心容災(zāi)備份解決方案
- 七年級(jí)下冊(cè)第三單元名著導(dǎo)讀《駱駝祥子》公開課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)(公開課公開課一等獎(jiǎng)創(chuàng)新教案及作業(yè)設(shè)計(jì))
評(píng)論
0/150
提交評(píng)論