999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Appium的手機應(yīng)用程序自動化測試研究

2017-03-06 00:25:06姚炯
軟件導(dǎo)刊 2017年1期

姚炯

摘要摘要:隨著智能手機應(yīng)用的深入,智能手機應(yīng)用程序也逐步從輕量級應(yīng)用向更復(fù)雜的應(yīng)用演化,應(yīng)用端的自動化測試顯得日益重要。現(xiàn)階段手機應(yīng)用測試都會遇到平臺兼容性不佳和測試效率較低等問題,選擇和搭建一個基于手機應(yīng)用測試的自動化測試框架十分必要。選用時下兼容性和穩(wěn)定性都較強的自動化測試框架Appium,通過研究其主要特性和工作原理,搭建了一個跨平臺的手機自動化測試框架,解決了一些手機自動化測試難點,實現(xiàn)了一個具有高兼容性和易用性的跨平臺自動化測試項目,通過比較評估了實際測試效果。

關(guān)鍵詞關(guān)鍵詞:Appium;手機自動化測試;測試框架

DOIDOI:10.11907/rjdk.162237

中圖分類號:TP319文獻標識碼:A文章編號文章編號:16727800(2017)001012904

引言

自動化測試是隨軟件開發(fā)技術(shù)一并發(fā)展的一種測試技術(shù)。軟件測試包括白盒測試與黑盒測試,而自動化測試最早使用白盒測試中的單元測試。這種測試方式較為高效,易于實現(xiàn)。黑盒自動化測試興起稍晚,但目前應(yīng)用也非常廣泛。黑盒自動化測試原理是用程序和腳本模擬用戶的操作行為,通過智能方式驗證軟件的關(guān)鍵檢查點。在桌面軟件和Web技術(shù)興盛時代,涌現(xiàn)出大量優(yōu)秀的自動化測試工具如QTP和webdriver[1],這些工具經(jīng)過不斷完善已經(jīng)逐步成熟,能夠較好地滿足傳統(tǒng)應(yīng)用的自動化測試需求。

智能手機的應(yīng)用帶來軟件測試技術(shù)新的革命,相比于傳統(tǒng)測試,手機測試在硬件上脫離了PC的傳統(tǒng)架構(gòu),和用戶的交互方式存在很大區(qū)別。手機軟件在使用上具有獨特的操作方式,比如用戶的滑動、觸摸和點擊等操作,如何實現(xiàn)手機客戶端上的自動化腳本執(zhí)行[2]成為這類測試的難點。又由于IOS和Android兩大平臺的市場格局,大部分手機應(yīng)用都需要支持多個平臺,它們的基礎(chǔ)架構(gòu)不盡相同,使得手機自動化測試框架對兼容性有了更高要求。要做好手機客戶端的自動化測試,首先要解決測試腳本的健壯性和平臺的兼容性問題。

近幾年手機客戶端自動化工具發(fā)展較快,出現(xiàn)了不少自動化框架,比如基于Android平臺的UiAutomator和Robotium,IOS自帶的Instrument等,但是這些工具都沒有有效解決平臺兼容性問題,無法用一個統(tǒng)一的框架驅(qū)動不同平臺測試,而且在識別客戶端內(nèi)容和元素時也存在偏差,測試腳本不夠穩(wěn)定健壯。目前具有良好兼容性且框架成熟穩(wěn)定的工具是Appium。Appium是一個開源的、跨多平臺多語言的測試框架,相比于其它框架,它編寫測試腳本和運行測試時不需要對源碼重新編譯,在腳本的編寫和實現(xiàn)上也對編程語言沒有太多要求,測試更輕量靈活。此外,Appium采用了C/S架構(gòu),提供了一個統(tǒng)一的對外服務(wù)接口,使得客戶端或模擬器的交互和控制透明化。本文對Appium的主要特點和功能進行了分析和介紹,闡述了在手機測試過程中如何應(yīng)用Appium提高手機測試工作效率問題[3]。

1手機自動化測試工具

1.1Appium簡介

Appium主要包含:Appium Server、Appium GUI和Appium Client。

(1)Appium Server。Appium Server是用Node.js 實現(xiàn)的一套遵循restful框架的服務(wù),可以直接通過NPM安裝,它是面向Appium腳本開發(fā)人員的統(tǒng)一服務(wù)接口,是客戶端控制與測試腳本之間的橋梁。

(2)Appium GUI。它是基于MAC和Windows環(huán)境的一個Appium控制臺,整合了Appium的所有核心功能,具有強大的跨平臺驅(qū)動能力,可應(yīng)用于IOS和Android的基礎(chǔ)驅(qū)動,檢測和定位客戶端元素,對當前運行環(huán)境進行診斷。

(3)Appium Client。Appium Client是一個包含多種編程語言實現(xiàn)的Appium API,其中包括Ruby、Java等。它實現(xiàn)了Mobile JSON Wire 的標準化協(xié)議,為測試腳本開發(fā)者提供了靈活多變同時又非常強大的程序接口。1.2Appium基本工作原理

Appium框架其實是IOS和Android系統(tǒng)自動化庫的封裝,采用C/S架構(gòu),Appium Server在運行時會時刻監(jiān)聽Client端發(fā)送的操作請求,服務(wù)端和客戶端的交互遵循JSON Wire協(xié)議,并通過它所實現(xiàn)的翻譯器將任何編程語言所實現(xiàn)的測試腳本請求發(fā)送給模擬器或者移動終端,通過這種機制實現(xiàn)手機模擬器和真機的自動化操作[4],見圖1。

圖1Appium工作原理

1.3Appium特性

(1)跨平臺。平臺兼容性是Appium最為強大的特性,Appium用一種統(tǒng)一的協(xié)議實現(xiàn)了自動化測試平臺的兼容。操作IOS設(shè)備時它會調(diào)用IOS的instrument框架,而在Android平臺中則封裝了UIautomator框架。另外,Appium不單單支持客戶端兼容,在Appium的Server端,同樣支持包括OSX、Windows和Linux平臺,這就使得Appium的環(huán)境搭建更具擴展性。根據(jù)測試需求,Appium甚至可以搭建在云端服務(wù)器。另外在實現(xiàn)語言方面,Appium提供了Java、Ruby、Python等多語言接口,給測試程序設(shè)計者帶來極大的選擇空間。

(2)無源代碼依賴。手機客戶端測試框架運行一般都需要在客戶端的源碼環(huán)境下進行,而且在自動化腳本的執(zhí)行之前都需要對手機App源碼重新編譯,這種機制導(dǎo)致自動化執(zhí)行效率較低。Appium隔離了手機開發(fā)的源碼環(huán)境和自動化腳本開發(fā)環(huán)境,使自動化測試從手機開發(fā)流程中獨立出來,單獨運行,自動化測試更輕量,提高了測試效率。2手機測試框架搭建

Appium的設(shè)計理念和幾大組件可統(tǒng)一Android和IOS的自動化測試,下面通過部署和搭建一個跨平臺的Appium測試框架來介紹其特點。2.1系統(tǒng)環(huán)境準備

跨平臺的手機測試首先需要在PC平臺上建立不同的模擬器。由于IOS平臺的封閉性,不能搭建于Windows平臺,因此本文的框架需要OSX操作系統(tǒng)支持。OSX系統(tǒng)自帶IOS開發(fā)環(huán)境和IOS模擬器,因此Appium可以直接關(guān)聯(lián)并啟動相應(yīng)的IOS模擬器。而對于Android則首先需要下載和安裝Android的SDK開發(fā)環(huán)境,并手工創(chuàng)建相應(yīng)版本的模擬器。2.2Appium環(huán)境搭建

Appium主要組件由Appium Server和Appium Client 組成,而Appium GUI包括了Appium Server的全部功能,因此搭建Appium 環(huán)境僅需要搭建Appium GUI 和Appium Cient即可。

(1)Appium GUI。由于Appium GUI提供了Windows和OSX雙平臺支持,因此僅需要在其官方網(wǎng)站上下載指定版本并安裝即可。

(2)Appium Client。客戶端的搭建也非常簡單,本文使用Ruby開發(fā)語言實現(xiàn)自動化測試,因此需要下載Appium 的Ruby API,并將這些API導(dǎo)入RubyMine項目。

2.3Cucumber測試框架搭建

Cucumber是運行Appium測試的一種上層驅(qū)動框架,是一種基于行為的測試編寫和管理平臺。Cucumber通過一種類似自然語言的編寫接口,讓不熟悉軟件開發(fā)語言的測試者可以用直觀易懂的接口去組織和運行自動化測試。Cucumber還能與RubyMine開發(fā)環(huán)境完美集成。

3項目測試實現(xiàn)

通過一系列相關(guān)組件的安裝和搭建,完成了Appium跨平臺集成開發(fā)和測試環(huán)境。本文通過實現(xiàn)一個跨平臺自動化測試項目來展現(xiàn)本文自動化測試框架的特點和優(yōu)勢。

自動化測試項目實現(xiàn)過程:①底層操作行為封裝;②用戶操作抽象;③檢查點邏輯封裝;④Cucumber測試用例的實現(xiàn)和運行。

3.1底層操作行為封裝

4測試難點解決方案

智能手機和傳統(tǒng)PC平臺操作方式有很大區(qū)別,大部分用戶輸入都是通過各種手勢操作實現(xiàn)的,比如滑動、長按和點擊等操作。在一條相對復(fù)雜的測試用例編寫中,需要完整而穩(wěn)定地模擬出一系列用戶的操作組合。而基于不同的架構(gòu)平臺,用戶的操作方式也會不同。本文針對手機測試中的一些難點,提出結(jié)合Appium框架的解決方案。4.1系統(tǒng)級控件操作

目前手機操作系統(tǒng)都有許多系統(tǒng)級別的控件,比如系統(tǒng)提示和系統(tǒng)信息,這些組件原本不屬于手機的應(yīng)用程序,但是很多情況下都會與系統(tǒng)消息或系統(tǒng)提示交互[5],影響手機自動化測試的流暢性。由于這些控件并不屬于應(yīng)用程序本身,因此難以定位也難以抽象成操作對象。要讓自動化腳本流暢運行,首先需要解決系統(tǒng)控件交互的問題。圖2是一個系統(tǒng)級別通知消息的例子。

圖2系統(tǒng)級操作控件

對于這些系統(tǒng)級別操作,Appium框架通過一些通用的平臺驅(qū)動予以解決,比如在IOS平臺中,Appium首先通過檢查和定位系統(tǒng)級別的通知欄目,然后使用相應(yīng)的接口,用獨立于測試目標應(yīng)用之外的動作去點擊和關(guān)閉這些系統(tǒng)級提示,示例代碼如下:

當下的自動化測試框架都有平臺的局限性,一般來說都是一個工具對應(yīng)一個平臺,因而要實現(xiàn)不同平臺的自動化測試,就需要對IOS和Android系統(tǒng)開發(fā)不同的測試應(yīng)用,而由于測試對于框架和項目源碼的依賴性很高[7],不同平臺之間的測試腳本基本沒有關(guān)聯(lián)性,也不能重復(fù)利用,因此要實現(xiàn)不同平臺的自動化測試成本會較高。本文實現(xiàn)的框架一大特點是基于不同的平臺,可以利用同一套測試腳本測試,對測試編寫人員來說,平臺的兼容性變得透明,只需要編寫出一個統(tǒng)一的測試腳本就可以運行在不同的平臺上。這種方式將極大提高自動化測試腳本的使用率,節(jié)省編寫和調(diào)試測試腳本的時間。5.2近似于自然語言的測試用例

自動化測試腳本一般來說都由高級語言編寫,其語法和開發(fā)代碼是相同的。由高級語言組織成的測試用例不太容易讓閱讀者理解。要理解一個測試腳本的測試邏輯,首先要能讀懂測試代碼,而有時候測試人員可能不太精通高級語言,編寫自動化腳本較困難。為了解決這個問題,本文使用了Cucumber框架與Appium結(jié)合,通過層級封裝方式,實現(xiàn)了近似于自然語言的、能夠自動化運行的測試用例。這種測試用例易于理解,易于編寫,測試人員可快速熟悉。5.3解決了系統(tǒng)級彈出框?qū)y試運行的影響

當下大部分自動化測試都會與項目源碼綁定,在腳本運行前一般都需要項目的整體編譯,較耗費時間[8]。另外,測試在運行過程中會受到不少系統(tǒng)彈出框的干擾。由于測試項目與源碼綁定,導(dǎo)致要識別和處理系統(tǒng)級彈出框十分困難。本文通過實現(xiàn)Appium提供的平臺驅(qū)動,將測試項目與開發(fā)項目相隔離,使自動化測試獨立運行。同時,通過特定的程序接口,識別并處理系統(tǒng)級的彈出窗和系統(tǒng)消息,使得測試腳本更健壯,運行更流暢。6結(jié)語

本文介紹了手機測試的基本情況,分析了跨平臺手機測試難點,通過對當下一些手機測試工具調(diào)研,選擇成熟的Appium作為跨平臺測試工具。結(jié)合自動化測試框架組件和要素,設(shè)計和實現(xiàn)了接近自然語言、易于理解且能夠跨平臺運行的手機自動化測試腳本。參考文獻:

[1]PAREEK,PEEYUSH,RAJNEESH. A comparative study of mobile application testing frameworks[J].Expansion, Impact and Challenges of IT & CS,2015(2): 8384.

[2]王益芝. 淺析智能手機的自動化測試[J].現(xiàn)代電信科技,2012(12):2325.

[3]SHAH, GAURANG, PRAYAG SHAH, et al. Software testing automation using appium[J]. International Journal of Current Engineering and Technology,2014(3):152156.

[4]SINGH, SHIWANGI, RUCHA GADGIL,et al. Automated testing of mobile applications using scripting technique: a study on appium[J]. International Journal of Current Engineering and Technology,2014(5):1116.

[5]徐騁. Android應(yīng)用軟件自動化測試框架的研究[D].大連:大連海事大學,2015.

[6]鄭婷婷,黃英持. Android應(yīng)用的多設(shè)備自動化測試實現(xiàn)[J].軟件導(dǎo)刊,2016,15(4):9697.

[7]牛璐. 手機軟件自動化測試方法研究與應(yīng)用[D].鄭州:中國人民解放軍信息工程大學,2012.

[8]張舜堯. 手機自動化測試系統(tǒng)設(shè)計淺析[J].開發(fā)研究與設(shè)計技術(shù),2007(20):412413.

責任編輯(責任編輯:杜能鋼)

第1期 周甄珍,王浩宇:基于GJB5000A三級過程域的軟件開發(fā)管理探討軟 件 導(dǎo) 刊2017年標題

主站蜘蛛池模板: 波多野结衣二区| 亚洲精品波多野结衣| 这里只有精品在线播放| 欧美精品亚洲精品日韩专| 婷婷中文在线| 国产福利免费视频| 中文字幕在线观| 手机永久AV在线播放| 丰满人妻一区二区三区视频| 在线观看视频一区二区| 美女无遮挡拍拍拍免费视频| 国产免费久久精品99re丫丫一| 亚洲欧美综合另类图片小说区| 久久黄色视频影| 精品一区二区三区视频免费观看| 国产精品一老牛影视频| 久久精品人人做人人爽电影蜜月| 免费毛片全部不收费的| 综合天天色| 国产精品久线在线观看| 99re热精品视频国产免费| 网友自拍视频精品区| 欧美区在线播放| 国产精品99在线观看| 不卡国产视频第一页| 乱人伦视频中文字幕在线| 日本免费一级视频| 免费无码一区二区| 免费xxxxx在线观看网站| 国产成人狂喷潮在线观看2345| 六月婷婷综合| 国产在线观看人成激情视频| 久久综合结合久久狠狠狠97色| 国产aⅴ无码专区亚洲av综合网| 久久情精品国产品免费| 日本在线免费网站| 国产浮力第一页永久地址 | 色香蕉网站| 国产女主播一区| 国产乱码精品一区二区三区中文| 蝴蝶伊人久久中文娱乐网| 99九九成人免费视频精品| 黄片在线永久| 色哟哟国产精品| 91精品国产一区自在线拍| 狼友av永久网站免费观看| 看国产一级毛片| 尤物在线观看乱码| 人妻中文字幕无码久久一区| 极品尤物av美乳在线观看| 欧美精品一区二区三区中文字幕| 国产精品区网红主播在线观看| 久久天天躁狠狠躁夜夜躁| 九九这里只有精品视频| 国产成人综合网| 午夜久久影院| 国产欧美日韩18| 精品视频免费在线| 欧美啪啪视频免码| 欧美一区二区三区不卡免费| 欧美福利在线观看| 亚国产欧美在线人成| 免费在线不卡视频| 午夜少妇精品视频小电影| 少妇精品久久久一区二区三区| 国产婬乱a一级毛片多女| 999国内精品久久免费视频| 国产va欧美va在线观看| 久久婷婷五月综合色一区二区| 日本高清有码人妻| 国产精品区视频中文字幕| 成人午夜亚洲影视在线观看| 日韩欧美国产区| 国产18页| 四虎影视无码永久免费观看| 国产一级在线观看www色| 制服丝袜国产精品| 在线人成精品免费视频| 欧美高清三区| 久热中文字幕在线| 日韩大乳视频中文字幕| a毛片在线|