(二十二)异常捕获与用例断言失败截图

Posted wx921308494

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(二十二)异常捕获与用例断言失败截图相关的知识,希望对你有一定的参考价值。

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 ryscripterrorScreenShot‘ + ‘/‘ + 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断言,如果断言异常或者失败,就会执行我们的截图函数,需要输入截图的名称,后缀以图片的格式保存

以上是关于(二十二)异常捕获与用例断言失败截图的主要内容,如果未能解决你的问题,请参考以下文章

小部件库捕获的异常。 (断言失败)

二十异常捕获及处理详解

try except 异常捕获的方法断言的使用

Selenium2+python自动化60-异常后截图(screenshot)

Selenium2+python自动化60-异常后截图(screenshot)

Selenium2+python自动化60-异常后截图(screenshot)转载