亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長(zhǎng)資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    SoloPi:支付寶開源的Android專項(xiàng)測(cè)試工具

      1.前言

      近年來,隨著移動(dòng)互聯(lián)網(wǎng)的蓬勃發(fā)展,移動(dòng)測(cè)試技術(shù)也取得了長(zhǎng)足的進(jìn)步,從早期基于測(cè)試腳本的單機(jī)自動(dòng)化,到錄制回放、圖像識(shí)別、云測(cè)平臺(tái)等測(cè)試技術(shù)貼合實(shí)際業(yè)務(wù)需求深度應(yīng)用和創(chuàng)新,測(cè)試效率從而一次又一次被提升。

      本文主要介紹支付寶在移動(dòng)端上實(shí)現(xiàn)的一套無線化、非侵入、免 Root 的 Android 專項(xiàng)測(cè)試方案 Soloπ。直接操控手機(jī),即可實(shí)現(xiàn)自動(dòng)化的功能、性能、兼容性、以及穩(wěn)定性測(cè)試等工作。

      1.1移動(dòng)測(cè)試 1.0 時(shí)代

      移動(dòng)測(cè)試 1.0 時(shí)代,也可以稱之為探索期。由于厭倦了日復(fù)一日的手工操作,如何提升測(cè)試效率成為了移動(dòng)測(cè)試領(lǐng)域最重要的課題,在此期間,除了 Monkey、UiAutomator、Instruments 等官方提供的工具,業(yè)界還涌現(xiàn)了一批優(yōu)秀的開源自動(dòng)化測(cè)試工具/框架,在自動(dòng)化驅(qū)動(dòng)能力的基礎(chǔ)之上,不僅可以實(shí)現(xiàn)基本功能的驗(yàn)證,還可以結(jié)合性能采集方案、遍歷算法等實(shí)現(xiàn)各類專項(xiàng)測(cè)試的自動(dòng)化。在這個(gè)階段,自動(dòng)化測(cè)試的常見形態(tài)是在單機(jī)或本地少數(shù)幾臺(tái) PC 上部署測(cè)試環(huán)境,再利用 Jenkins 等工具實(shí)現(xiàn)持續(xù)集成。

    SoloPi:支付寶開源的Android專項(xiàng)測(cè)試工具

      1.2移動(dòng)測(cè)試 2.0 時(shí)代

      伴隨著測(cè)試技術(shù)的持續(xù)發(fā)展、又得益于 STF 的開源,業(yè)界開始出現(xiàn)了云測(cè)平臺(tái)的概念,將真機(jī)設(shè)備、任務(wù)管理、自動(dòng)化框架以及專項(xiàng)測(cè)試方案打包在平臺(tái)中作為服務(wù)提供出去,給用戶帶來了一站式的測(cè)試體驗(yàn)。另一方面,遠(yuǎn)程調(diào)試、設(shè)備調(diào)度等技術(shù)的引入極大的提升了設(shè)備的利用率,測(cè)試人員不再需要為缺少測(cè)試設(shè)備或測(cè)試任務(wù)排隊(duì)耗時(shí)而擔(dān)心。對(duì)于云測(cè)平臺(tái)用戶而言,在此階段常見的測(cè)試形態(tài)是:在本地 PC 上開發(fā)測(cè)試腳本,再上傳至云測(cè)平臺(tái)執(zhí)行,最后可在平臺(tái)中查看測(cè)試報(bào)告,測(cè)試流程簡(jiǎn)單且清晰。

    SoloPi:支付寶開源的Android專項(xiàng)測(cè)試工具

      1.3移動(dòng)測(cè)試 2.0+

      在保留了上述“云測(cè)”的玩法之外,移動(dòng)測(cè)試 2.0+ 時(shí)代下的測(cè)試技術(shù)提供的往往不再是某一個(gè)獨(dú)立的小工具,更多的是帶來一套完整的解決方案,例如為用戶提供一套定制化的 IDE 環(huán)境,結(jié)合錄制回放、圖像識(shí)別等技術(shù),用戶可能只需要做一些簡(jiǎn)單的框選、拖拽就能完成測(cè)試腳本的開發(fā)。另一方面,由于辦公環(huán)境、硬件條件等因素的限制,越來越多的測(cè)試人員希望可以在移動(dòng)端上直接發(fā)起測(cè)試,做到移動(dòng)測(cè)試“移動(dòng)測(cè)”。當(dāng)然,無論是云端、IDE 端、還是移動(dòng)端,都應(yīng)該做到能力互通,即“多端多通”,這樣才能讓測(cè)試方案更加靈活、適用于更多場(chǎng)景。

    SoloPi:支付寶開源的Android專項(xiàng)測(cè)試工具

      2.無線驅(qū)動(dòng)的Android專項(xiàng)測(cè)試方案:Soloπ

      “多端多通”的概念比較廣,僅憑一篇文章可能無法闡述清楚,所以下面將會(huì)重點(diǎn)介紹為了迎接“移動(dòng) 2.0+”時(shí)代,我們?cè)谝苿?dòng)端上實(shí)現(xiàn)的一套無線化、非侵入、免 Root 的 Android 專項(xiàng)測(cè)試方案 Soloπ。直接操控手機(jī),即可實(shí)現(xiàn)自動(dòng)化的功能、性能、兼容性、以及穩(wěn)定性測(cè)試等工作。

      2.1整體架構(gòu)

    SoloPi:支付寶開源的Android專項(xiàng)測(cè)試工具

      這套方案中,底層依賴主要是“無線 ADB、系統(tǒng)輔助功能、Chrome 調(diào)試以及圖像識(shí)別技術(shù)”,后文將會(huì)介紹它們具體的應(yīng)用場(chǎng)景。同時(shí),在底層依賴的基礎(chǔ)上,我們封裝了一套核心能力,由“控件定位、事件驅(qū)動(dòng)、性能采集以及依賴注入”組成,并在服務(wù)層實(shí)現(xiàn)了錄制、回放、數(shù)據(jù)處理等公共服務(wù)能力。在架構(gòu)的最頂端,結(jié)合界面交互邏輯包裝出了各個(gè)功能的入口。

      2.2無線 ADB

    SoloPi:支付寶開源的Android專項(xiàng)測(cè)試工具

      大家都知道,對(duì)于 Android 自動(dòng)化,ADB shell 的執(zhí)行能力是一切的基礎(chǔ)。

      在 PC 上,通過 Android SDK 提供的ADB client 與同樣運(yùn)行于 PC 中的 ADB server 通信,再由 ADB server 通過 USB 與位于設(shè)備中的 Adbd 通信。要實(shí)現(xiàn)一套無線化的方案,必須要擺脫對(duì) USB 線的依賴。好在 Android 系統(tǒng)還提供了一種基于 Socket 的 ADB 連接模式,既然是這樣,那么只需要按照 ADB 通信協(xié)議在端上與本機(jī)的 5555 端口進(jìn)行通信即可獲得 ADB shell 的執(zhí)行能力。

      目前已經(jīng)有一些實(shí)現(xiàn) ADB 通信協(xié)議的 Java 開源項(xiàng)目,如 AdbLib ,他們封裝了一套 ADB 的調(diào)試通信服務(wù),能夠替代 PC 上 ADB Server 的角色。我們?cè)赟oloπ應(yīng)用中集成了 AdbLib 開源庫,包裝成一套 ADB 命令執(zhí)行工具,為 Soloπ 后續(xù)各種專項(xiàng)測(cè)試能力的實(shí)現(xiàn)奠定了堅(jiān)實(shí)的基礎(chǔ)。下面將開始為大家介紹 Soloπ 的幾大核心功能。

      2.3錄制回放

      錄制回放功能基于 AccessibilityService、ChromeDevToolsProtocol、圖像識(shí)別三種模式實(shí)現(xiàn)精確查找,可以在設(shè)備本地實(shí)現(xiàn)回放,也可以轉(zhuǎn)換為 Appium/Macaca 等框架的腳本,對(duì)接云測(cè)平臺(tái)。另外,為了降低用例維護(hù)的成本,我們?cè)诙松线€提供了用例編輯、流程控制的功能。

      2.3.1實(shí)現(xiàn)方案

    SoloPi:支付寶開源的Android專項(xiàng)測(cè)試工具

      在錄制過程中,Soloπ 會(huì)對(duì)用戶的操作進(jìn)行攔截,識(shí)別用戶操作的位置,高亮當(dāng)前操作的控件,記錄用戶當(dāng)前要做的操作類型,在每一步操作后,將操作類型及目標(biāo)控件的各種信息都記錄下來。這里的控件信息包括控件的 ID、文字等基本信息,以及相對(duì)布局、截圖信息等。

      在回放時(shí),Soloπ 會(huì)逐條解析之前錄制的數(shù)據(jù),通過智能查找算法,綜合各種屬性,定位目標(biāo)控件,找到控件后,就會(huì)執(zhí)行相應(yīng)的操作,如點(diǎn)擊、滑動(dòng)等。在所有步驟執(zhí)行后,會(huì)展示本次回放的結(jié)果,包括日志、截圖等信息,作為本次回放的總結(jié)。

      2.3.2控件查找能力

      對(duì)于傳統(tǒng)的 Native 應(yīng)用,通過 UiAutomator dump 獲取的屬性就足以實(shí)現(xiàn)自動(dòng)化了。然而,隨著移動(dòng)端動(dòng)態(tài)化能力的穩(wěn)步發(fā)展,越來越多的應(yīng)用采用了 “Native + H5/小程序” 這種混合開發(fā)的方案。再考慮到近年來手游行業(yè)的飛速發(fā)展,手機(jī)游戲自動(dòng)化測(cè)試的需求也越來越多。為了盡可能的適配各種場(chǎng)景,Soloπ 提供了三種查找模式:

    SoloPi:支付寶開源的Android專項(xiàng)測(cè)試工具

      第一種方案不必多說,核心就是基于 AccessbilityService 生成當(dāng)前控件視圖樹,并記錄下id、文字等屬性,適用于 Native 場(chǎng)景

      第二種方案基于 Chrome 的調(diào)試協(xié)議,通過注入js可以獲得頁面布局以及各元素屬性,控件的定位思路與輔助功能這一套方案是一致的。適用于 H5/小程序場(chǎng)景。

      第三種方案是圖像匹配方案,Soloπ 在端上實(shí)現(xiàn)了一套圖像比對(duì)能力,結(jié)合了模板匹配、特征匹配等算法,并做了一定的適配和調(diào)優(yōu)。適用于游戲自動(dòng)化的場(chǎng)景。此外,在 Soloπ 目前的方案中,圖像匹配能力還會(huì)作為前兩種定位方式的兜底方案,進(jìn)一步的提升控件查找的準(zhǔn)確率。

      2.3.3回放能力

      通過 Soloπ 錄制的用例會(huì)以 JSON 的形式存儲(chǔ)起來,用例不僅可以向上述視頻演示的一樣在設(shè)備本地直接回放,還可以通過 Soloπ 的解析器將用例轉(zhuǎn)換為 Appium、Macaca 等目前主流自動(dòng)化測(cè)試框架的腳本,輕松打通云測(cè)平臺(tái)。另外,得益于文本抓取和圖像識(shí)別能力,Soloπ 還實(shí)現(xiàn)了在 Android 端錄制一遍用例,生成的腳本能夠同時(shí)在 Android、iOS 雙端回放的能力。

    SoloPi:支付寶開源的Android專項(xiàng)測(cè)試工具

      2.3.4更多功能

      Soloπ 還提供了用例步驟的插入、刪除、修改等用例編輯功能,可以有效降低用例的維護(hù)成本。另外,Soloπ 還引入了循環(huán)、條件等流程控制能力,若對(duì)用例進(jìn)行合理編排,可輕松實(shí)現(xiàn)需要重復(fù)操作的工具腳本或是需要暴力回放的穩(wěn)定性測(cè)試腳本。

    SoloPi:支付寶開源的Android專項(xiàng)測(cè)試工具

      錄制回放更多的能力還包括結(jié)合數(shù)據(jù) Mock 解決用例回放不穩(wěn)定的能力、打通性能測(cè)試的能力等等。

      2.4一機(jī)多控

      在各類專項(xiàng)測(cè)試中,兼容性測(cè)試是最為耗時(shí)費(fèi)力的一項(xiàng),測(cè)試人員需要關(guān)注各種系統(tǒng)版本、各大手機(jī)廠商,各種類型的屏幕等等,想要通過純?nèi)斯y(cè)試來保證兼容性測(cè)試的質(zhì)量成本是非常高的。

      Soloπ 在錄制回放能力的基礎(chǔ)上實(shí)現(xiàn)了一套兼容性測(cè)試的解決方案。在錄制回放的場(chǎng)景中,我們先是在一臺(tái)設(shè)備上記錄了用戶的操作,然后再在任意一臺(tái)設(shè)備上實(shí)現(xiàn)操作的回放。如果把場(chǎng)景擴(kuò)展到多臺(tái)設(shè)備上,就可以實(shí)現(xiàn)通過一臺(tái)設(shè)備操控多臺(tái)設(shè)備,我們把這套功能稱為“一機(jī)多控”。具體說來就是主機(jī)與從機(jī)建立 Socket 連接,然后在主機(jī)上將用戶的操作實(shí)時(shí)發(fā)送到各個(gè)從機(jī),在從機(jī)上完成操作的回放。

    SoloPi:支付寶開源的Android專項(xiàng)測(cè)試工具

      一機(jī)多控的環(huán)境搭建比較靈活,手邊的手機(jī)在安裝 Soloπ 后,通過簡(jiǎn)單的建聯(lián)操作即可完成部署。一機(jī)多控適配了目前市面上主流機(jī)型和 ROM,并封裝了一些提升測(cè)試效率的快捷功能,如應(yīng)用安裝、數(shù)據(jù)清理、設(shè)備信息查看等等。

      2.5性能測(cè)試

      提到專項(xiàng)測(cè)試,不得不提性能測(cè)試。近年來,手機(jī)應(yīng)用成為了人們?nèi)粘I钪胁豢苫蛉钡囊徊糠?,這也對(duì)應(yīng)用的使用體驗(yàn)提出了更高的要求。 為了給用戶帶來“絲般順滑”的體驗(yàn),僅僅實(shí)現(xiàn)功能是不夠的,而性能測(cè)試,就是打造優(yōu)質(zhì)應(yīng)用不可或缺的一個(gè)環(huán)節(jié)。然而,性能測(cè)試的開展并不是很容易,一方面,性能測(cè)試具有一定的門檻,很多時(shí)候需要開發(fā)腳本去實(shí)現(xiàn),還要去處理各類兼容性問題。另一方面,大多數(shù)性能測(cè)試方案獲取到的都是一些基本指標(biāo),難以發(fā)現(xiàn)深層次的問題。針對(duì)上述問題,Soloπ 實(shí)現(xiàn)了一套性能測(cè)試工具。包含常規(guī)性能指標(biāo)獲取、響應(yīng)耗時(shí)計(jì)算以及移動(dòng) Lighthouse 三方面功能。

      2.5.1常規(guī)性能指標(biāo)獲取

      Soloπ 支持 CPU、內(nèi)存、fps、流量等常規(guī)指標(biāo)的實(shí)時(shí)獲取,同時(shí)支持將性能數(shù)據(jù)記錄下來,存儲(chǔ)到本地并通過報(bào)表形式展示。Soloπ 還提供了數(shù)據(jù)上傳的功能,可以將數(shù)據(jù)發(fā)送給服務(wù)端做進(jìn)一步的處理。整套性能工具支持手動(dòng)觸發(fā)和廣播觸發(fā),可以和自動(dòng)化測(cè)試輕松打通。

      2.5.2響應(yīng)耗時(shí)計(jì)算

      除了常規(guī)性能指標(biāo)的獲取,Soloπ 還提供了響應(yīng)耗時(shí)計(jì)算的功能。大家都知道,計(jì)算響應(yīng)耗時(shí)的一種常用方法就是基于代碼埋點(diǎn)或是系統(tǒng)日志(比如 activityDisplayed Time),但是這種方法計(jì)算得到的結(jié)果對(duì)于異步加載較多的界面來說會(huì)與用戶實(shí)際的觀感有比較大的偏差。

    SoloPi:支付寶開源的Android專項(xiàng)測(cè)試工具

      Soloπ 基于錄屏分幀能力實(shí)現(xiàn)了一套計(jì)算接近用戶體驗(yàn)的響應(yīng)時(shí)間的方案。具體的說,在開啟錄屏后,Soloπ 會(huì)基于 ADB shell 的 get event 命令監(jiān)聽屏幕的點(diǎn)擊事件,將其作為計(jì)算響應(yīng)耗時(shí)的起點(diǎn),當(dāng)錄屏結(jié)束后,Soloπ 會(huì)從后向前倒序?qū)σ曨l進(jìn)行對(duì)比,查找出界面趨于穩(wěn)定的時(shí)間點(diǎn),并作為計(jì)算的終點(diǎn),二者相減就是響應(yīng)耗時(shí)。

      2.5.3移動(dòng) Lighthouse

      H5/小程序等技術(shù)在移動(dòng)應(yīng)用中的占比越來越高,如何測(cè)試這類應(yīng)用的性能成為了一個(gè)新的課題。接觸過前端性能的同學(xué)都知道,Lighthouse 是前端性能測(cè)試的利器,但是它無法在手機(jī)上直接應(yīng)用。而 Soloπ 所做的,就是基于 CDP 協(xié)議,在客戶端中實(shí)現(xiàn)了一套 Lighthouse 性能測(cè)試工具,它可以獲取 H5/小程序頁面的啟動(dòng)性能、資源流耗、請(qǐng)求質(zhì)量、JS 質(zhì)量、JSAPI 調(diào)用情況與頁面信息,并內(nèi)置了 30 余條前端開發(fā)最佳實(shí)踐,旨在發(fā)現(xiàn)細(xì)粒度的性能問題。

    SoloPi:支付寶開源的Android專項(xiàng)測(cè)試工具

      具體的實(shí)現(xiàn)方案,就是將 Soloπ 與待測(cè)應(yīng)用建立基于 CDP 協(xié)議建立 Websocket 通信,監(jiān)聽頁面發(fā)起請(qǐng)求、接收數(shù)據(jù)、開始加載等事件的回調(diào)、并收集報(bào)錯(cuò)、Trace 等數(shù)據(jù)。再按照啟動(dòng)性能、資源流耗、請(qǐng)求質(zhì)量、JS 質(zhì)量、 JSAPI 調(diào)用情況與頁面信息 6 大維度進(jìn)行數(shù)據(jù)的分類和整理,隨后通過內(nèi)置的規(guī)則對(duì)采集到的結(jié)果進(jìn)行判斷,最終生成報(bào)表并在界面中展示。

    SoloPi:支付寶開源的Android專項(xiàng)測(cè)試工具

      3更多

      作為一套完整的專項(xiàng)測(cè)試方案,除了前面提到的錄制回放、一機(jī)多控、性能測(cè)試外,Soloπ 還提供了數(shù)據(jù) Mock,性能加壓、網(wǎng)絡(luò)模擬、智能 Monkey 等功能。目前 Soloπ 的部分源碼已開源(項(xiàng)目地址:https://github.com/soloPi/SoloPi),歡迎大家加入到項(xiàng)目中,與我們一同開發(fā)出更好用的測(cè)試工具!

    SoloPi:支付寶開源的Android專項(xiàng)測(cè)試工具

    特別提醒:本網(wǎng)信息來自于互聯(lián)網(wǎng),目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實(shí),對(duì)本文以及其中全部或者部分內(nèi)容、文字的真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。本站不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。如若本網(wǎng)有任何內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系我們,本站將會(huì)在24小時(shí)內(nèi)處理完畢。

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)