一、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:passwith open(report_file, 'wb') as report:# 在上面已经添加过了# suite.addTests(cases)# 运行器运行runner = HTMLTestRunner(stream=report, verbosity=1, title=report_title, description=report_desc)runner.run(suite)

运行效果:

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

运行效果

unittest的基础应用相关推荐

  1. unittest框架基础和报告输出

    unittest框架 textfixture 例子1 测试代码 运行结果 例子2 测试代码 执行结果 testcase 断言 跳过测试 例子 预计的失败 例子 subtest testsuite&am ...

  2. unittest框架-基础知识

    一.什么是UnitTest框架 UnitTest是python自带的一个单元测试框架,用它来做单元测试. 对于测试来说,unittest框架的作用是自动化脚本(用例代码)执行框架,使用unittest ...

  3. [转]Python测试框架对比----unittest, pytest, nose, robot framework对比

    测试框架 什么是框架? 框架(Framework)是整个或部分系统的可重用设计, 框架是用来解决代码的组织及运行控制问题的. 在我们编写自动化脚本的时候,经常需要读取配置文件,读取数据文件,发送请求, ...

  4. python pip安装指定版本unittest_你们想要的unittest用例失败重运行,解决方案来啦!...

    前言 很多小伙伴一直在诟病 unittest,说 unittest 相对 pytest 来说太鸡肋了,pytest 中提供了很多高级功能 unittest 中都没有. 在这里还是想为 unittest ...

  5. python基础其他(二十一)

    异常的处理: a=[1,2,3,4,5,6,6] try:b=[item for item in a if 100%item == 0] except ZeroDivisionError:print( ...

  6. 通过demo学习OpenStack开发所需的基础知识 -- 单元测试

    本文将进入单元测试的部分,这也是基础知识中最后一个大块.本文将重点讲述Python和OpenStack中的单元测试的生态环境. 单元测试的重要性 github上有个人画了一些不同语言的学习曲线图:Le ...

  7. Pytest 自动化测试框架

    Pytest 自动化测试框架 Pytest和Unittest测试框架的区别? 如何区分这两者,很简单unittest作为官方的测试框架,在测试方面更加基础,并且可以再次基础上进行二次开发,同时在用法上 ...

  8. 基于nose、使用django实现的自动化测试执行平台实现Rerun Failed功能。

    Windautotest是我开发的一个基于Web界面进行操作的测试用例自动化执行平台.Windautotest使用python+django在nose+unittest的基础上开发.相比于直接使用no ...

  9. ApacheCN Python 译文集(二)20211110 更新

    Python 应用计算思维 零.序言 第一部分:计算思维导论 一.计算机科学基础 二.计算思维要素 三.理解算法和算法思维 四.理解逻辑推理 五.探究性问题分析 六.设计解决方案和解决流程 七.识别解 ...

最新文章

  1. 开源力量:微软竟开源 PowerShell
  2. java代码审计ssrf危险函数_某租车系统Java代码审计之后台注入漏洞分析
  3. 【NOIP2016】换教室
  4. Android(java)学习笔记164:开发一个多界面的应用程序之不同界面间互相传递数据(短信助手案例)...
  5. SAP License:SAP会计凭证抬头的字段状态控制
  6. 蓝桥杯2014c++真题:切面条
  7. 用C#代码实现求两条线段的交点并判断各种情况
  8. 数字化时代品牌营销:体验 感知 共创
  9. 云时代如何做好IT运维审计
  10. markdown生成chm电子书或在线文档
  11. 集合--TreeSet类比较器排序的实现方式及如何保证元素的排序和唯一性
  12. window 64/32 安装配置 eclipse+jdk+mysql+tomcat+maven
  13. 解决Powershell前面没有base,无法激活虚拟环境问题
  14. MySQL锁知识点复习,面试问到的概率超90%
  15. THRESH_OTSU mode: > ‘src_type == CV_8UC1 || src_type == CV_16UC1‘ > where > ‘src_type‘ is 6
  16. 基于Multisim的红路灯电路设计
  17. 小白学 Python 爬虫(13):urllib 基础使用(三)
  18. 连接华为云服务中心常见问题汇总
  19. norflash的基本操作2
  20. php伪装图片,案例分析之PHP文件上传时,如何识别文件伪装?

热门文章

  1. C# 获取可执行文件EXE(文件夹)路径大全
  2. RXSwift进阶:RXSwift的底层核心逻辑解析
  3. esrally 如何进行简单的自定义性能测试?
  4. ES esrally 部署
  5. Numerical Optimization和Convex optimization 两本书的选择?
  6. 浙江大学招生目录新增一整个联合学院,包含人工智能,计算机专硕!
  7. 《自控》学习笔记一——自动控制的一般概念(一)
  8. Linkage Mapper 专栏内容介绍
  9. mysql 查看备份工具_MariaDB/MySQL备份和恢复(一):mysqldump工具用法详述【转】
  10. JavaWeb期末大作业 Javaweb项目 Javaweb Servlet html