IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> pytest和unittest -> 正文阅读

[开发测试]pytest和unittest

pytest和unittest的区别

基本测试用例:

unittest- 需要 import unittest

? 写case必须定义类

? 测试类必须继承class TestLogin(unittest.TestCase):

? 测试用例函数必须以test开头 def test_login1(self):

pytest - 需要import pytest

? 不必须定义类,类和函数都支持

? 类必须以Test开头

? 函数必须以test开头

断言:

unittest- 提供了很多自带的断言,通过self.assertEquart(预期结果,实际结果,断言不通过的报错信息-可不写)

pytest - 只需要用关键字 assetr 1 != 2:

参数化:

unittest- 安装第三方模块 parameterized

? @parameterized.parameterized.expand((【】,【】,【】))

? 传入的是一个二维数组,一个数组就是执行一次case

pytest - 自带的 pytest.mark.parameterized

? @pytest.mark.parameterized(“参数名字”,【1,2,3】)单个参数的写法,先传入参数名字,再传入 一个数组,数组的每一个元素执行一次case

? @pytest.mark.parameterized("参数名字1,参数名字2“,【[1,2 ],[ 3,4]】) 多个参数的写法,传入多 个参数名字,再传入一个二维数组

? @pytest.mark.parametrize(“a,c”, [(1, 2), (0.5, 3)])

? @pytest.mark.parametrize(“b”, ["+", “-”, “*”, “/”]) 这种2行的写法能做到参数轮询组合运行case

测试用例的跳过:

unittest- 使用 @unittest.skip(‘跳过原因’) 和 @unittest.skipIf(‘True或者False’, ‘跳过的原因’) 来装饰跳过,可以跳过类也可以跳过函数
pytest - 使用 @pytest.mark.skip(‘跳过原因’) 和 @pytest.mark.skipIf(‘True或者False’, ‘跳过的原因’) 来装饰跳过,可以装饰类也可以装饰函数

用例查找:

unittest- 是使用内置的方法,去查找某一个文件夹下面的某个条件的文件

test_suit = unittest.defaultTestLoader.discover(’ test_case ', ’ test*.py ') 从test_case这个文件夹下面查找,以test开头的py文件,返回一个用例集合

test_runner = unittest.TextTestRunner() 实例化test_runner

test_runner.run(test_suit) 使用test_runner 运行测试用例集 test_suit,可直接运行了

pytest - 在 _ _ name_ _ = _ main _下面运行 pytest.main(),在括号里来指定运行内容和运行方式

pytest.main () 什么都不指定,从当前目录下所有文件夹搜索case

pytest.main ("-q",_ file ]) -q是安静模式, _ file_ _是从当前文件下面执行case

pytest.main (’-vs’, ’ ./case ') 指定查找目录是当前文件夹上一级的case文件夹,-v是详细模式-s是打印print信息

pytest.mian (’ ./case ', ’ -m ', ’ smoke ') 指定运行smoke标签的case

前置、后置操作:

unittest- @classmethod

setUpClass 所有case运行之前执行一次,是一个类方法,需要装饰

setUp 每条case运行之前都执行

@classmethod

tearDownClas 所有case运行之后执行一次,是一个类方法,需要装饰

tearDown 每条case运行之后都执行

pytest - 下面是函数的方法:

setup_module 所有case运行之前执行一次

teardown_module 所有case运行之后执行一次

setup_function 每条case运行之前执行

teardown_function 每条case运行之后执行

下面是类的方法:

setup_class 所有case执行之前执行一次

eardown_class 所有case执行之后执行一次

setup_method 每条case执行之前执行

teardown_methon 每条case执行之后执行

用例标签:

unittest -无
pytest - 用装饰器 @pytest.mark.smoke; @pytest.mark.online
  • 可以装饰类,可以装饰方法
  • 统一的标签管理,在一个文件里case_tags定义: smoke=pytest.mark.smoke,这样在使用的时候导入统一的文件即可,@case_tages.smoke 来装饰
    失败重跑:
    产生测试报告:

选用pytest的理由:

1、pytest完全兼容unittest
2、pytest有标签,方便运行
3、断言更简单易用
4、支持用例失败重跑
5、pytest的参数化不依赖第三方库

1、unittest的四大模块
test_suit
test_runner
test_case
test_fixture --其实就是setup和teardown

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-11-14 22:01:22  更:2021-11-14 22:02:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 2:38:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码