美文网首页
异常捕获与用例断言失败截图

异常捕获与用例断言失败截图

作者: 偶然路过的靓仔_胡阳 | 来源:发表于2019-08-01 20:39 被阅读0次

    1.认识异常

    2.捕获异常

    3.断言

    4.用例失败截图

    =====================================================

    (一)

    什么是异常?

        exception:程序一旦遇到错误后,就会引发异常,如果异常没有被处理或者被捕捉,程序就会回溯来终止运行

    异常的分类

    常见的异常有哪些?

    BaseException:所有异常类的基类

    Exception:所有异常类的基类,继承于BaseException

    AssertionError:assert语句失败

    FileNotFoundError:文件没找到

    NameError:变量没有赋值

    TypeError:类型错误

    ===================================================

    (二)

    如何捕获异常?

    我们通常可以通过异常处理机制的捕捉这些可预见性的一些问题,比如:元素没有找到,文件没有找到等等,就像我们知道洗冷水澡会感冒一样提前备好感冒药

    通常我们是用try...except捕获,如果已知异常类型就需要在except后面加上异常类型

    异常捕获代码示例:

    元素没有找到异常

    如何处理?

    异常处理后显示结果

    ==========================================================================(三)什么是断言?

    断言可用来判断测试用例的成功与否,可以与预期结果相对比

    在功能测试中通常是人工肉眼来判别

    测试的思想是相通的,比如性能测试中jmeter用到的也是响应断言,loadrunner用到的是检查点函数

    断言的分类?

    Title:页面标题

    Value:元素的值

    Text:元素的文本(最常用的)

    Table:元素的标签

    ElementPresent:获得当前元素

    常见断言使用方法?

    assertEqual(a,b):a等于b

    assertNotEqual(a,b):a不等于b

    assertIn(a,b):a在b中

    assertNotIn(a,b):a不在b中

    断言代码和样式讲解:

    #断言

    def checkSearch(self):

           self.dv.find_element_by_xpath('/html/body/div[1]/div[5]/div[1]/div[2]/div/div[2]/span').text

    之前我们学到了PO的设计模式

    在page页面类,我们写好根据文本的断言()

    def test1(self):

            try:

                self.obj.setKeys_operator(' ')

                self.assertIn(u'百度为您找到相关结果',self.obj.checkSearch())

            except:

                self.obj.insert_img(u'输入空格报错.png')

    在case部分,我们的用例可以根据断言结果来看用例是否成功

    =====================================================================

    (四)如何截图?

    webdriver中本身自带截图功能

    函数get_screenshot_as_file()

    截图的好处?

    自动化脚本是由程序去执行的,有时候报错我们并不能直观的看到用例是如何错误了,有了当前窗口的截图,就可以通过图片直观的看到出错的原因

    代码示例和样式讲解:

    ##截图函数

        def insert_img(self,file_name):

            now = time.strftime("%Y-%m-%d %H-%M-%S")

            file_path = r'Z:\autoscript\tryscript\errorScreenShot' + '/' + now + file_name

            self.dv.get_screenshot_as_file(file_path)

    PO的设计模式下,我们的截图函数通常写在BasePage下

    ①加入时间戳

    ②保存截图文件的位置

    #用例

        def test1(self):

            try:

                self.obj.setKeys_operator(' ')

                self.assertIn(u'百度为您找到相关结果',self.obj.checkSearch())

            except:

                self.obj.insert_img(u'输入空格报错.png')

    try...except断言,如果断言异常或者失败,就会执行我们的截图函数,需要输入截图的名称,后缀以图片的格式保存

    相关文章

      网友评论

          本文标题:异常捕获与用例断言失败截图

          本文链接:https://www.haomeiwen.com/subject/zixhdctx.html