自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

【NCTS峰會回顧】阿里羽瑤:基于圖像智能算法的端上h5頁面測試提效輕量化解決方案

開發(fā) 前端 算法
2019年10月26日,由Testin主辦的第二屆NCTS中國云測試行業(yè)峰會在京召開,此次峰會以“AI+未來”為主題,匯聚來自國內(nèi)外測試領(lǐng)域的知名專家學者、領(lǐng)先企業(yè)決策者、高層技術(shù)管理者、媒體從業(yè)者等,共同探討高端云測試技術(shù)。

2019年10月26日,由Testin主辦的第二屆NCTS中國云測試行業(yè)峰會在京召開,此次峰會以“AI+未來”為主題,匯聚來自國內(nèi)外測試領(lǐng)域的知名專家學者、領(lǐng)先企業(yè)決策者、高層技術(shù)管理者、媒體從業(yè)者等,共同探討高端云測試技術(shù),幫助測試從業(yè)者了解最前沿行業(yè)趨勢,及最新的行業(yè)實踐。

[[284797]]

會上,阿里巴巴技術(shù)專家羽瑤做《基于圖像智能算法的端上h5頁面測試提效輕量化解決方案》的內(nèi)容分享。羽瑤指出,“自動化能力多多少少都有穩(wěn)定性的問題,我們非常注重算法能力,正在探索基于圖像算法能不能真實檢測頁面的問題。”

以下為羽瑤演講實錄:

大家好我是來自阿里巴巴的羽瑤,我們組主要負責集團的平臺化產(chǎn)品來服務(wù)業(yè)務(wù)測試。這是我演講的目錄結(jié)構(gòu),我首先介紹一下這個方案的背景,我們有一個業(yè)務(wù)團隊負責所有淘系級A+級大促,每次大促頁面非常多,比如19年1到9月總A+級大促59個,A+以上就是S級,比如雙十一這種活動。大促活動非常多,我們前端開發(fā)和技術(shù)做了很多動態(tài)化配置方案來方便頁面及時發(fā)布,就是每次大促活動的每一個會場,會場的發(fā)布顯示時間,要加載的數(shù)據(jù)都可以動態(tài)配置,然后大促活動當中可能運營會及時調(diào)整策略,可能就有一些樓層下掉,或者運營不同配置不同算法,個性化策略來把不同的商品突出出來,包括模塊的配置化,它的頁面結(jié)構(gòu)在整個上線階段會不停的變化。

伴隨著這些問題我們測試時間非常短,比如“99大促”時第一輪預(yù)演,就是指整個頁面的數(shù)據(jù)搭建都完成,有一個比較完整的頁面效果開始,然后到真正的上線可能“99”時候中間就只有4個工作日的時間,因為這些問題,所以我們有一些頁面是測試從來不去介入過程當中的,有一些有問題頁面會泄露到線上用戶看到的頁面中,這塊是缺乏監(jiān)控的,因為我們所有動態(tài)化的配置是沒有實現(xiàn),測試沒有精力兼顧每次改動和變動,我們業(yè)務(wù)團隊幫助他們不停的探索有什么自動化方案可以覆蓋這些問題。

介紹一下現(xiàn)在會場的保障方案有哪些,一是數(shù)據(jù)源管控,商家每次上傳商品,上傳圖片,編輯商品的信息,可能就是在上傳的當時或者N+1時間對這層數(shù)據(jù)做算法檢測和過濾,以及一些清退。另外上線過程當中會做一些數(shù)據(jù)監(jiān)控方案,應(yīng)對這些算法調(diào)整帶來的問題。

測試階段就是一個新頁面剛來的時候,或者有一個新模塊新上線的時候,有大量外包適配投入,業(yè)務(wù)方全民預(yù)演,因為每次新搭建,運營和產(chǎn)品很關(guān)心頁面是否正常,這時候我們可能會組織一輪產(chǎn)品、運營、技術(shù)、測試把大家都拉過來一起看頁面有沒有問題,這兩塊其實都是純?nèi)肆Φ耐度搿?/p>

一部分不太重要的大促活動可能就是運營自己看一下沒有問題,就是這種技術(shù)或者有沒有問題大家自測去保證的。

其實這都是在端上看到的,我們介紹一下現(xiàn)在集團在端上自動化有哪些方案,大概來說其實每一個BU每一個團隊有自己的一套,大體分成三類,一類是基于Appium/Uiautomator,基于開源的框架基礎(chǔ)能力,自己搭建持續(xù)集成的平臺,自己跟自己發(fā)布系統(tǒng)對接寫腳本,純寫腳本的這種。

另外一種是應(yīng)用侵入型,以伽利略為代表,開發(fā)端上SDK,相當于自己調(diào)用自己的能力做腳本驅(qū)動,可能搭載自己守護的APP進程跟后臺做一些設(shè)備驅(qū)動。

現(xiàn)在這一兩年比較火的是天畫的產(chǎn)品,做了模塊級的和數(shù)據(jù)級驅(qū)動,這個模塊只是一個頁面來了以后自己可以寫腳本,底層是基于這個自動化框架能力,一個頁面來了可以定義頁面做哪些模塊切分,哪些模塊有一些ID是固定的可以寫每一個頁面,某一個模塊的某一個控件,這個方案是為了應(yīng)對框架級變動導致自動化運行的失敗,同時結(jié)合我們集團線上流量的抓取,DOOM(采集線上機器的流量,對beta測試機器進行流量回放并對比)的平臺能力,根據(jù)運行數(shù)據(jù)生成頁面的能力,做數(shù)據(jù)驅(qū)動型的運行。

但是這三種可能都有問題,就是需要去寫腳本人工寫腳本,伽利略(使用很多內(nèi)外部底層hack技術(shù),自有守護進程,設(shè)備管理維護,嵌入待測試APP)可能自己定制APP,同時運行來講,穩(wěn)定性都是會有問題的,動化能力多多少少都有穩(wěn)定性的問題,我們非常注重算法能力,正在探索基于圖像算法能不能真實檢測頁面的問題。

下面介紹一下我們的方案,我們的方案跟這個都不太相同,因為他們可能要解決端上h5,所有的Native級別比較多,我們解決的是會場級,是以h5為主。這個是圖像算法、便捷、輕量化、貼合不同業(yè)務(wù)方不同業(yè)務(wù)場景,比如我們有業(yè)務(wù)方卡發(fā)布,他們必須靠一遍我們應(yīng)用,確認沒有問題才可以發(fā)布,另外還有不同業(yè)務(wù)方也時間穿越的方案,就是指你頁面沒有上線階段,外面看不到的時候我們可以調(diào)整底層系統(tǒng)級時間,讓頁面提前進入雙十一狀態(tài)場景當中,會做這些打通再調(diào)系統(tǒng)運行來做提前驗證和檢測。

為了讓大家更有體會,看一下我們的方案運行,這是最簡單的場景例子,可以整體看清楚整體怎么串的,我們手機在任何一個端環(huán)境下可以掃描這個二維碼進入我們的中間頁,中間頁以后就不停去做任務(wù)輪巡,掃了以后,任何機器上傳到我們平臺,可以作為實時運行的手機環(huán)境,我們在這里新建任務(wù),然后這是單頁面檢測場景,現(xiàn)在主要是用在線上頁面巡檢和檢測當中。選擇我們剛才的機器,這后面的場景,我們還有一些算法的定制,行動點定制和應(yīng)對,錄制、回放或者應(yīng)對復(fù)雜頁面交互場景的需求,新建完成以后后面有端定制的,創(chuàng)建完成以后機器就會在這里跑起來,跑的每一步會做截圖,然后截圖上傳到后臺以后,后臺算法就會確實是檢測有沒有什么問題。

這些算法目前來說可能檢測一些空樓層,空樓掉坑,異常詞之類的,這個跑完以后后臺可以實時看到當前頁面效果。這左邊是我們每一步截圖信息,右邊是拼接好的長圖,這個頁面是沒有問題的,在頁面有問題的時候,那邊有錯誤信息的出現(xiàn),大家可以點擊不同的信息到具體的錯誤頁面。然后這個頁面是在A客戶端上跑的,速賣通的,跑完以后跟系統(tǒng)對接的,他們跑完跳到我們這里看具體錯誤信息。

看一下我們的方案怎么做的,我們核心就是手機打開中間鍵做任務(wù)下發(fā),下發(fā)的時候其實輸入只是輸入頁面URL,輸入URL以后我們對這個URL拼接系統(tǒng)運行的參數(shù),比如ID,任務(wù)類型,重要的是我們拼接了我們自己的一個腳本,就是紅色的腳本,拼接完這個腳本以后我們就會落庫,當時我們新建任務(wù)是針對不同機型的,跑完以后就會,機器只要在中間頁輪訓有任務(wù)執(zhí)行的話,他就拿到任務(wù)開始執(zhí)行。拿到任務(wù)我們腳本插入原生頁面當中,我們原來基于頁面本身有模塊可以讀取URL腳本做插入,后面我們直接做天貓端上的,在頁面漏以后會檢測有沒有符合條件的特殊參數(shù),有沒有符合安全限制的一個域名環(huán)境,一個腳本插入到頁面當中。

剛剛演示的場景就是一種半自動調(diào)度為主的方案,那種方案可能有穩(wěn)定性問題,比如說頁面跳轉(zhuǎn)到了異常的錯誤頁面,那個頁面不知道會跳到那里,或者異常場景導致APP關(guān)了的話,自動化方案就停掉設(shè)備離線,我們后面加入自動調(diào)度,就是真機操控能力方便讓它再回到中間頁。

因為我們有這個能力,支持三種任務(wù)類型,一種是錄制型任務(wù),我們早期開人工錄制口子,就是人工去在平臺上新建任務(wù)后做操作,操作的每一步都會實時上傳到平臺上,當運行任務(wù)完成后可以確認這一次的任務(wù)做錄制,剛剛演示的一種場景就是自動化錄制場景,是純算法,純后臺驅(qū)動的去做哪些行為和操作的,回放型任務(wù)是指模塊級更改上線,頁面級適配場景的,我們針對某一個錄制型任務(wù)在其他機型做回放,這個回放和自動化原理不一樣的是,以前寫腳本大家可能是在其他的機型找某一個iOS或者PaaS是否有這個,然后再做回訪和點擊,我們基于前端開發(fā)需要實現(xiàn)自適應(yīng)的方案,自適應(yīng)方案指UAD設(shè)計375的視覺圖,聯(lián)想情況下應(yīng)該是實現(xiàn)不同尺寸上是等比放大的關(guān)系,我們基于這個原理回放時候會做不同尺寸信息換算做運行、點擊和查找。如果我們點擊某一個位置的話失敗了,這個時候?qū)Ρ染陀袉栴}了,兩種圖可能出現(xiàn)差異,我們就會認為它的自適應(yīng)或者是其它頁面是有Bug的。

我們單頁面場景就是剛剛視頻演示的簡單場景,也是那種場景純算法的,就是做驅(qū)動和單步問題檢測,然后單步就是做滾動操作和最后做全圖拼接。

我們方案的一些細節(jié),剛剛看到我們所有的整個驅(qū)動過程其實就是插入頁面當中的腳本和后臺交互的,我們腳本是怎么做到可以監(jiān)控它的行為,怎么做到操縱點擊呢?其實是結(jié)合了很多庫的能力,就是去檢測手機上的一些TUCH事件,檢測行為做人工錄制場景,還可能根據(jù)一些庫獲取設(shè)備信息的能力,或者設(shè)備ID能力,設(shè)備唯一指紋,利用集團的一些能力做上傳。端內(nèi)截圖方案,我們截圖方案有四種,一種瀏覽器上,腳本監(jiān)測是瀏覽器環(huán)境就調(diào)瀏覽器插件的截圖,如果在端上,淘系段上主流有兩種,淘系就是淘寶天貓用Windone的能力,就是h5使用能力有一個容器能力。支付寶可能是另外一個自己開發(fā)的容器,在容器環(huán)境中我們會調(diào)動容器能力,如果進入異常場景,上傳有問題,我們會借助腳本庫的能力,用純腳本實現(xiàn)來截圖。有了底層的這些,我們可以像人一樣操作頁面滾動和點擊,結(jié)合我們后臺就有一些真機管理,常用后臺管理能力,然后調(diào)動各個方面算法的檢測能力做到實現(xiàn)人工合自動的錄制和回放。

我們剛剛講了截圖有四種場景的,所以我們運行其實可以在瀏覽器或者是任何移動端上運行的,但是在非有容器能力,比如說用純腳本截圖場景APP下可能針對特別復(fù)雜頁面,因為腳本截圖可能會有一些失真的情況。

我們上傳在端內(nèi)的淘系A(chǔ)PP里,上傳到我們的圖片空間做管理,然后到國際站,到AE可能要轉(zhuǎn)海外的基站,我們就上傳到阿里云OSS服務(wù)的位置。

剛剛講到自動調(diào)度來提升它的穩(wěn)定性,可能調(diào)度ATS自動調(diào)度的能力,然后有了這一套之后跟業(yè)務(wù)方整體鏈路,有的是頁面發(fā)布時候就叫我們,或者頁面需要有一些線上巡檢任務(wù)調(diào)我們,或者需要一些其他的創(chuàng)新方案時候,檢測頁面調(diào)我們,現(xiàn)在我們還接了任務(wù),就是有一個訂單,這兩天報了一個問題,就是簽訂的訂單可能空白了也會調(diào)我們應(yīng)用跑一下異??瞻椎臋z測。

我們算法能力就是這些,最終顯示單機檢測有犬兔拼接能力,還有掉坑,適配檢測有含個性化數(shù)據(jù)圖片對比,因為不同賬戶或者同一個賬戶在不同時間訪問頁面也是不一樣的,用傳統(tǒng)的錄制回放對比會有較大的差異問題,然后會檢測異常詞,這會調(diào)用OCR的能力,或者是搶光,這種看業(yè)務(wù)方不同業(yè)務(wù)需求做定制。

大家看一下實際例子,就是素材圖模塊級數(shù)量變動,我們可能通過對比發(fā)現(xiàn)對比失敗人會去看這種問題導致的,還有商品和坑的自適應(yīng),商品坑寫死寬度導致不同機型寬度有問題,這是通過對比能力發(fā)現(xiàn)的。還有空坑能力,頁面圖沒有加載出來,或者默認加載了沒有實時商品數(shù)據(jù)的。然后還有掉坑,這就是指我們會場頁面一行兩個或者一行三個商品坑或者是卷的坑缺失的時候這也是業(yè)務(wù)場景需要關(guān)心的。

還有相同素材,就是我們只是檢測單品,單品如果出現(xiàn)了相同的推薦,相同的品牌或者相同的商品,我們這種場景下面其實后臺算法沒有做到正確打散,打散邏輯有問題的他們也會關(guān)心,還有空樓層的問題,有樓層名稱但是下面整個樓層沒有數(shù)據(jù)。

還有異常詞下面營銷利益點是null,這可能后臺沒有填或者前端拉取異常導致的。整屏或者大半屏沒有數(shù)據(jù),還包括利益點的折疊。

我們介紹其中一種算法,就是含個性化區(qū)塊的圖像對比,運行過程中可以支持登錄自動化賬戶跑,但是難免跑實際場景或者同一個賬戶出現(xiàn)的異常,這是我們需要做圖像對比需要解決的問題。剛剛說我們整個實現(xiàn)是基于前端自適應(yīng),但是理想情況下可以做到100%的完美,但是不同瀏覽器環(huán)境不同開發(fā)的問題,或者邊框級1px適配差異導致累積換算時候,GS換算有精度問題,會有略微差異,我們會首先做一個平移,就是找兩張圖,通過一些換算找到差值最小的匹配位置,這一步目的就是把頂部對企業(yè)。

我們找的位置計算差值區(qū)域,就是兩張圖有差異的部分,這里有噪聲我們進行形態(tài)學操作,拿到主要差別區(qū)域,拿到差別區(qū)域以后,我們用邊緣檢測找到圖片邊緣,然后將差異化大的部分蓋掉,我們對比時候這兩個圖做對比的,然后會計算他們的特征和相似值,通過這個展示框架級差異,個性級差異是可以對比出來的。

除此之外,因為我們剛剛見過很多算法場景,還運用了特征點匹配,OCR,不同分類模型訓練,包括MobileNet。同時,因為插入頁面當中腳本和后臺交互,所以腳本可以拿到多一層信息就是頁面的DOM信息,這是指整個頁面有塊級元素存在,這個在頁面當中具體位置是什么樣的,比如說這里有商品坑,可以拿到這個坑位大小、長寬、具體頂部和左部位置,有這個信息可以進一步提高算法檢測的精度。

我們的運行數(shù)據(jù)是這樣的,如果人力適配投測試過程,主要是參加上線階段,上線前開發(fā)完以后,投入一輪去不同的機器看不同效果。這個在上線階段、測試階段、改完Bug的任何一個階段都可以實時跑,所以我們頁面覆蓋數(shù)比它高很多。同時,因為我們的算法能力,幫助他發(fā)現(xiàn)了更多的體驗類的問題。這是之前6月的數(shù)據(jù),人力投入是當時有設(shè)備異常掉線場景維護,還有一部分是算法結(jié)果人工確認的投入,這種隨著算法精度提升和自動調(diào)度方案的改進,其實是可以進一步縮小的。這個是剛剛演示的單日巡檢,兩小時跑一次,一小時跑一次的場景下檢測到每天頁面有問題的數(shù)。

我的演講到這里結(jié)束,謝謝!

 

責任編輯:張燕妮 來源: 51CTO
相關(guān)推薦

2019-12-05 16:01:24

云計算行業(yè)科技

2016-01-22 09:47:10

HTML5WebGLBIM模型

2011-04-01 16:15:11

Zabbix報錯

2020-12-13 12:14:45

H5開發(fā)H5-Dooring

2019-11-26 17:41:59

AI 數(shù)據(jù)人工智能

2015-07-15 14:38:54

H5移動適配

2015-07-15 12:30:37

移動端H5高清多屏

2017-05-10 07:33:41

AndroidWebView視頻

2022-04-28 15:38:42

WebViewJavaUI

2019-12-05 16:25:26

開發(fā)技能代碼

2019-12-13 11:58:21

AI 數(shù)據(jù)人工智能

2022-10-20 08:34:09

圖像算法商品

2019-11-26 17:52:18

AI 數(shù)據(jù)人工智能

2019-12-05 16:17:59

云計算行業(yè)科技

2019-12-05 16:23:15

開發(fā)技能代碼

2020-06-15 12:20:08

華為

2009-08-08 17:07:57

Intel虛擬化解決方

2023-08-15 08:34:28

頁面制作工具GitHub

2019-11-26 17:44:16

AI 數(shù)據(jù)人工智能
點贊
收藏

51CTO技術(shù)棧公眾號