天天看點

通過合理排程裝置,降低企業裝置成本背景解決方案未來方向免費試用岩鼠雲裝置平台

背景

岩鼠平台,支援雲真機租用,也支援自動化測試。其背後都是大量裝置資源的使用,而真機測試裝置及自動化測試的裝置資源是否能合理利用,關系到企業的裝置成本。如何達到裝置利用最大化呢,有幾個次元需要考慮:

  • 在保證真機測試需求下,合理利用空閑機器進行自動化測試
  • 不同自動化測試類型測試時長不同
  • 不同測試類型對裝置機型要求不同
  • 更大程度的延緩裝置老化

為了保證真機測試需求,同時提升整體自動化測試的成功率和穩定性,也為了能讓各台裝置達到最大使用率,岩鼠平台做了不少設計和優化,積累了一些經驗,在此與各位讀者分享一下。

解決方案

整體概述

首先,由于雲真機和自動化都會占用機器,我們可以根據雲真機的使用需求,為雲真機和不同的自動化測試各自配置設定自己的裝置池子。但由于需求是在一定範圍内波動,不是完全定量的,是以可以将部分裝置設定為共用,這樣能最大程度的将裝置利用起來。

而其中的難點又在于,對于自動化測試來說,有多個裝置池子,不同測試對裝置的要求又不同,通過什麼樣的政策才能更大程度的保障任務成功率和裝置使用率呢?接下來将對此重點介紹。

自動化測試中,從任務建立開始,到任務在各個具體裝置上執行,總共經曆了三個階段,分别是:裝置準備、裝置規則篩選、裝置排位與占用,可選裝置逐階段減少,大體如下:

階段一:裝置準備

本階段主要是初步篩選出适合待配置設定任務的基礎裝置池,其中主要有以下流程:

  1. 若使用者建立任務時有指定的配置設定政策,則預加載,否則使用預設政策,例如目前岩鼠平台開放了“随機”政策,則在此處會預加載“随機”政策設定的關聯限制和篩選偏好;
  2. 不同的測試類型(如相容性,或者是深度智能周遊),需要加載不同的裝置組,一是考慮到術業有專攻,裡面都是經過平台精心挑選和分類的适合該測試場景的裝置,二是盡量減少彼此之間的影響,例如對于同一台裝置,平台是會争取避免上一個跑偏重于性能測試的任務,而下一個卻是跑偏重于穩定性的任務;
  3. 篩選使用者權限範圍内的裝置;
  4. 準備好裝置的各種篩選屬性,并根據一定時間内的已運作任務數和運作時間,通過特定公式算出一個值,可以認為這個值就是該裝置的疲勞系數。

通過上述可知,此處提到的政策和裝置組,都是平台已經預置好的,也會随着已有的運作結果和實際的業務發展而持續演變,并結合大資料平台進行優化,這裡就不再展開了。

階段二:裝置規則篩選

從處理邏輯來看,這階段更像是一個規則引擎,根據需求可加載不同的插件,進一步優選出符合實際測試要求的可運作裝置池,目前已支援的有:

  • 根據app設定去篩選所需裝置的最低/最高版本,例如某些應用隻能運作在Android 6.0以上的裝置,這也是保證任務成功的前提條件之一;
  • 預設會根據疲勞系數和過往任務成功率進行優先級排列,也可以接受自定義權值,例如是看重成功率,則将成功率的權值提高,或者是想要優先使用較“新”的裝置,則可以結合疲勞系數和入庫時間傳入權值,這些都會影響到裝置的推薦分數;
  • 預設是“随機”政策,但也可定制其它政策,例如Android的API周遊,就是從每個Android版本裡面各挑出一台裝置組成測試,以達到測試版本相容性的目的;
  • 可指定特定品牌或特定機型進行測試,當然也少不了TOP10、TOP20、TOP50的次元;
  • ……

這裡的篩選插件互相之間基本是“且”的關系,即對裝置進行層層過濾,若有特殊需求,也可以配置出“或”的關聯;對于有經驗的開發者,檢視接口文檔之後,一般一兩個小時即可開發出一個新插件,測試通過之後就能注冊到容器中,進而對外提供服務。

階段三:裝置排位與占用

經過層層篩選之後,最終落實到占用裝置的環節,又細分出兩大步驟:

  1. 經過上面兩個步驟,每台裝置都會有一個推薦分數,此處會根據分數進行區間劃分(可以考慮下為啥不直接按分數高低倒序配置設定),高分區間會優先被占,分到同一區間的則會進行疲勞系數排隊,系數越小,排名越前,最終得到提權後的裝置隊列;若排名也一緻,則再進行随機出列的處理;
  2. 從隊列取出第一台裝置,若裝置能被占用,則落實到該子任務;若裝置占用失敗,則繼續下一裝置的嘗試,直到沒有空餘裝置,或清空了子任務清單,則整體配置設定完畢。

優缺點

人無完人,更何況是管理了這麼多“性格各異”的裝置的方案呢,先說說好的方面:

  • 由于疲勞系數的引入,除開某些崩得太嚴重的個體,用于自動化測試的裝置都有機會、且平均地被配置設定到任務,需要注意的是,這裡說的平均,不是絕對的平均,還是要看裝置本身的素質,若能力越強,分到的任務也多,反之亦然;
  • 篩選插件可不斷擴充,快速滿足各種配置設定需求;
  • 畢竟最終都是對口的裝置,可有效提高任務成功率。

    至于不好的,在設計之初也是有所預見:

  • 存在一些重複或無用的查詢問題,例如算了好幾台裝置的疲勞系數,但可能在篩選中早早就被過濾了;
  • 并發性能受到限制,考慮這麼一個場景:一個任務不要的裝置,卻是另一個任務需要的。

未來方向

更進一步提升裝置配置設定政策和算法,更大程度的提升裝置使用率,在滿足業務需求的情況下,降低成本:

  • 徹底的分布式處理;
  • 結合大資料,構築更全面的優選規則;
  • 真正AI的引入,實作更精準、更快速的推薦,減少人工開發。

免費試用岩鼠雲裝置平台

趕快來試用下岩鼠雲真機吧!每天都有免費試用體驗額度哦。

岩鼠雲裝置平台-雲端裝置,觸手可及

繼續閱讀