版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 基于eclipse的android自動(dòng)化測試工具插件開發(fā)的研究 朱傳晶 張立 張海濤 劉萬龍摘 要:eclipse是一個(gè)開放源代碼的、基于java的可擴(kuò)展開發(fā)平臺(tái),eclipse開發(fā)平臺(tái)的插件擴(kuò)展機(jī)制(plug-in)更是大家熱于使用的精華所在,本文研究了基于該插件機(jī)制的移動(dòng)端自動(dòng)化測試工具的實(shí)現(xiàn)思路,目的是讓讀者了解如何將有關(guān)android自動(dòng)化測試的小工具集成到eclipse平臺(tái)之上,實(shí)現(xiàn)統(tǒng)一應(yīng)用。關(guān)鍵詞:eclipse plug-in 擴(kuò)展點(diǎn) uiautomator:tp311.52 :a :1672-3791(2018)11(c)-
2、0024-05abstract: eclipse is an open source, java based extensible development platform, eclipse platform plug-in expansion mechanism (plug-in) is used to heat all the essence of this paper is to study the realization way of the mobile terminal automation test tool based on the plug-in mechanism, the
3、 purpose of this paper is to let the reader know how the android test automation gadgets integrated into the eclipse platform, to achieve a unified application.key words: eclipse; plug-in; extension point; uiautomator為了能夠提高移動(dòng)應(yīng)用測試人員的用戶體驗(yàn)感,本文研究了將部分移動(dòng)應(yīng)用測試工具集成到eclipse開發(fā)平臺(tái)上來,并為移動(dòng)應(yīng)用開發(fā)人員提供了專業(yè)的測試工程的創(chuàng)建和管理,以及
4、測試用例的創(chuàng)建和編輯功能,大大提高了測試用例開發(fā)人員的工作效率。1 eclipse及plug-in簡介1.1 eclipseeclipse最初是由ibm公司開發(fā)的替代商業(yè)軟件visual age for java的下一代ide開發(fā)環(huán)境,2001年11月貢獻(xiàn)給開源社區(qū),現(xiàn)在它由非營利軟件供應(yīng)商聯(lián)盟eclipse基金會(huì)(eclipse foundation)管理。eclipse是一種面向開發(fā)人員的編程環(huán)境,同時(shí)它也是一個(gè)開放源代碼的、基于java的可擴(kuò)展開發(fā)平臺(tái),它提供了一種架構(gòu),或者說一種軟件框架,可以讓開發(fā)人員相對(duì)比較容易的開發(fā)出功能比較強(qiáng)大的,帶有人機(jī)交互功能的應(yīng)用程序。eclipse開發(fā)平
5、臺(tái)主要包括工作臺(tái)窗口、菜單欄、工具欄、工作臺(tái)頁、編輯器、視圖、狀態(tài)欄等工作區(qū),其可視化結(jié)構(gòu)如圖1所示。界面最外面的稱為工作臺(tái)窗口,也是應(yīng)用程序最頂層的界面模塊,一般來說一個(gè)應(yīng)用會(huì)有一個(gè)工作臺(tái)窗口,該窗口包含了主菜單欄、工具欄、狀態(tài)欄、和一個(gè)工作臺(tái)頁,這些都是典型的gui程序所必備的。工作臺(tái)頁是工作臺(tái)窗口的主界面,也是工作區(qū)界面,它包括了各種視圖窗口和編輯器窗口,視圖和編輯器都稱為part,視圖也稱為viewpart,編輯器也稱為editorpart。視圖通常是用來顯示目錄樹、屬性窗口、文檔結(jié)構(gòu)圖等類似內(nèi)容,視圖上所做的修改會(huì)立刻生效。編輯器是用來編輯文檔的,編輯器里修改的內(nèi)容必須通過專門的保存
6、命令進(jìn)行存儲(chǔ)生效。1.2 plug-inplug-in是eclipse的插件開發(fā)機(jī)制,eclipse中有3個(gè)最吸引人的地方:一是用戶體驗(yàn)相當(dāng)好的圖形swt/jface組件;二是plug-in機(jī)制;三是利用plug-in機(jī)制開發(fā)的終端功能強(qiáng)大的插件。因此,插件開發(fā)機(jī)制是eclipse產(chǎn)品的優(yōu)勢中的重中之重。插件開發(fā)的入口在于擴(kuò)展點(diǎn),擴(kuò)展點(diǎn)顧名思義就是開發(fā)者可以對(duì)原程序進(jìn)行功能和界面擴(kuò)展的接口,擴(kuò)展程序可以通過擴(kuò)展點(diǎn)把程序功能接入到原有程序中,不同的擴(kuò)展點(diǎn)可以擴(kuò)展不同的功能。從編程角度,只要寫的類實(shí)現(xiàn)了擴(kuò)展點(diǎn)的接口,就可以被平臺(tái)類加載和調(diào)用,通過擴(kuò)展點(diǎn)接入的聲明,可以告訴eclipse平臺(tái),使用什
7、么功能的時(shí)候調(diào)用什么類,新的插件提供了哪些功能,或者擴(kuò)展了原有的哪些功能等。插件開發(fā)中的擴(kuò)展點(diǎn)非常多,銜接方式為配置插件開發(fā)建立工程中的plugin.xml文件,后面將有詳細(xì)描述,這里介紹下開發(fā)中的基本擴(kuò)展點(diǎn)。1.2.1 org.eclipse.ui.views通過該擴(kuò)展點(diǎn)可以擴(kuò)展功能所需要的視圖窗口,開發(fā)平臺(tái)中的視圖窗口和移動(dòng)端自動(dòng)化測試工具中的多數(shù)功能也是通過擴(kuò)展該擴(kuò)展點(diǎn)實(shí)現(xiàn)的,開發(fā)人員開發(fā)的view必須繼承viewpart這個(gè)虛擬類或者實(shí)現(xiàn)iviewpart接口。1.2.2 org.eclipse.ui.editors通過該擴(kuò)展點(diǎn)可以擴(kuò)展功能所需要的編輯器窗口,開發(fā)人員開發(fā)的editor
8、必須繼承editorpart這個(gè)虛擬類或者實(shí)現(xiàn)ieditorpart接口。1.2.3 mands該擴(kuò)展點(diǎn)里面含有了很多命令,它定義了命令、命令目錄以及默認(rèn)快捷鍵等,是一個(gè)任務(wù)的邏輯表達(dá),命令主要通過人機(jī)界面發(fā)出,常用到的控件為菜單、工具條、快捷鍵等。它的實(shí)現(xiàn)邏輯將存在于org.eclipse.ui.handlers擴(kuò)展點(diǎn)中。1.2.4 org.eclipse.ui.handlers處理器擴(kuò)展點(diǎn)是對(duì)命令擴(kuò)展點(diǎn)的真正實(shí)現(xiàn)的地方,這里運(yùn)行了匹配命令的功能邏輯。1.2.5 org.eclipse.ui.menus創(chuàng)建菜單項(xiàng)的方式有多個(gè),本論文中采用的是通過commands擴(kuò)展點(diǎn)方式創(chuàng)建的,首先需要?jiǎng)?chuàng)建
9、command,然后通過該菜單擴(kuò)展點(diǎn)確定菜單創(chuàng)建的區(qū)域,最后通過處理器擴(kuò)展點(diǎn)定義這個(gè)command的行為。1.2.6 org.eclipse.ui.newwizards這是新建向?qū)U(kuò)展點(diǎn),此擴(kuò)展點(diǎn)用來注冊(cè)資源創(chuàng)建向?qū)U(kuò)展。創(chuàng)建向?qū)ё鳛椤靶陆▽?duì)話框”中的選項(xiàng)出現(xiàn),該向?qū)ǔS糜趧?chuàng)建文件夾或文件。因移動(dòng)端自動(dòng)化測試工具中需要提供創(chuàng)建用例工程及用例文件的功能,此擴(kuò)展點(diǎn)是不可獲取的。2 uiautomator功能代碼拆解及插件集成2.1 uiautomatorgoogle在android4.1發(fā)布時(shí)提供了一套新的uiautomation框架來支持用戶界面自動(dòng)化測試,該框架通過運(yùn)用已有的accessib
10、ility apis來模擬用戶跟設(shè)備用戶界面的交互,比如獲取窗口界面控件和注入事件等。uiautomator主要用于自動(dòng)化測試,仿真單擊、滑動(dòng)、輸入文本等操作,而不用人為地進(jìn)行操作,可以大大提高反復(fù)進(jìn)行的操作測試效率。2.2 uiautomator功能代碼拆解及視圖插件開發(fā)(1)uiautomator源碼可以通過git的以下訪問路徑獲取。git clone https:/(2)uiautomator可以拆解為抓屏視圖(screenshotview)、節(jié)點(diǎn)屬性視圖(nodedetail)、節(jié)點(diǎn)操作代碼視圖(nodecode)3個(gè)視圖模塊,詳細(xì)介紹如下。screenshotview。創(chuàng)建scree
11、nshotview類,繼承自上方提到的視圖擴(kuò)展點(diǎn)中的viewpart虛擬類,創(chuàng)建視圖中的組件代碼來自u(píng)iautomator源碼中的com.android.uiautomator.uiautomatorview類中的mscreenshotcomposite組件,parent指的是當(dāng)前視圖對(duì)象,部分組件層次代碼如下。mscreenshotcomposite = new composite(parent, swt.none);mscreenshotcomposite.setlayout(mstacklayout);mscreenshotcanvas = new canvas(mscreenshotc
12、omposite, swt.border);nodedetail。創(chuàng)建nodedetail類,同樣繼承自視圖擴(kuò)展點(diǎn)中的viewpart虛擬類,該視圖以tableviewer組件來展示移動(dòng)端屏上某個(gè)app的屬性信息的,代碼來自u(píng)iautomator源碼中的com.android.uiautomator.uiautomatorview類中的mtableviewer組件,parent指的也是當(dāng)前視圖對(duì)象,部分布局代碼如下。composite container = new composite(parent, swt.none);tablecolumnlayout columnlayout = new
13、 tablecolumnlayout();container.setlayout(columnlayout);mtableviewer = new tableviewer(container, swt.border | swt.full_selection);nodecode。創(chuàng)建nodecode類,同樣繼承自視圖擴(kuò)展點(diǎn)中的viewpart虛擬類,該視圖以tree組件來存儲(chǔ)移動(dòng)端屏上某個(gè)app的操作代碼,以備再次將代碼拖拽到用例工程測試類中,parent指的也是當(dāng)前視圖對(duì)象,部分布局代碼如下。composite container = toolkit.createcomposite(paren
14、t, swt.none);toolkit.paintbordersfor(container);container.setlayout(new filllayout(swt.horizontal);tree = new tree(container, swt.border);toolkit.adapt(tree);toolkit.paintbordersfor(tree);2.3 插件集成配置上述中提到過plugin.xml文件,每個(gè)插件工程創(chuàng)建后都會(huì)有這個(gè)配置文件,該配置文件里配置了擴(kuò)展標(biāo)簽及相應(yīng)值,以上3個(gè)視圖的配置如下所示。< p>point="org.eclips
15、e.ui.views">< p>id="pxuiautomator.category"name="px category">< p>name="screenshot view"icon="icons/sample.gif"category="pxuiautomator.category"class="pxuiautomator.views.screenshotview"id="pxuiautomator.views.screenshotview">project="true"finalperspective="org.eclipse.jdt.ui.javapers
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 吉林藝術(shù)學(xué)院《藝術(shù)展覽策劃》2021-2022學(xué)年第一學(xué)期期末試卷
- 吉林藝術(shù)學(xué)院《人體造型訓(xùn)練》2021-2022學(xué)年第一學(xué)期期末試卷
- 吉林藝術(shù)學(xué)院《合唱Ⅴ》2021-2022學(xué)年第一學(xué)期期末試卷
- 吉林藝術(shù)學(xué)院《版面與圖式》2021-2022學(xué)年第一學(xué)期期末試卷
- 吉林師范大學(xué)《羽毛球教學(xué)與訓(xùn)練》2021-2022學(xué)年第一學(xué)期期末試卷
- 2024年大小水庫轉(zhuǎn)讓協(xié)議書模板范本
- 2022年公務(wù)員多省聯(lián)考《申論》真題(四川省市卷)及答案解析
- 2022年云南省公務(wù)員錄用考試《申論》真題(縣鄉(xiāng)卷)及答案解析
- 2022年河南省公務(wù)員錄用考試《行測》真題及答案解析
- 《供應(yīng)鏈管理》課件 第3章 供應(yīng)鏈網(wǎng)絡(luò)構(gòu)建
- 河北省省級(jí)聯(lián)測2023-2024學(xué)年高三上學(xué)期8月考試英語試題(Word版含答案含聽力音頻及聽力原文)
- 醫(yī)院醫(yī)學(xué)裝備委員會(huì)會(huì)議匯報(bào)
- 如何的提高病區(qū)護(hù)理滿意度-課件
- 正常心臟聽診檢查說課稿-課件
- 喜茶運(yùn)營管理手冊(cè)和員工操作管理手冊(cè)
- 建設(shè)單位對(duì)監(jiān)理工作要求
- 五年級(jí)家長會(huì)數(shù)學(xué)老師發(fā)言稿
- 工期及費(fèi)用索賠與反索賠操作指引
- 新版建筑材料構(gòu)配件和設(shè)備管理制度樣本
- 小學(xué)國防教育公開課一等獎(jiǎng)市賽課獲獎(jiǎng)?wù)n件
- 2023-2023年天津市和平區(qū)九年級(jí)上學(xué)期期中考試數(shù)學(xué)試卷
評(píng)論
0/150
提交評(píng)論