自動(dòng)化測(cè)試兩個(gè)小場(chǎng)景
增加自動(dòng)化測(cè)試代碼的可測(cè)性
豐富報(bào)告
實(shí)現(xiàn)代碼異常的時(shí)候,實(shí)現(xiàn)截圖和打印page_source
實(shí)現(xiàn)方法:try except 配合截圖和page_source操作
特別注意1:
在保存截圖和頁(yè)面源碼時(shí),一定先創(chuàng)建好images、source_path路徑
保存截圖:driver.save_screenshot(路徑名稱)
獲取頁(yè)面源碼:driver.page_source()
異常處理會(huì)影響用例本身的結(jié)果;
解決辦法:在except之后,再把異常拋出
代碼最后加上:raise Exception;
如果用例失敗,拋出異常;否則即使捕獲到異常,用例也會(huì)通過(guò)
特別注意2:
將截圖保存到allure報(bào)告中
allure.attach.file(截圖路徑,name=‘image’,attachment_type=allure.attachment_type.PNG)
將頁(yè)面源碼保存到allure中,以文本的形式存儲(chǔ)
allure.attach.file(源碼路徑,name=‘text’,attachment_type=allure.attachment_type.TEXT)

異常捕獲處理代碼是公共方法和業(yè)務(wù)代碼無(wú)關(guān),不能耦合。
解決辦法,使用裝飾器裝飾用例或者相關(guān)方法。
思路
先把裝飾器架子搭建好
把相關(guān)邏輯嵌套進(jìn)來(lái)
特別注意
使用裝飾器執(zhí)行用例,被裝飾函數(shù)還沒(méi)有執(zhí)行,所以還沒(méi)有self.driver,獲取被裝飾方法的self,也就是實(shí)例對(duì)象,通過(guò)self就可以拿到聲明的實(shí)例變量driver
driver = args[0].driver
前提條件:被裝飾的方法是一個(gè)實(shí)例方法,實(shí)例需要有實(shí)例變量self.driver
解決方法1:獲取driver放到函數(shù)執(zhí)行之后


解決方法2:保證使用裝飾器的時(shí)候,driver已經(jīng)聲明:driver = args[0].driver


一旦被裝飾的方法有返回值,會(huì)丟失返回值
解決方案:return func(*args, **kwargs)
當(dāng)用例執(zhí)行失敗allure報(bào)告中可以查看截圖

當(dāng)用例執(zhí)行失敗allure報(bào)告中可以查看page_source源碼

轉(zhuǎn)載自:https://blog.csdn.net/YZL40514131/article/details/129192733
