如何提升GUI自動(dòng)化測(cè)試的穩(wěn)定性?

關(guān)聯(lián)上文:自動(dòng)化測(cè)試總結(jié)(一)
其他參考文檔見(jiàn)文末

GUI測(cè)試的穩(wěn)定性問(wèn)題

關(guān)于這個(gè)問(wèn)題,最典型的情景就是:同樣的測(cè)試用例问麸,在同樣的測(cè)試執(zhí)行環(huán)境下往衷,測(cè)試的結(jié)果有時(shí)是Success,有時(shí)是Fail严卖,這嚴(yán)重降低了GUI測(cè)試的可信性席舍,同時(shí)也是GUI層面的自動(dòng)化測(cè)試位于金字塔最頂端的原因之一。

在實(shí)際的項(xiàng)目過(guò)程中哮笆,GUI測(cè)試幾乎不可能做到100%穩(wěn)定来颤,根據(jù)我的經(jīng)驗(yàn),如果能夠做到 90% 以上的穩(wěn)定性稠肘,就已經(jīng)非常不錯(cuò)了福铅,這需要整個(gè)產(chǎn)品技術(shù)團(tuán)隊(duì)的共同努力才有希望達(dá)成。

要提高 GUI 測(cè)試穩(wěn)定性项阴,首先我們需要知道到底是什么原因引起的不穩(wěn)定滑黔。我們必須找出盡可能多的不穩(wěn)定因素,然后找到每一類不穩(wěn)定因素對(duì)應(yīng)的解決方案鲁冯。我列舉了幾種常見(jiàn)的造成GUI測(cè)試不穩(wěn)定的因素拷沸,如下:

  • 非預(yù)計(jì)的彈出彈出對(duì)話框
    在用例執(zhí)行過(guò)程中,操作系統(tǒng)或被測(cè)系統(tǒng)可能會(huì)突然彈出預(yù)期范圍之外的對(duì)話框薯演,GUI自動(dòng)化測(cè)試有可能就會(huì)因此而失敗撞芍。

解決方案:異常場(chǎng)景恢復(fù)模式?無(wú)界面GUI自動(dòng)化測(cè)試跨扮?

  • 頁(yè)面控件屬性的細(xì)微變化
    如果頁(yè)面控件的屬性發(fā)生了變化序无,哪怕只是細(xì)微的變化,也必定會(huì)導(dǎo)致測(cè)試腳本的元素定位失敗衡创。這可以說(shuō)是GUI自動(dòng)化測(cè)試最大的痛點(diǎn)帝嗡。
    目前,一些商用 GUI 自動(dòng)化測(cè)試工具璃氢,比如 UFT(原QTP)哟玷,已經(jīng)集成了模糊匹配的功能。通常情況下一也,只需要啟用“模糊匹配”選項(xiàng)即可巢寡。如果某個(gè)對(duì)象的定位是通過(guò)模糊匹配完成的,那么椰苟,測(cè)試報(bào)告中將會(huì)顯示該信息抑月,明確告知此次對(duì)象識(shí)別是基于模糊匹配完成的,因?yàn)?GUI 自動(dòng)化工具并不能保證每次模糊匹配都一定正確舆蝴。

解決方案:元素定位采用模糊匹配技術(shù)谦絮?

  • 隨機(jī)的頁(yè)面延遲造成控件識(shí)別失敗
    隨機(jī)的頁(yè)面延遲题诵,也是 GUI 測(cè)試防不勝防的。既然是隨機(jī)的层皱,也就是說(shuō)我們沒(méi)有辦法去控制它性锭,解決辦法是加入重試(retry)機(jī)制。重試機(jī)制是指奶甘,當(dāng)某一步 GUI操作失敗時(shí)篷店,框架會(huì)自動(dòng)發(fā)起重試祭椰。對(duì)于Robot Framework+SeleniumLirary臭家,可以使用有wait until系列的關(guān)鍵字(智能等待),盡量少的使用sleep方淤。
Wait For Condition
Wait Until Element Contains
Wait Until Element Does Not Contain
Wait Until Element Is Enabled
Wait Until Element Is Not Visible
Wait Until Element Is Visible
Wait Until Page Contains
Wait Until Page Contains Element
Wait Until Page Does Not Contain
Wait Until Page Does Not Contain Element

解決方案:重試機(jī)制retry

  • 測(cè)試數(shù)據(jù)問(wèn)題
    測(cè)試數(shù)據(jù)問(wèn)題钉赁,也是造成 GUI 自動(dòng)化測(cè)試不穩(wěn)定的一個(gè)重要原因。比如携茂,測(cè)試用例所依賴的數(shù)據(jù)被其他用例修改了你踩。要解決此類的問(wèn)題,就要回歸到第一篇中所談到的內(nèi)容讳苦,必須要保證用例之間的獨(dú)立性和盡量減少對(duì)執(zhí)行環(huán)境的依賴带膜。Robot框架本身不會(huì)規(guī)定Case執(zhí)行的順序,所以從某種程度上來(lái)說(shuō)同一層級(jí)的Cases是隨機(jī)執(zhí)行的鸳谜。很典型的情況就是膝藕,測(cè)試用例在本地調(diào)試時(shí)怎么跑怎么過(guò),放到Server上所有Cases一起跑的時(shí)候就會(huì)Fail,還可能是偶發(fā)的咐扭,這種情況下就很可能是由于其他Case的痕跡影響到了它芭挽,查找問(wèn)題的根源往往比較耗時(shí)。

解決方案:保證用例之間的獨(dú)立性和盡量減少對(duì)執(zhí)行環(huán)境的依賴

界面自動(dòng)化測(cè)試蝗肪,它最接近用戶真實(shí)場(chǎng)景袜爪,也容易發(fā)現(xiàn)問(wèn)題,但它的實(shí)現(xiàn)成本最高且太容易受外部依賴薛闪,容易影響腳本成功率辛馆。總體來(lái)說(shuō)豁延,適當(dāng)?shù)慕缑孀詣?dòng)化測(cè)試是有必要的昙篙,但是真的沒(méi)有必要在UI層投入太多精力。
【To be continued...】

參考文檔

  1. 《軟件測(cè)試52講》术浪,極客時(shí)間 2018-08-06 茹炳晟
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末瓢对,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子胰苏,更是在濱河造成了極大的恐慌硕蛹,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異法焰,居然都是意外死亡秧荆,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門埃仪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)乙濒,“玉大人,你說(shuō)我怎么就攤上這事卵蛉“涔桑” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵傻丝,是天一觀的道長(zhǎng)甘有。 經(jīng)常有香客問(wèn)我,道長(zhǎng)葡缰,這世上最難降的妖魔是什么亏掀? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮泛释,結(jié)果婚禮上滤愕,老公的妹妹穿的比我還像新娘。我一直安慰自己怜校,他們只是感情好间影,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著韭畸,像睡著了一般宇智。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上胰丁,一...
    開(kāi)封第一講書(shū)人閱讀 49,772評(píng)論 1 290
  • 那天随橘,我揣著相機(jī)與錄音,去河邊找鬼锦庸。 笑死机蔗,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的甘萧。 我是一名探鬼主播萝嘁,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼扬卷!你這毒婦竟也來(lái)了牙言?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤怪得,失蹤者是張志新(化名)和其女友劉穎咱枉,沒(méi)想到半個(gè)月后卑硫,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蚕断,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年欢伏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片亿乳。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡硝拧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出葛假,到底是詐尸還是另有隱情障陶,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布桐款,位于F島的核電站咸这,受9級(jí)特大地震影響夷恍,放射性物質(zhì)發(fā)生泄漏魔眨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一酿雪、第九天 我趴在偏房一處隱蔽的房頂上張望遏暴。 院中可真熱鬧,春花似錦指黎、人聲如沸朋凉。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)杂彭。三九已至,卻和暖如春吓揪,著一層夾襖步出監(jiān)牢的瞬間亲怠,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工柠辞, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留团秽,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓叭首,卻偏偏與公主長(zhǎng)得像习勤,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子焙格,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

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