unittest框架以及常用断言

本文详细介绍了Python的unittest框架,包括测试固件、测试用例和测试套件的使用,强调了setUp和tearDown方法在测试前后的初始化和清理工作。此外,还探讨了unittest的断言操作,如HTMLReport测试报告的生成、异常捕捉和错误截图功能。最后,文章提到了ddt数据驱动,展示了如何利用csv文件进行数据驱动测试。
摘要由CSDN通过智能技术生成

unittest框架

unittest框架是黑盒测试,主要做UI界面层的功能测试的框架,而java Junit单元测试框架,是白盒测试

利用单元测试框架,创建一个类,该类继承unittest 的TestCase,这样可以把每个case看成是一个最小的单元,由测试容器组织起来,到时候直接执行,同时引入测试报告。

测试固件:

测试固件是的两个方法?
SetUp():SetUp方法进行测试前初始化
TearDown():UI功能测试后的清理工作

测试用例TestCase:

必须以 test_开头
在unitteat框架可以写多个测试用例,只要是test_开头

测试用例的执行顺序

测试用例的默认顺序:0 ~ 9,A ~ Z,a ~ z
忽略测试用例的执行:@unittest.skip(“skipping”),在要忽略执行的测试用例前面加上这句

测试套件TestSuite:

测试套件:把不同脚本中的测试用例组织起来,一起执行。
在unittest中是用TestSuite 类来表示的。

完整的单元测试很少只执行一个测试用例,开发人员通常都需要编写多个测试用例才能对某一软件功能进行比较完整的测试,这些相关的测试用例称为一个测试用例集,

addTest:把测试脚本一个一个添加进来
**makeSuite和TestLoader **:都是 把整个测试脚本中的所有测试方法都添加到测试套件中
discover:把一个文件夹下,以某种格式命名的所有脚本里面的全部测试方法都添加到测试套件中

unittest断言

断言判断实际结果和预期结果是否一致。用来检验测试是否满足预期结果。

常用的断言:

序号 断言方法 断言描述
1 assertEqual(arg1, arg2, msg=None) 验证arg1=arg2,不等则fail
2 assertNotEqual(arg1, arg2, msg=None) 验证arg1 != arg2, 相等则fail
3 assertTrue(expr, msg=None) 验证expr是true,如果为false,则fail
4 assertFalse(expr,msg=None) 验证expr是false,如果为true,则fail
5 assertIs(arg1, arg2, msg=None) 验证arg1、arg2是同一个对象,不是则fail
6 assertIsNot(arg1, arg2, msg=None) 验证arg1、arg2不是同一个对象,是则fail
7 assertIsNone(expr, msg=None) 验证expr是None,不是则fail
8 assertIsNotNone(expr, msg=None) 验证expr不是None,是则fail
9 assertIn(arg1, arg2, msg=None) 验证arg1是arg2的子串,不是则fail
10 assertNotIn(arg1, arg2, msg=None) 验证arg1不是arg2的子串,是则fail
11 assertIsInstance(obj, cls, msg=None) 验证obj是cls的实例,不是则fail
12 assertNotIsInstance(obj, cls, msg=None) 验证obj不是cls的实例,是则fail

selenium添加断言,鼠标右键点击selenium IDE,assert

HTMLReport:测试报告

生成测试报告的步骤:
1.解决测试报告存放的位置
2.解决测试报告命名问题:时间命名
3.生成测试报告

比如测试baidu1.py,下面给出baidu1.py的代码:

from selenium import webdriver
import unittest
import time
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException

#关键字 类名(使用unittest框架)
#继承,Baidu1这个类继承自unittest.TestCase类,就可以使用unittest框架
class Baidu1(unittest.TestCase):
    #setUP(self)初始化方法
    #self代表类的实例,在方法的一个参数
    #定义全局变量  self.变量名
#测试固件
    def setUp(self):
        #self.driver不写self的话,driver是局部变量,写了之后是全局变量
        self.driver = webdriver.Chrome()
        self.url = "https://www.baidu.com/"
        self.driver.maximize_window()
        time.sleep(3)

    #清理
    def tearDown(self):
        self.driver.quit()

#测试用例
    def test_hao(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值