自動(dòng)化用例在運(yùn)行過(guò)程中經(jīng)常會(huì)出現(xiàn)不穩(wěn)定的情況,也就是說(shuō)這次可以通過(guò),下次就沒(méi)辦法通過(guò)了,如何去提升用例的穩(wěn)定性?
公司:#小米 #美團(tuán)
崗位:#自動(dòng)化測(cè)試工程師
關(guān)鍵字:#自動(dòng)化測(cè)試 #腳本執(zhí)行 #腳本穩(wěn)定性
1、time.sleep( )
2、driver.implicitly_wait(30)
3、多用 try 捕捉,except處理異常 此時(shí)我們要分析出不穩(wěn)定的原因,然后有針對(duì)性的去解決問(wèn)題。
主要有以下幾個(gè)方面 :
1、網(wǎng)速問(wèn)題:有的時(shí)候網(wǎng)頁(yè)加載的比較慢,在程序執(zhí)行的時(shí)候要操作的元素沒(méi)有顯示出來(lái)。這種情況比較常見(jiàn), 運(yùn)行一次網(wǎng)速好的時(shí)候通過(guò)了,再運(yùn)行一次,頁(yè)面沒(méi)有打開(kāi),就不通過(guò)了。
為了提高穩(wěn)定性,我們只能犧牲運(yùn)行時(shí)間了, 在經(jīng)常檢測(cè)失敗的元素前加上等待時(shí)間,等要操作的元素出現(xiàn)之后再執(zhí)行下面的操作。
2、Selelnium的原因:Selenium1.0和2.0還是有區(qū)別的,有些兒函數(shù)在2.0下運(yùn)行確實(shí)時(shí)而有效,時(shí)面無(wú)效。 如果mouseover()函數(shù),就是這種情況, 我們需要避免使用這類的函數(shù)。
3、多線程的時(shí)候,測(cè)試用例間相互影響。雖然多線程的時(shí)候運(yùn)行速度比較快,但是如果用例之間的耦合性沒(méi)有設(shè)計(jì)好, 也會(huì)影響的,如果用例A先于用例B執(zhí)行的時(shí)候,就會(huì)影響到用例B;反之則沒(méi)有問(wèn)題。
這種情況,如果你的自動(dòng)化測(cè)試工程打算多線程的時(shí)候,提前就要把測(cè)試用例測(cè)試的耦合度比較松,盡量沒(méi)有任何關(guān)系,因?yàn)槎嗑€程的執(zhí)行順序是不受控制的。