13帶你看一個企業級的自動化測試解決方案

同學們好,我是網易AirtestProject的團隊成員曉娟,歡迎大傢來到我們的視頻教程專欄《14天Airtest自動化測試小白課程》。

不知不覺,我們的視頻課程也接近尾聲啦。在前面的課程裡,我們詳細跟大傢介紹瞭Airtest和poco測試框架以及AirtestIDE的使用。

據統計,目前已經有上千傢企業和數萬名測試或者開發人員在使用我們開源的測試框架進行UI層面的自動化測試工作,但是,如果僅僅是使用測試框架和IDE進行一些輕量級的、小規模的自動化測試,其實是不能滿足一整個企業的自動化測試需求的。企業在自動化測試的探索和實踐上,還會考慮更多、更復雜的問題。

比如:如何開展大規模的自動化測試實踐;如何解決持續集成的問題;如何解決企業的設備資源、測試資源、應用資源等的統一管理問題。

使用我們開源框架的外部企業,也會在這個基礎上去做更多的測試平臺開發或者是持續集成的搭建。

網易也是如此,所以今天我們就給大傢介紹下網易內部都在使用的一套自動化測試解決方案:私有雲自動化測試解決方案。

先來看下我們整個方案的一個總覽:

這是一套軟硬件一體的自動化測試解決方案,最底層呢,就是我們測試必備的一些設備資源,比如真機、雲手機等等;

往上一層呢,就是用來管理、維護我們最底層的這些設備資源的管理系統,叫做DeviceKeeper。有瞭這個設備管理系統,我們不僅可以在線管理、維護、監控這些真機設備;還可以將這些真機資源通過遠程的方式提供給更上一層的一些自動化測試框架,讓這些自動化測試框架可以連接到我們的真機設備,來進行腳本編寫、調試等工作。

提到腳本編寫、調試,那肯定少不瞭一款好用的編輯器,之前我們也有學習過我們官網上可以免費下載的AirtestIDE,但是這套方案裡面的AirtestIDE呢,功能做瞭更多升級,叫做企業版IDE,等會呢我們也會詳細介紹下。

最後呢,就是這個最上層的雲測試平臺瞭,解決瞭設備資源和腳本編寫的問題之後,就要考慮腳本管理、用例管理和大規模的任務調度這些問題瞭;Airlab雲測試平臺就是為瞭解決這些問題而開發出來的。

大致的瞭解瞭我們的私有雲方案之後,我們接下來將會分成5部分的內容,更加深入地帶大傢來看一下這個方案以及它的實際應用。

設備集群--工業級機櫃和便攜式手提機櫃

先來看下我們的第一部分內容,設備集群的搭建。我們為什麼要搭建設備集群呢?

其實,在公司內部探索大規模自動化實踐的時候,我們就發現,隨著測試設備逐漸增多,設備的借用、歸還,設備的日常維護都非常耗費人力和時間,設備的利用率就會很低;並且我們還發現,如何給各種類型的測試任務提供穩定的設備資源也是急需解決的一個問題。

因此,我們就在考慮,能不能有一種科學的管理方案,既可以讓維護的同事能夠去批量管理、維護這些設備;又可以讓測試同事迅速並且靈活的獲取到指定的設備或者是大量的設備來進行回歸性測試或者兼容性測試。

基於以上痛點,我們設計瞭一套工業級的手機集群機櫃,機櫃上面部署好瞭我們的控制節點,然後將我們的測試設備統一上架到這個機櫃上面之後,管理人員就可以通過機櫃配套的管理平臺,在線監控設備的狀態,並且對設備實施批量的維護和管理,從而大大提高瞭設備維護的效率。

舉個例子,1個設備管理員,對100臺設備進行開關機操作,如果是一臺臺手動去處理的話,可能大半天的時間就過去瞭。但是對於機櫃上面的100臺設備來說,不過就是2個簡單的網頁操作,批量選取100臺設備,點擊重啟操作,幾秒鐘的操作,然後管理人員就可以坐等設備自己關機重啟啦~

5ff98f7a30d84b2ef55f8dd3b24bc7ad

而測試人員需要使用設備的時候呢,也無需進行線下的借用和歸還,直接遠程就可以訪問機櫃上面的任意一臺或者多臺真機,對它進行調試,或者運行腳本等工作。用完之後斷開連接即可。

另外,隨機機櫃版本的迭代,現如今這個機櫃已經持有瞭多項專利,並且機櫃的設備承載量也支持靈活定制,已有8*4、8*10、9*10等不同規格。良好的通風設計和散熱裝置,也可實現設備的有效散熱,以保障持續測試時的設備穩定性。每層設備抽屜均可以抽拉並支持獨立工作,方便設備的上架與維護;另外機櫃還內置瞭工業級的網絡環境,讓批量設備同時運行任務的時候也有流暢的網絡。

這裡我們可以來看一下調用整個機櫃的設備跑一個測試任務的視頻:

另外,設備集群的形態並不僅僅是局限於上面這種中大型的機櫃,我們還設計瞭便攜式的手提機櫃,可以放置10臺設備,真正實現,提到哪裡,就測到哪裡:

這種規模的機櫃,常用於一些效果演示場景;或者是一些特殊場地的測試,比如提到機場去,測試在機場網絡下面,遊戲的一個延遲情況等等。

雖然說,上面我們介紹的機櫃管理方案已經大大地解決瞭我們非常多的問題,但是在我們的長期使用過程中,又發現瞭另外一個比較嚴重的問題,就是我們機櫃上面的設備長期連著USB線,設備就會過充,進而導致設備漲殼、電池老化等設備故障問題頻發。

針對這個問題,我們又對機櫃進行瞭一次升級,把普通的usb hub,升級成瞭可智能控電的hub,結合我們的軟件智能控電系統,就可以實現機櫃設備集群的遠程USB插拔維護、鋰電池自動化充放電管理,大大減少瞭電池脹殼和電池老化等問題。

接下來我們來看下智能控電hub的演示視頻:

這個hub工作的背後呢,其實是我們都是通過程序來控制的。

至此,我們整個真機集群的內容就介紹完瞭。總的來說,機櫃設計的好壞,關乎到我們批量管理的難易程度,也關乎到真機設備的穩定性和故障率。

設備管理系統--DeviceKeeper

那真機集群搭建好之後呢,我們就需要一個平臺,來管理維護這些集群,並且把集群的真機資源提供給各種測試框架去編寫腳本或者執行測試任務。

與我們剛才所說的機櫃配套的設備管理平臺,就叫做DeviceKeeper。我們通過一個演示視頻,來看下這個它究竟可以幫我們做些什麼?

首先是查看機櫃的集群狀態,我們可以看到機櫃上面有多少設備,設備現在的狀態是如何的;還可以把鼠標放到對應的設備上面查看設備詳情;另外畫面上的手機位置與現實擺放位置是一一對應的,更加方便我們維護與管理。

然後是查看設備的詳細信息,可以看到設備的型號、序列號、系統版本等信息,還可以按自己要求篩選指定的設備。

另外DeviceKeeper還提供瞭雲真機功能,相信這個功能大傢都非常熟悉瞭,市面上也有不少的產品。雲真機的作用呢,就是可以幫助我們遠程調試設備,比如在傢辦公的時候,我們的測試人員也可以非常便捷地獲取到雲真機來進行調試和測試任務。

日常維護的功能,就是為瞭方便機櫃或者設備管理員可以在線上,批量維護、管理我們線下的設備資源,可以大大提高設備維護的效率。

監控報警呢,就是查看和設置機櫃或者設備的一些異常信息,一旦觸發瞭我們設置好的標準線,就會給對應的管理人員推送警示信息。

使用統計呢,可以幫助我們查看機櫃設備的使用情況,方便我們瞭解設備的利用率,以此去優化我們機櫃設備的分配情況。

最後呢,我們還可以在DeviceKeeper上設置各種管理權限,增加系統管理員啊,或者限制隻有公司內的部分項目組才可以使用當前機櫃的設備等等。

測試框架與企業版IDE

那剛才我們看到的功能,大部分都是方便設備管理員去維護、管理設備的,當然還有個雲真機功能,是可以讓測試人員去實現遠程調試設備。

解決瞭穩定高效的設備資源問題呢,接下來最重要的事情,就是獲取這些設備資源,來進行自動化腳本編寫、生成測試報告這些工作瞭。

首先是測試框架,一方面,它的平臺通用性要好一些,需兼容主流的Android、ios原生、各種遊戲引擎、小程序和H5等等;另一方面,它的上手門檻也要低一些,才可以讓公司快速落地這個自動化解決方案。

ab031fd7b164f3a07a597f38ac7dc9d5

那我們前些課程裡面學習的Airtest和Poco,就是為瞭滿足這些需求的,之前也跟大傢詳細介紹並使用過瞭,這裡就不再贅述。

更重要的是,我想跟大傢聊一聊企業版的AirtestIDE,它最大的特點,是不僅支持連接本地的設備,還支持連接DeviceKeeper上面的遠程設備;在此基礎上,我們可以在手邊沒有測試設備的情況下,遠程連接DeviceKeeper的設備來進行腳本編寫、調試等工作。

另外,企業版IDE支持批量運行功能,不論是連接多臺本地設備,還是連接多臺DeviceKeeper上面的遠程設備,都可以在企業版IDE上進行批量運行任務,接下來呢,我們就用一個視頻,來演示下如何獲取DeviceKeeper上面的多臺設備進行批量運行任務:

4e9d5c1d509c04d17192d4941081a647

這裡演示的是利用企業版IDE進行並行式任務,也就是我們常說的兼容性測試;任務運行結束之後,支持在企業版IDE上一鍵生成聚合的測試報告,在聚合報告上,我們可以查看整個批量任務的整體運行情況,也可以查看具體某一臺設備的詳細到每個步驟的運行報告。

當然,企業版IDE還支持另外一種運行方式,就是分佈式運行,也就是我們常說的回歸性測試,這裡就不再演示啦。

除此之外呢,企業版IDE還支持使用高清模式來連接我們的設備,該模式下,畫面的兼容性、清晰度和流暢度都比較好:

自動化測試平臺--Airlab雲測試平臺

那我們的測試框架和編輯器都講完啦,回到我們解決方案的概覽上,看下這個最上層的自動化測試平臺--Airlab雲測試平臺,可以看到,這個平臺包含瞭用例管理、腳本管理、任務預約、任務調度、雲端報告和管理後臺等一系列的功能,給我們的持續集成和測試資源管理提供瞭很好的解決方案。

像腳本管理、用例管理功能呢,可以幫助我們維護與積累項目組內的測試腳本和用例資源,便於測試團隊協作;防止出現出現資源丟失或者無法共享的情況;

而其他測試資源,像應用和測試賬號的管理功能,則可以是我們的測試流程更加規范和專業;

任務預約與調度功能呢,可以幫助我們實現線上發佈定時任務,調度機櫃設備資源完成回歸、兼容等任務,跑測完成之後,還能自動輸出報告;這就可以幫助我們實現持續集成,日常打包完成後,我們可以使用這個平臺自動開啟測試任務並自動生成測試報告。

最後我們的任務報告,也是聚合的測試報告,它不僅提瞭供詳細的跑測數據,還提供性能數據。

接下來我們可以通過一個簡單的演示視頻,來看下如何在我們的Airlab雲測試平臺上開啟自動化任務跑測、並且如何跟Jenkins結合,實現CI集成來完成自動化測試:

在剛才的視頻演示中,我們可以看到,Airlab雲測試平臺打通瞭測試開發的持續集成,測試人員可以自定義任務的各種配置,然後調度機櫃上的設備集群靈活開啟或者設置預約任務。

運行完畢的任務也會自動生成合並的測試報告,用於查看整個任務的跑測結果。

當然,報告也提供部分性能數據給測試人員查看,系統在自動化測試任務過程中,會自動采集用例腳本運行時的設備性能數據,包括安裝時間、啟動時間、CPU、內存、幀率、網絡流量及電池溫度情況等。

除瞭任務的整體情況之外,我們還可以查看每個用例在單臺設備上的詳細運行報告,包括用例概況,運行的設備信息,運行過程錄屏,每個執行步驟的結果和截圖和錯誤信息等。

測試人員根據這份可視化的測試報告,可以快速查看測試任務運行結果,定位產品問題。

解決方案的落地應用

那麼瞭解完整套方案包含什麼軟硬件之後,我們來看下這套私有雲方案具體能給我們帶來哪些收益:

首先是幫助我們提升產品質量,使用這套方案可以可以7*24h幫我們覆蓋測試場景,每次版本發佈前,我們都可以進行大規模的自動回歸測試,幫助我們及時發現問題,嚴格把控產品質量,減少線上事故帶來的損失。

其次是大幅度節省人力;一些繁復的手工測試,可以借助自動化測試來完成;大量的設備經過機櫃的統一管理後,能借助我們的設備管理平臺批量管理成百上千臺設備,維護時間和人力都將大幅度減少。

然後還有就是提高設備的利用率,測試人員可以非常便捷地獲取到機櫃上的任意一臺或多臺測試設備開展測試工作,另外自動的設備調度和預約系統可以讓每一臺設備得到最充分的利用。借助於智能控電系統,也可以高效維護設備集群、保障設備電池壽命。

最後是可以靈活管理各種測試資源,Airlab雲測平臺支持對測試資源,如應用包體、測試腳本、測試用例、測試賬號等進行集中存儲及管理,便於測試資源的留存和積累 。測試人員隻需準備測試資源及提交配置,即可啟動測試任務,並在大批量設備上進行任務跑測。

那落地實踐這塊呢,首先就是網易內部的實踐,這套自動化測試解決方案已在網易內部落地實踐五六年,至今也服務著數十個項目組和大量的APP或者遊戲產品。

當然,深度合作的外部企業也有很多,像谷歌、headspin、華為雲手機、B站、科大訊飛等等,這裡就不再一一舉例。

至此,一整套的自動化測試解決方案我們就介紹完畢瞭。今天的課程到這裡也差不多要結束啦,對我們私有雲方案感興趣的同學,可以添加我們官方助手的微信咨詢詳情:

下節課就是我們小白系列課程的最後一課啦,我們會在下節課對整個小白系列課程做一個內容匯總,那麼下期我們不見不散啦~

发表回复

相关推荐

扁平胸,漏鬥胸,Nuss改良手術失敗

本人是扁平胸復合漏鬥胸,於2020年在廣東省第二人民醫院做的手術,放瞭兩條鋼板。我在術前的兩天拍瞭胸片,驗瞭尿和大便,還...

· 1分钟前

如何登錄華為雲服務器

1,首先第一步註冊華為雲,註冊華為雲鏈接如下:http://account.huaweicloud.com/obmgr/invitation/invitation.htm

· 1分钟前

水刺非织造工艺的生产流程

水刺非织造工艺被称为射流喷网或水力缠结工艺,是一种的非织造布加工技术。水刺非织造工艺通过高压水流的连续喷射产生水力作 ...

· 1分钟前

蚊子生來就愛吸血嗎?可知背後的難言之隱!

相信每個人都有被蚊子叮咬的經歷。看著身上被叮咬的包,你也許會問:“為什麼蚊子要吸我的血呢?它們身體的結構,特別是能刺入...

· 2分钟前

现代战争中最强大的坦克:了解世界上最流行的10种坦克,它们的优缺点以及在哪些战争中曾出现过

世界上强国流行的一些坦克: 1. M1A2 Abrams M1A2 坦克(美国) 2. T-14 Armata T-14 阿玛塔坦克(俄罗斯) 3. Chall ...

· 3分钟前