python+unittest自動保存截圖

自動化測試過程救鲤,針對失敗的用例久窟,我們有時候需要保存截圖,或者想要在html測試報告中體現(xiàn)截圖本缠,如何實現(xiàn)呢斥扛?
這里先說說我的思路:利用webdriver下的截圖方法實現(xiàn)自動截圖,然后再對該方法進行封裝

首先丹锹,selenium中的webdriver提供了三種保存截圖的方法

1犹赖、driver.get_screenshot_as_file(filename)

將截圖保存為文件队他,filename為要保存的文件路徑和文件名

2、driver.get_screenshot_as_base64()

將截圖保存為base64編碼格式峻村,供后面html報告中使用

3、driver.get_screenshot_as_png()

將截圖保存為二進制形式锡凝,用到的好像很少

這里我只針對前兩種方法做了實踐粘昨,直接上代碼

方法一:保存為文件

  • 截圖方法代碼:
def save_screen_shot_as_file(self,method_name):

'''這是將截圖保存在文件夾中'''

    self.img_path =r'C:\Users\PycharmProjects\web自動化\picture'

    self.img_name = time.strftime('%Y-%m-%d_%H-%M-%S')+'.png'

    self.method_name =method_name

    self.driver.get_screenshot_as_file(self.img_path+'\\'+method_name+self.img_name)
  • 基類BasePage.py代碼:
#判斷是否登陸成功
def check_login_state(self,*locator):
    try:
        self.driver.find_element(*locator)
        return True
    except Exception as e:
        print("登陸失敗:%s" % e)
        #添加失敗截圖,并保存到一定目錄下
        self.test_name = sys._getframe().f_code.co_name  #獲取當前調(diào)用函數(shù)的名字
        GetScreen(self.driver).save_screen_shot_as_file(self.test_name)
  • 執(zhí)行結(jié)果:

方法二:保存為base64編碼格式

  • test_login.py代碼如下:
@ddt()
class TestCase(unittest.TestCase):

    @classmethod
    #初始化類
    def setUpClass(cls):
        cls.driver = webdriver.Chrome()
        print("用例開始執(zhí)行了窜锯!")
        cls.driver.get("http://www.xxx.com/")
        # 窗口最大化
        cls.driver.maximize_window()
        # 頁面添加加載等待時間
        cls.driver.implicitly_wait(5)
        cls.imgs=[]

    @classmethod
    #釋放資源類
    def tearDownClass(cls):
        cls.driver.quit()
        print("用例執(zhí)行完畢张肾,退出瀏覽器!")
   
    #創(chuàng)建保存圖片方法
    def add_img(self):
        self.imgs.append(self.driver.get_screenshot_as_base64())
        return True


    @data(('15800000001','xxxxxx'))
    @unpack
    def test_1_login(self,username,password):
        t = IndexPage(self.driver)
        #登陸鏈接
        t.to_login()
        self.driver.implicitly_wait(3)
        #輸入登陸信息登陸
        l =LoginPage(self.driver)
        l.login_input(username,password)
        self.add_img()  #保存截圖锚扎,供測試報告使用

  • run_case.py文件代碼如下:
class RunSuite():

    def run_suite(self):
        # 定義讀取測試文件的目錄
        test_case_path = r'C:\Users\PycharmProjects\web自動化\TestCase'
        # 定義報告存放目錄
        report_path = r'C:\Users\PycharmProjects\web自動化\report'
        report_file = 'report' + time.strftime("%Y-%m-%d_%H_%M_%S") + '.html'

        discover = defaultTestLoader.discover(test_case_path, pattern='test*.py')

        with open(report_path + '\\' + report_file, 'wb') as f:
            runner = HTMLTestRunner(stream=f, title="網(wǎng)站登陸測試報告", description="登陸用例執(zhí)行結(jié)果", verbosity=1)
            runner.run(discover)

if __name__ == '__main__':
    run = RunSuite()
    run.run_suite()

  • 執(zhí)行結(jié)果:
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末吞瞪,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子驾孔,更是在濱河造成了極大的恐慌芍秆,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件翠勉,死亡現(xiàn)場離奇詭異妖啥,居然都是意外死亡,警方通過查閱死者的電腦和手機对碌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門荆虱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人朽们,你說我怎么就攤上這事怀读。” “怎么了骑脱?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵菜枷,是天一觀的道長。 經(jīng)常有香客問我惜姐,道長犁跪,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任歹袁,我火速辦了婚禮坷衍,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘条舔。我一直安慰自己枫耳,他們只是感情好,可當我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布孟抗。 她就那樣靜靜地躺著迁杨,像睡著了一般钻心。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上铅协,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天捷沸,我揣著相機與錄音,去河邊找鬼狐史。 笑死痒给,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的骏全。 我是一名探鬼主播苍柏,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼姜贡!你這毒婦竟也來了试吁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤楼咳,失蹤者是張志新(化名)和其女友劉穎熄捍,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體爬橡,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡治唤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了糙申。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宾添。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖柜裸,靈堂內(nèi)的尸體忽然破棺而出缕陕,到底是詐尸還是另有隱情,我是刑警寧澤疙挺,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布扛邑,位于F島的核電站,受9級特大地震影響铐然,放射性物質(zhì)發(fā)生泄漏蔬崩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一搀暑、第九天 我趴在偏房一處隱蔽的房頂上張望沥阳。 院中可真熱鬧,春花似錦自点、人聲如沸桐罕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽功炮。三九已至溅潜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間薪伏,已是汗流浹背滚澜。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留嫁怀,地道東北人博秫。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像眶掌,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子巴碗,可洞房花燭夜當晚...
    茶點故事閱讀 44,864評論 2 354