软件测试之自动化测试(Day5)

unittest自动化测试框架

 

unittest 是python 的单元测试框架,它主要有以下作用:

  • 提供用例组织与执行
  • 提供丰富的比较方法
  • 提供丰富的日志

unittest四个概念:est fixture,test case,test suite,test runner。

test fixture(测试固件

对一个测试用例环境的搭建和销毁,就是一个fixture,通过覆盖setUp()和tearDown()方法来实现。

 

  • setUp():测试环境和数据的准备工作
  • tearDown():做测试用例执行完成之后的清理工作

test case(测试用例) 

测试用例就是一个完整的测试流程,包括测试前准备环境的搭建(setUp)、实现测试过程的代码,以及测试后环境的还原(tearDown)。一个用例就是一个方法,名字以test_开头。

test suite(测试套件)

一个功能的验证往往需要多个测试用例,可以把多个测试用例集合在一起执行,这个就产生了测试套件TestSuite的概念。必须以继承(面向对象)的方式来使用。

est runner(测试执行)

测试的执行也是非常重要的一个概念,在unittest框架中,通过TextTestRunner类提供的run()方法来执行test suite/test case。

 

在unittest 框架中提供了makeSuite() 的方法,makeSuite可以实现把测试用例类内所有的测试case组成的测试套件TestSuite ,unittest 调用makeSuite的时候,只需要把测试类名称传入即可。

02e647923d5043a797d4379ffd184b77.png

 

 

TestLoader 用于创建类和模块的测试套件,一般的情况下,用TestLoader().loadTestsFromTestCase(TestClass) 来加载测试类。

 

discover 是通过递归的方式到其子目录中从指定的目录开始, 找到所有测试模块并返回一个包含它们对象的TestSuite ,然后进行加载与模式匹配唯一的测试文件,也就是把一个文件夹下所有测试脚本的测试用例都执行一遍,discover 参数分别为

unittest.defaultTestLoder.discover("../src",pattern="test*.py",top_level_dir=None)

#  文件夹        测试用例所在文件

unittest 框架默认加载测试用例的顺序是根据ASCII 码的顺序,数字与字母的顺序为:0~9,A~Z,a~z 。addTest()是按照添加的顺序来执行。

对于不想运行的测试用例打标签:@unittest.skip("skiping")

 

unittest断言 

断言:判断实际结果和预期结果是否相符合

8d6f14a09eb740df943564eb18946731.png

 数据驱动

python 的unittest 没有自带数据驱动功能。所以如果使用unittest,同时又想使用数据驱动,那么就可以使用ddt来完成。ddt的安装

ccf4f0bda1624faeba208aa06decf4e3.png

 38538dd3b42142e6b27dacd99bbe990e.png

 读取CSV文件

Import csv    //导入CSV库

1)创建reader

csv.reader(文件对象) - 创建reader获取文件内容,文件内容每一行一个列表的形式返回

csv.DictReader(文件对象) - 创建reader获取文件内容,文件内容每一行一个字典,并且将第一行的数据作为键的形式返回

 

2)创建一个writer

csv.writer(文件对象) - 写入数据的时候每一行数据对应一个列表

writer1 = csv.writer(open('files/students1.csv', 'w', encoding='utf-8', newline=''))

3)写入数据6cbbc33355b14eb493a94b0d089c2bb7.png

 11ddf7479adf47e282970f2b1ae04061.png

 

csv.DictWriter(文件对象, 键列表)

writer2 = csv.DictWriter(open('files/students2.csv', 'w', encoding='utf-8', newline=' '), ['姓名', '年龄', '性别', '电话'])

将字典的键作为第一行内容写入到文件中

657021201f4f470dac2d4fa4fc87d4ad.png

 d1da9477a8514ca8b5250e6cd9dd78c7.png

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值