基于圖像對比的穩(wěn)定性與一致性測試

本文章轉(zhuǎn)載于搜狗測試

在互聯(lián)網(wǎng)應用高速發(fā)展的時代,為了提供高可用、安全物舒、高效的服務色洞,發(fā)布應用前會從技術(shù)的角度對后臺服務進行壓力測試、穩(wěn)定測試冠胯、安全測試火诸、接口測試、容錯測試等一系列測試環(huán)節(jié)荠察。如何從實際用戶的角度對服務器的一致性和穩(wěn)定性進行測試呢置蜀?本文基于phantomjs、opencv圖像處理悉盆、Javascript及Web開發(fā)等技術(shù)盯荤,從用戶角度出發(fā)設(shè)計了一套針對服務一致性和穩(wěn)定性測試的解決方案。

方案概述

本方案通過自主研發(fā)的測試機器狗Tigo驅(qū)動瀏覽器焕盟,用同樣的請求參數(shù)在短暫時間內(nèi)訪問服務,同時截取瀏覽器全屏或特定區(qū)域的圖像秋秤,然后對相應的一組圖片進行相似性對比分析,最終實現(xiàn)對服務一致性和穩(wěn)定性的測試。

技術(shù)特點

利用JavaScript技術(shù)脚翘,可以忽略掉頁面中不感興趣的區(qū)域灼卢,只針對目標區(qū)域進行圖像相似度對比。比如當頁面中存在調(diào)試信息時堰怨,為了保證截圖易于觀察且避免調(diào)試信息影響圖像對比結(jié)果芥玉,截取屏幕圖像前會隱藏調(diào)試信息,同時為了方便發(fā)現(xiàn)、跟蹤問題备图,現(xiàn)場又會恢復調(diào)試信息的展現(xiàn)灿巧;利用opencv技術(shù)對判斷為不一致的圖片進行分塊標紅,大大提高人工手動測試效率赶袄;當測試人員查看報告時张咳,可放大對應測試組的截圖以方便其閱讀能真;平臺化的使用入口月而。

測試報告

報告可以通過郵件和網(wǎng)頁的形式展現(xiàn)狠裹,報告中統(tǒng)計了一致圖片扛芽、不一致圖片和相似圖片的比例挽唉∨2福可從整體上獲得本次被測服務的穩(wěn)定性情況蟆豫。通過點擊結(jié)果詳情零院,可以分別查看相應測試的對比截圖效果溉跃、抓取時間、現(xiàn)場html頁面以及服務訪問url告抄。

適用場景

1多次訪問部署在同一主機的服務撰茎,對服務進行穩(wěn)定性測試。

2對部署在不同主機上的相同服務進行訪問,進行一致性測試打洼。

方案收益

1與人工驗證相比龄糊,大大提高了測試效率。當對2個環(huán)境分別執(zhí)行2700個用例募疮,進行一致性測試時炫惩。完成本次測試任務,通過tigo機器人耗時大概1個半小時阿浓;而通過人工手動則需要一個測試人員耗費幾十個小時他嚷。

2與通過人眼判斷網(wǎng)頁渲染結(jié)果是否一致相比,基于圖像處理技術(shù)的方法提高了一致性測試的正確性。

實現(xiàn)細節(jié)

PhantomJS是一個基于webkit內(nèi)核無界面瀏覽器,可通過selenium進行驅(qū)動打開網(wǎng)頁芭毙、截取圖片,截圖前可以注入javascript代碼隱藏或只渲染關(guān)注的頁面區(qū)域,通過document.querySelectorAll找到元素爸舒,再動態(tài)設(shè)置對element.style.display=None進行設(shè)置以達到隱藏目的。利用opencv技術(shù)可以對截取的圖像進行相似性分析.整體流程如圖一所示:

圖一測試流程

如何去判斷兩張截圖是否一致呢稿蹲?從機器學習的角度來說,要先選取圖像的特征鹊奖,然后在進行比對苛聘。很顯然,在我們的項目中忠聚,并沒有對圖像進行過訓練(即沒有建立某種模型)设哗,圖像的像素值因此成為了計算機最容易識別到的特征,于是本文選擇了利用opencv技術(shù)進行圖像對比分析。

從肉眼的角度來說两蟀,兩張相似圖片的直方圖也是比較重合的网梢,因此通過計算兩張圖像直方圖的重合度,就可以得出這兩張圖像的相似程度(相似度為1.0代表兩張圖像完全一致)赂毯。但是战虏,基于直方圖的圖像對比有一個明顯的缺點拣宰,即它是按照顏色的全局分布來看的,無法描述顏色的局部分布和色彩所處的位置烦感。因此巡社,本文結(jié)合使用了另一種圖像對比技術(shù):平均哈希算法。該算法是通過比較灰度圖每個像素與平均值來實現(xiàn)的手趣,最后的結(jié)果為漢明距離(漢明距離為0晌该,代表兩張圖像完全一致)。本文通過設(shè)定灰度直方圖相似度與漢明距離雙閾值(閾值可以根據(jù)實際需要調(diào)整)的方法绿渣,給出兩張截圖相似度結(jié)果(一致朝群,相似,不一致)中符。該算法的簡單流程圖二:

圖二圖片對比流程

郵件報告輸出如下

一致的case詳情如下:

不一致的case詳情如下:

對應帶有調(diào)試信息的現(xiàn)場html頁面如下:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末姜胖,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子舟茶,更是在濱河造成了極大的恐慌谭期,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吧凉,死亡現(xiàn)場離奇詭異隧出,居然都是意外死亡,警方通過查閱死者的電腦和手機阀捅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進店門胀瞪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人饲鄙,你說我怎么就攤上這事凄诞。” “怎么了忍级?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵帆谍,是天一觀的道長。 經(jīng)常有香客問我轴咱,道長汛蝙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任朴肺,我火速辦了婚禮窖剑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘戈稿。我一直安慰自己西土,他們只是感情好,可當我...
    茶點故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布鞍盗。 她就那樣靜靜地躺著需了,像睡著了一般跳昼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上援所,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天庐舟,我揣著相機與錄音,去河邊找鬼住拭。 笑死挪略,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的滔岳。 我是一名探鬼主播杠娱,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼谱煤!你這毒婦竟也來了摊求?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤刘离,失蹤者是張志新(化名)和其女友劉穎室叉,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體硫惕,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡茧痕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了恼除。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片踪旷。...
    茶點故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖豁辉,靈堂內(nèi)的尸體忽然破棺而出令野,到底是詐尸還是另有隱情徽级,我是刑警寧澤气破,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站餐抢,受9級特大地震影響堵幽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜弹澎,卻給世界環(huán)境...
    茶點故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望努咐。 院中可真熱鬧苦蒿,春花似錦、人聲如沸渗稍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至报强,卻和暖如春灸姊,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背秉溉。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工力惯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人召嘶。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓父晶,卻偏偏與公主長得像,于是被迫代替她去往敵國和親弄跌。 傳聞我的和親對象是個殘疾皇子甲喝,可洞房花燭夜當晚...
    茶點故事閱讀 45,573評論 2 359

推薦閱讀更多精彩內(nèi)容