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

ANDROID適配性自動化測試系統的分析與設計

2015-10-10 08:34:24高博
華東科技 2015年10期
關鍵詞:界面用戶功能

文 高博

Android系統的廣泛傳播得益于其開源的特性,但這一特性同時也帶來了一個比較嚴重的問題,就是設備的碎片化。

隨著我國經濟的持續發展以及我國一些手機研發公司的崛起,尤其近年來中興、華為、聯想、酷派等公司的發展,加上新興的小米、OPPO等手機設備公司,逐步參與手機研發體系,并期望在世界手機行業中占領自己一席之地。我國工信部4G牌照的發放,也使得我國手機行業迎來較快的發展。Android作為一款主流的智能設備的操作系統,憑借開源性、拓展性、可移植性等特點席卷全球。我國已經掌握了Android手機的基本設計與制造技術,形成了一定的研發能力,近年來華為、小米等公司投入巨大的研發資源,取得了一系列創新成果。如由本土公司自行設計、自行研發的一些手機,正在逐步打破蘋果、三星等高端手機的壟斷。

Android系統的廣泛傳播得益于其開源的特性,但這一特性同時也帶來了一個比較嚴重的問題,就是設備的碎片化。和同類產品相比,運行蘋果公司的iOS系統的設備截至目前不超過20種,而且所有的設備都是從軟件到硬件高度統一的。而運行Android系統的設備卻多達數千種,并且軟件和硬件都經過深度定制,甚至同一廠商制造的設備都會有多達幾十種不同的軟硬件定制版本。對于Android應用的開發者而言,這樣數量眾多的軟硬件環境,是一個巨大的挑戰。而應對這種挑戰的重要手段,就是規模化的適配性測試。適配性測試就是指使用同樣的一批測試用例,針對同一個測試對象,運行在不同的軟硬件平臺上,收集和分析測試結果的測試方法。

與歐美等國家相比,我國的Android應用程序研發水平存在一些差距,其中差距最大的就是適配性測試技術。由于多種原因,測試,特別是自動化測試受成本和技術的約束,在我國受重視程度遠遠不及歐美一些國家。上海盛大創新院等公司近年來大力推廣Android智能設備自動化測試,使得Android智能設備測試體系與技術含量等方面已經具有一定的基礎。尤其是在Android智能設備適配性自動化測試取得一些成績,為此,本文將針對Android設備適配性自動化測試進行理論研究與開發探索,力爭在Android設備適配性測試關鍵技術上有所創新,主要是在設備自動化管理,和測試用例的撰寫、執行等方面取得了經過驗證的成果,達到了Android設備適配性測試技術領域的先進水平。

系統功能需求分析

本文以上海盛大研究院的Android適配性自動化測試的實際業務和項目為背景,對Android適配性自動化測試的業務需求以及系統功能進行分析與定義。

Android適配性自動化測試平臺一般由雙層Web Server系統、圖片比對自動化測試系統和可錄制編程的自動化測試系統組成,本文針對用戶使用習慣和邏輯,歸納總結系統的最主要的五個業務進行重點討論:用戶登錄功能需求、Lab Server的功能需求、Web Server的功能需求、錄制編譯腳本模塊的功能需求、圖片比對自動化測試模塊其他相關業務也將進行簡單分析。

從實現質量屬性可分為可用性、易用性、可測試性戰術,主要功能具有可擴展性、穩定性、可維護性和可操作性。

在Android適配性自動化測試系統中,定義的用戶有測試工程師、測試經理兩種身份。每個用戶有自己的職責和范圍,根據職責和范圍可對Android適配性自動化測試系統的相關功能進行操作與管理。

測試工程師

測試工程師的用例圖如圖1所示。

測試經理

測試經理的用例圖如圖2所示。

系統功能實現分析

用戶登錄功能的實現分析

用戶通過瀏覽器輸入IP地址,然后輸入用戶名和密碼登錄Lab Server,再由Lab Server通過Web Server登錄到Agent Server上,進行配置Agent對應的Android設備,根據測試用例進行操作,然后記錄測試結果,測試結束后進行退出當前的測試登錄。

用戶登錄主要功能需求是測試能否正確識別用戶輸入用戶名和密碼能登錄系統,輸入任一錯誤的用戶名和密碼都不能登錄系統。另一個功能需求是測試管理員能否增刪查改等功能,對不同的用戶設置不同的權限。用戶登錄功能需求的流程如圖3所示。

Lab Server的功能實現分析

用戶通過瀏覽器輸入IP地址,然后輸入正確用戶名和密碼登錄Lab Server,再由Lab Server通過Web Server登錄到Agent Server上,進行配置Agent對應的Android設備,根據測試用例進行操作,然后記錄測試結果,測試結束后進行退出當前的測試登錄。

雙層Web Server模式系統主要體現為用戶通過網頁登錄到Lab Server之后,然后去選擇對應連接的手機,同時通過Agent方式來訪問對應的手機設備,而訪問Agent對應的手機設備也是通過網頁方式打開,這樣做的目的就是可以通過網頁登錄增加手機的無限擴展,理論上只需要Server性能足夠強大。

基于Lab server功能需求的過程如圖4所示。

Web Server功能實現分析

在雙層Web Server模式系統,它采用了一系列的技術手段,實現了將觸控手機屏幕和實體按鍵的操作轉化為采用鍵盤和鼠標操作Web上的回顯界面,并且這種操作是全雙工的(Multiplex)。全雙工的意思是,在Web界面上的操作會反饋到手機界面上,而手機上的界面變化也會反饋到Web界面上。這個功能的實現,依賴于在內層Web服務器上運行的一個守護進程,這個進程會做兩件事,一是把Web上的Web鍵盤和鼠標事件,通過Python調用Robotium來轉化成手機觸控事件,這是從Web到手機;二是把手機屏幕不斷截屏,發回內層Web服務器以供Web界面顯示,這個守護進程和內層Web服務器是兩個程序,但它們運行在同一個機器上,流程如圖5所示。

錄制編譯腳本模塊的功能實現分析

由于測試用列比較多,測試工程師手動測試耗費大量人力物力,系統要解決的核心問題,主要是適配性測試中的兩個問題:設備管理問題,還有測試用例數量眾多而且重復的問題。解決的手段就是自動化,這個自動化和傳統意義上的自動化有所不同。傳統意義上的自動化,僅僅指把手工執行的用例落實成腳本,然后用執行腳本來代替手工執行。而本系統的自動化,卻是全方位的自動化。

腳本自動化錄制傳統意義上的自動化測試對測試人員的要求很高,核心是要求會寫腳本,而本系統提供了腳本錄制功能,用戶可以執行一些操作,這些操作就會自動地被錄制成腳本,還可以針對腳本中的任何指定部分,加上條件判斷和循環。這樣幾點加在一起就解決了測試用例眾多的問題,因為可以同時對N部設備執行同一批腳本,還可以隨時查看結果,腳本本身還可以通過錄制而不是手寫實現。

安裝和腳本運行自動化這個功能也是通過內層Web服務器提供給用戶的,用戶只要上傳一個APK文件,這個文件就會被自動安裝,并執行指定的一系列冒煙測試,如安裝、啟動、退出、升級和卸載等。只要上傳一個python腳本,就可以執行這個腳本包含的任意內容,實現傳統意義上的自動化測試功能。還可以指定運行腳本的時間點,這樣就可以在夜間實現無人值守的自動化測試。我們首先要連接測試工程師已經打開調試模式的ANDROID設備或模擬器,然后運行一些腳本,例如在cmd窗口中執行命令:Monkeyrunner Monkeyrecoder.py,執行一定的代碼后,將運行錄制腳本的程序。我們還根據總結測試工程師常用的函數,寫好之后,再次編譯和嵌套錄制腳本,這樣就可以循環運行腳本,達到一些回歸測試和壓力測試的需求。流程如圖6所示。

圖片自動比對模塊功能實現分析

在手機的自動化測試,對結果的判斷是難點,最初級的辦法無非是基于圖像比對了,Monkeyrunner自身提供了一套圖像比對的機制,加載一個正確結果的圖片MonkeyRunner.LoadImageFromfile(“filepath”)。然后用sameAs來比對,當然也可以用局部圖像比對。得到局部圖像的方法getSubImage。

Monkey和Monkeyruner是Android提供的兩個自動化UI測試工具。它們的測試原理都通過編寫腳本,模擬用戶按鍵然后記錄響應結果。它們最大的價值是可以做無人值守的自動化測試。具體流程如圖7所示。

其他的功能實現分析

基站衰落自動化測試系統除了上述主要業務以外,還有重啟基站業務、獲取基站配置數據等業務。

測試UE在極端情況下,比如UE在運動旋轉的支架上進行測試,測試能夠忽略電源變化的狀態圖。

測試忽略電源變化,主要是實際測試工作的需要,不必比較,主要在圖像比較的時候,剔除電源區域的比較。

第一步找到設備圖片的電源的位置;

第二步進行圖片比較時,找到設備圖片的電源的位置,進行忽略此圖片的變化。

區分游戲主、輔界面

在游戲界面我們設定了游戲主界面和輔界面之分,針對主界面判定之后,我們集中比對輔界面變化和操作,這樣比對相應會更準確和更快,更能完成測試用例的操作。

第一步在游戲測試過程中,根據圖片變化的幅度確定主、輔界面;

第二步確定游戲界面的主、輔界面之后,同時監控主輔界面,如主界面變化幅度不大,則會忽略主界面的比較,直接比較輔界面變化;

第三步直到主界面變化幅度過大,則重新比較主、輔界面,進入下一個比較流程。流程如圖8所示:

非功能性需求的功能實現分析

系統把手動操作變成腳本之后,需要進行一定的修改,編譯通過之后才能運行,在實際運用過程中,由于測試工程師的自動化腳本水平參差不齊,導致腳步格式眾多,即使同一個功能,不同的工程師編寫風格也不一樣,導致腳本不統一,運行效果也不一樣。同時一些函數腳本寫起來對于沒有編程背景的人來說也是比較困難的。

本系統除了具備滿足功能性需求時提供的特性之外,同時通過制定測試的操作規程,盡量減少干擾,來避免非正常腳本編寫錯誤和腳本編寫不統一的情況的發生。

由于適配性測試需要不同的手機或者平板等設備,同時不同的手機或者平板的生產廠商,系統版本也不相同,選擇適配性自動化操作的業務也有所不同。隨著適配性自動化業務的增長,還有會測試不同的手機或平板等設備,測試不同手機或平板等設備版本的功能。在適配性自動化測試的系統設計時,不僅要考慮使系統滿足測試工程師自動執行用例的需求,更需要從易于擴展的思維來規劃,根據不同的手機或平板的差異,在不需要更改平臺的服務器的大的設備情況下,只需要增加被測試設備和增加外圍系統配置,就可以達到橫向擴展的目的。為不同手機設備的選擇和同一手機不同的手機系統版本,降低上層系統和不同手機之間的操作的耦合程度。

基于適配性測試自動化測試系統是自己寫腳本開發的,不需要多指令化界面,對于測試工程師來說只需要掌握界面操作,所以對于測試工程師來說,提供配置參數較少、容易操作的界面,針對其他用戶,第一次配置好參數后,再次配置時,有數據記憶功能,符合測試工程師操作習慣,省去測試工程師的精力和時間,同時也減少測試工程師的操作失誤的可能。

針對同一手機不同的系統版本,只需要參考自動化系統配置的手機系統的版本,就可以在界面上選擇對應的系統版本,這樣不需要更換手機設備就能測試多個手機軟件系統。考慮到測試工程師操作測試任務繁重性,一般使用測試時間戳來記錄測試時間,并記錄測試log,增加便利性。同時對于測試結果,更多的讓測試工程師用圖形化界面來展示出來,一眼就看出測試結果和與歷史測試結果進行比對。因此系統還需要在不增加系統開發工作量的前提下,需要滿足測試工程師易用性的需要。

在增加大量的手機或平板等設備之后,需要大量的通信去調度,需要很多線程來完成多個任務的調度。在開發系統之前,需要充分考慮系統穩定性,如果多個手機或平臺等設備線程增多等,會很耗費內存,這樣會導致測試不準確,系統和手機或平板等設備之間進行通信,傳輸時間和傳輸效果需要考量,因此對通信過程的穩定性要求較高,需要防止通信指令傳輸失敗,產生意外的后果。除此之外,圖片比較也需要一定的穩定性,系統的穩定需求對系統設計來說也是很重要的一個方面。

系統架構設計與實現

系統的體系結構

Android適配性自動化測試系統的體系結構可分為如圖9所示的四層。

系統的第一層為應用層,主要是用戶通過瀏覽器輸入IP地址,通過HTTP協議登錄到Server上,進行測試相關操作。也可以在Server上瀏覽和查看測試結果。

第二層為Server層,主要接受到應用層的指令和操作,來進行響應和回應,這一層是系統的核心,主要用到的協議有HTTP,TCP,TELNET等協議。

第三層Agent層,此層主要是橋梁連接作用,把Server層的指令通過Agent代理傳到具體制定的任一Android設備上,然后Android設備響應再通過Agent代理傳到Server。

第四層就是Android設備連接層,主要通過USB連接器或者直接連接到測試工程師的電腦上進行測試的Android設備。此層主要的好處在于,在系統性能可以承受的許可下,擴展到許多個Android設備。

系統的軟件架構

Android適配性自動化測試系統的軟件系統包括Lab Server、Web Server、Agent Server、圖片比對系統、自動化錄制編譯系統。Android適配性自動化測試系統的軟件系統結構如圖10所示。

Lab Server子系統,用戶通過瀏覽器輸入IP地址,然后輸入正確用戶名和密碼登錄Lab Server,再由Lab server通過Web Server登錄到Agent Server上,進行配置Agent對應的Android設備,根據測試用例進行操作,然后記錄測試結果,測試結束后退出當前的測試登錄。

雙層Web Server模式系統主要體現為用戶通過網頁登錄到Lab Server之后,然后去選擇對應連接的手機,同時通過Agent方式來訪問對應的手機設備,而訪問Agent對應的手機設備也是通過網頁方式打開,這樣做的目的就是通過網頁登錄可以增加手機的無限擴展,理論上只要Server性能足夠強大。

Agent Server子系統,此系統主要是橋梁連接作用,把Server層的指令通過Agent代理傳到具體制定的任一Android設備上,然后Android設備響應再通過Agent代理傳到Server。

圖片比對子系統功能主要采用了Monkeyrunner技術,利用Java Script與Python互相轉換的功能來達到所設計的需求和功能,用戶通過Web Server進行操作一個動作,Web把操作的一個動作轉換成一個指令;轉換成一個指令后,傳給Executor,而傳給Executor通過Agent server來控制設備UE;設備UE接到Executor傳輸的指令后,進行執行指令的操作,并把操作后的結果通過Agent傳給Executor;操作后的結果通過Agent傳給Executor之后,Executor通過截圖軟件,把設備UE的操作和響應結果的圖片返回給Web Server;Web Server接到操作和響應結果的圖片之后進行比對,然后進行下一個操作。

自動化編譯子系統,主要分腳本錄制器和自動編輯功能。測試工程師搭建測試環境;測試工程師手動操作,這個時候錄制手動操作并記錄代碼;根據手動操作的測試用例,推薦匹配的函數,如重啟多少次等;如果不使用推薦函數,則需要測試工程師手動完成編譯,并生產測試用例;如使用推薦函數,可以自動編譯,自動運行腳本,開始編譯,編譯通過之后并生產測試用例;腳本錄制完成后,開始下一個錄制腳本的測試用例。設定的測試用例錄制完成。結束。等待自動化測試。

結論

本文對Android適配性自動化測試系統的功能需求進行了細致地分析,確定具體的功能方面的設計、開發與實現的要求與標準;之后對重點設計了Android適配性自動化測試系統的體系架構、軟件架構進行了詳細分析與設計。

猜你喜歡
界面用戶功能
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
國企黨委前置研究的“四個界面”
當代陜西(2020年13期)2020-08-24 08:22:02
基于FANUC PICTURE的虛擬軸坐標顯示界面開發方法研究
關于非首都功能疏解的幾點思考
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
人機交互界面發展趨勢研究
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
手機界面中圖形符號的發展趨向
新聞傳播(2015年11期)2015-07-18 11:15:04
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
主站蜘蛛池模板: 国产www网站| 亚洲国产日韩欧美在线| 蜜臀AVWWW国产天堂| 国产打屁股免费区网站| 啪啪永久免费av| 国产小视频网站| 澳门av无码| 无码在线激情片| 真实国产乱子伦高清| 国产Av无码精品色午夜| 欧洲熟妇精品视频| 伊人婷婷色香五月综合缴缴情| 欧美视频在线第一页| 好紧好深好大乳无码中文字幕| 不卡无码网| 最新无码专区超级碰碰碰| 亚洲,国产,日韩,综合一区| 色欲综合久久中文字幕网| jijzzizz老师出水喷水喷出| 成人一区在线| 国产精品太粉嫩高中在线观看| 99草精品视频| 99热这里只有免费国产精品| 国产精品极品美女自在线网站| 99热国产这里只有精品9九 | 成人国产小视频| 亚洲乱伦视频| 人妻无码一区二区视频| 日韩第一页在线| 亚洲女同一区二区| 午夜精品久久久久久久99热下载| 免费观看男人免费桶女人视频| 99精品福利视频| 欧美精品一二三区| 亚洲乱强伦| 99精品久久精品| 在线国产毛片| 精品国产Ⅴ无码大片在线观看81| 福利视频一区| 精品国产黑色丝袜高跟鞋 | 久无码久无码av无码| 久久中文字幕2021精品| 久久人人97超碰人人澡爱香蕉| 国产欧美在线观看一区| 亚洲久悠悠色悠在线播放| 久久精品国产电影| 欧美三级视频网站| 国产在线98福利播放视频免费 | 欧美亚洲另类在线观看| 免费无码网站| 亚洲精品不卡午夜精品| 国产亚洲欧美另类一区二区| 第一页亚洲| 免费A级毛片无码免费视频| 真人高潮娇喘嗯啊在线观看| 久久福利网| 国产精品网址你懂的| 国产亚洲视频中文字幕视频 | 国产无码精品在线播放| 亚洲午夜综合网| 原味小视频在线www国产| 婷婷开心中文字幕| 久草热视频在线| 亚洲中文字幕无码mv| www.91在线播放| 全午夜免费一级毛片| 91热爆在线| 国产男人天堂| 亚洲资源站av无码网址| 欧美成人看片一区二区三区| 人人爱天天做夜夜爽| 精品一区二区无码av| 久久亚洲综合伊人| 欧美怡红院视频一区二区三区| 国产资源免费观看| a亚洲视频| 国产欧美日韩va另类在线播放 | 91午夜福利在线观看| 一本色道久久88亚洲综合| 婷婷丁香色| 中文字幕 91| 精品国产一二三区|