unittest的基础应用

一、unittest断言应用(unittest.skip用法)

unittest断言:slef.assertEqual

断言:自动化测试主要用于对流程来进行的测试,断言就是自动化测试中预期结果和实际结果的对比

简单理解:

断言的本质就是if else

if(name="1111"):

print(success)

else:

print(error)

等于

self.assertEqual(1111,name,msg='success')

使用断言来判断你的用例是通过还是失败

实际结果9.0234   预期结果约等于9  圆周率

self.assertAlmostEqual(9.0234,9.00,msg='这是一个大约值') 

1、skip操作:

一个测试类对象下面可能有非常多的用例,有些用例可以选择当下不执行,有些用例有条件去执行

意味着不是所有的用例每次都一起执行

unittest.skip是通过装饰器来执行

1、1无条件跳过本条用例执行

@unittest.skip('懒得执行')

1、2有条件的跳过执行

一、@unittest.skipUnless(1>2,'填写Unless的理由')

1>2是假,所以Unless的含义是:当不符合条件的时候跳过

二、@unittest.skipIf(1<2,'这是If的理由')

1<2是真,所以If的含义是:当符合条件的时候跳过

注意事项:其中1和2要是全局变量

三、@unittest.expectedFailure

这种跳过出现在执行test报错,想跳过这个用例

这个用例被unittest忽略了

二、unittest套件及runner应用

1、Suite:

使用unittest套件可以选择性的执行测试用例

想要使用unittest套件,必须新建一个测试套件来执行

原因:在unittest的类下面会默认调用.main函数,所以将unittest套件写在main函数里面,是不会执行的

demo.py

 suit_demo.py

注意事项:代码中的suite都写成了suit,代码改了图片未改

一、单个添加测试用例  单个用例的

Import unittest
from connector_test.api_demo.demo import Demo

#创建测试套件
suite=unittest.TestSuite()

#addTest添加测试用例通过名字进行添加
#添加测试用例的第一种方法单个添加
suite.addTest(Demo('test_01_login'))
suite.addTest(Demo('test_03'))
suite.addTest(Demo('test_04'))
suite.addTest(Demo('test_05'))
#基于Runner来运行测试套件
#创建运行器
runner=unittest.TextTestRunner()
#使用运行器运行套件
runner.run(suite)

运行效果:

二、批量添加测试用例  多个用例的

#添加测试用例的第二种方法批量添加

cases=[Demo('test_01_login'),Demo('test_03'),Demo('test_04'),Demo('test_05')]

suite.addTest(cases)

运行效果: 

三、批量执行测试用例  多个文件

#添加测试用例的第三种方法批量执行可执行多个测试文件里面的所有测试用例

test_dir='./'

suite=unittest.defaultTestLoader.discover(start_dir=test_dir,pattern='demo*.py')

运行效果: 

四、通过类名添加 单个类的

五、通过文件名添加 文件名.包名

#添加测试用例的第五种方法

#通过文件名称去读取

suite.addTests(unittest.TestLoader().loadTestsFromName('demo.Demo'))

实现代码:

 三、unittest+htmltestrunner自动化实现

unittest集成测试报告

HTMLTestRunner.py是Python标准库unittest单元测试框架的一个扩展,它生成HTML测试报告

下载及使用HTMLTestRunner.py的参考文档:

HTMLTestRunner生成测试报告注意事项 - ~Nirvana!。 - 博客园

使用:

from HTMLTestRunner import HTMLTestRunner

完整代码:

# 导入os是为了创建文件夹
import unittest, os
from connector_test.api_demo.demo import Demo
from HTMLTestRunner import HTMLTestRunner

# 创建测试套件
suite = unittest.TestSuite()
# addTest添加测试用例 通过名字进行添加

# 添加测试用例的第一种方法  单个添加
# suite.addTest(Demo('test_01_login'))
# suite.addTest(Demo('test_03'))
# suite.addTest(Demo('test_04'))
# suite.addTest(Demo('test_05'))

# 添加测试用例的第二种方法 批量添加
# cases = [Demo('test_01_login'), Demo('test_03'), Demo('test_04'), Demo('test_05')]
# suite.addTest(cases)

# 添加测试用例的第三种方法 批量执行 可执行多个测试文件里面的所有测试用例
# test_dir = './'
# # 只要在路径下面查找到demo开头的一个或者多个文件,将它放在运行器里面运行
# suite = unittest.defaultTestLoader.discover(start_dir=test_dir, pattern='demo*.py')

# 添加测试用例的第四种方法
# 从测试用例当中去读取,基于类名去读取
# suite.addTests(unittest.TestLoader().loadTestsFromTestCase(Demo))

# 添加测试用例的第五种方法
# 通过文件名称去读取
suite.addTests(unittest.TestLoader().loadTestsFromName('demo.Demo'))
# 基于Runner来运行测试套件
# 创建运行器
# runner = unittest.TextTestRunner()
# # 使用运行器运行套件
# runner.run(suite)

# 集成的测试文件
report_name = "测试报告名称"
report_title = "测试报告标题"
report_desc = "测试报告描述"
report_path = "./report/"
# ./report/report.html
report_file = report_path + "report.html"
if not os.path.exists(report_path):
    # 如果report_path不存在,那么就创建文件
    os.mkdir(report_path)
else:
    pass

with open(report_file, 'wb') as report:
    # 在上面已经添加过了
    # suite.addTests(cases)
    # 运行器运行
    runner = HTMLTestRunner(stream=report, verbosity=1, title=report_title, description=report_desc)
    runner.run(suite)

运行效果:

 

 

 在测试用例里面添加一个断言,使其报错

运行效果

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
非常感谢您的提问,以下是针对您的问题的建议: 首先,如果您是零基础学习Python编程,建议您从基础知识开始学习以下内容: 1. Python基础语法: 要熟练掌握Python基础语法,如变量、循环、判断语句等。 2. Python数据类型: Python中支持多种数据类型,如列表、元组、字典和集合等,您需要了解它们的使用和区别。 3. 函数和模块: 了解如何定义和调用函数,以及如何导入和使用Python模块。 4. 文件处理: 学习如何读写文件以及处理文件中的数据。 5. 数据库操作: 熟悉SQL语言,学习如何连接和使用数据库。 接下来,您需要了解自动驾驶的相关知识,例如: 1. 自动驾驶相关技术: 了解深度学习、机器学习、计算机视觉、传感器等自动驾驶的关键技术。 2. 自动驾驶安全相关标准: 了解上海车联网安全标准(T/SH-T 0134-2018)、ISO/SAE 21434 等自动驾驶领域的安全标准。 3. 自动驾驶测试: 了解自动驾驶测试的方法和流程,并且要掌握手动和自动化测试的基本知识。 基于上述内容,我为您提供以下Python学习计划: 1. 前期学习阶段: (1)首先要学习Python基础语法、数据类型、函数和模块、文件处理等内容,建议您可以从Python官方文档中学习。例: https://docs.python.org/3.7/tutorial/ (2)Python编程基础教程:参考Python编程基础教程一书,该书内容结构清晰,适合Python初学者学习。 2. 中期学习阶段: (1)TensorFlow与Keras深度学习实战:学习深度学习的基本原理和编程方法 (https://book.douban.com/subject/30319231/) (2)Python机器学习入门:介绍机器学习算法和实践方向 (https://book.douban.com/subject/30318116/) (3)Python与SQL数据库:学习SQL语言和Python操作数据库(https://python123.io/sql) 3. 自动驾驶测试工作中的应用: (1)使用Python编写自动化测试脚本的基本语法和应用技巧。(https://www.cnblogs.com/hellobendev/p/9832002.html) (2)掌握使用Pythonunittest或pytest库编写单元测试用例的方法。 (3)根据上海车联网安全标准和ISO/SAE 21434自动驾驶安全标准,学习自动驾驶测试方法、流程和工具的使用。 以上是一个较为详细的Python学习计划,您可以根据自己的时间和能力制定一个合适的计划,保持学习的持续性和坚持性。 希望我的回答能够帮到您。若您有其他问题,欢迎随时提出。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值