码迷,mamicode.com
首页 > 其他好文 > 详细

测试过程中发生异常或断言失败时进行屏幕截图

时间:2018-01-13 12:53:32      阅读:951      评论:0      收藏:0      [点我收藏+]

标签:时间   oda   res   cdir   oca   _id   保存   sea   date   

1.获取当前的日期及时间,用于生成保存截图文件目录名

#!usr/bin/env python  
#-*- coding:utf-8 -*-

import time
from datetime import datetime
‘‘‘
本文件主要用于获取当前的日期以及时间
用于生成保存截图文件目录名
‘‘‘

def currentDate():
    date = time.localtime()
    #构造今天的日期字符串
    today = str(date.tm_year) + "-" + str(date.tm_mon) + "-" + str(date.tm_mday)
    return today
def currentTime():
    timeStr = datetime.now()
    #构造当前时间字符串
    now = timeStr.strftime(%H - %M - %S)
    return now

if __name__ == __main__:
    print(currentDate())
    print(currentTime())

2.创建目录,用于存放异常截图

#!usr/bin/env python  
#-*- coding:utf-8 -*-  

from DateUtil import currentTime,currentDate
import os

‘‘‘
本文件主要用于创建目录,用于存放异常截图
创建目录的方法仅供大家参考,将来用于根据测试
需要创建测试人员需要的目录或文件等
‘‘‘

def createDir():
    #获取当前文件所在目录的绝对路径
    currentPath = os.path.dirname(os.path.abspath(__file__))
    #获取今天的日期字符串
    today = currentDate()
    #构造以今天日期命名的目录的绝对路径
    dateDir = os.path.join(currentPath,today)
    print(dateDir)
    if not os.path.exists(dateDir):
        #如果以今天日期命名的目录不存在则创建
        os.mkdir(dateDir)
    now = currentTime()
    #构造以当前时间命名的目录的绝对路径
    timeDir = os.path.join(dateDir,now)
    print(timeDir)
    if not os.path.exists(timeDir):
        os.mkdir(timeDir)
    return timeDir

3.存放异常截图的目录,并得到本次实例中存放图片目录的绝对路径

# !usr/bin/env python
# -*- coding:utf-8 -*-
#测试过程中发生异常或断言失败时进行屏幕截图

from selenium import webdriver
import unittest, time, os
from FileUtil import createDir
import traceback

# 创建存放异常截图的目录,并得到本次实例中存放图片目录的绝对路径,并且作为全局变量,以共本次所有测试用例调用
picDir = createDir()

def takeScreenshot(driver, savePath, picName):
    # 封装截屏方法
    # 构造屏幕截图路径及图片名
    picPath = os.path.join(savePath + .png)
    try:
        # 调用WebDriver提供的get_screenshot_as_file()方法
        # 将截取的屏幕图片保存为本地文件
        driver.get_screenshot_as_file(picPath)
    except Exception as e:
        print(traceback.print_exc())

class TestFailCaptureScreen(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Firefox()

    def testSoGouSearch(self):
        url = http://www.sogou.com
        self.driver.get(url)
        try:
            self.driver.find_element_by_id(query).send_keys(光荣之路自动化测试)
            self.driver.find_element_by_id(stb).click()
            time.sleep(3)
            self.assertTrue(事在人为 in self.driver.page_source,
                            "‘事在人为‘关键字串在页面源代码中未找到")
        except AssertionError as e:
            #调用封装好的截图方法,进行截图并保存在本地磁盘
            takeScreenshot(self.driver,picDir,e)
        except Exception as e:
            print(traceback.print_exc())
            takeScreenshot(self.driver,picDir,e)

    def tearDown(self):
        self.driver.quit()

if __name__ == __main__:
    unittest.mian()

测试过程中发生异常或断言失败时进行屏幕截图

标签:时间   oda   res   cdir   oca   _id   保存   sea   date   

原文地址:https://www.cnblogs.com/sleeping-cat/p/8278593.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!