【测试基础】软件测试框架Pytest和Unittest的区别

本文将从多个维度分别列出软件测试框架pytest和unittet的区别

一、是否需要安装

1、Unittest
Unittest是Python自带的测试框架,因此不需要安装(也被称为PyUnit)
2、Pytest
Pytest是第三方依赖库,需要使用 pip install pytest 进行安装

二、用例编写规则

1、Unittest

  • 首先要手动导入unittest (import unittest)
  • 测试类必须继承unittest.TestCase
  • 测试方法必须以”test_”开头
  • 测试类必须要有unittest.main()方法

2、Pytest

  • 测试文件必须以”test_”开头或”_test”结尾
  • 测试方法必须要”test_”开头
  • 测试类的命名要以”Test”开头
  • 运行不需要main方法

三、用例分类执行

1、Unittest
默认执行的是全部的测试用例,但也可以通过加载testsuit执行部分测试用例

2、Pytest
通过@pytest.mark来标记类和方法,pytest.main加入参数(“-m”)只运行标记的类和方法

四、用例的前置和后置

1、Unittest
unittest提供了setUp/tearDown,在每个用例运行前执行一次,运行结束后执行一次。

SetUpClass和tearDownClass,用例执行前,用例执行结束后,只运行一次。

2、Pytest

pytest提供了模块级,类级,方法级等setup/teardown,比unittest的setUp/tearDown要更丰富灵活。

· 模块级(
setup_module/teardown_module)开始于模块始末,全局的,整个模块开只运行一次,优先于测试用例。

· 函数级(
setup_function/teardown_function)只对函数用例生效(不在类中)

· 类级(
setup_class/teardown_class)只在类中前后运行一次(在类中),只针对此类生效

· 方法级(
setup_method/teardown_method)开始于方法始末(在类中),定义在类里面,每个用例都执行一次

五、参数化

1、Unittest

需要依赖DDT库。

2、Pytest

使用@pytest.mark.parametrize装饰器。

六、断言

1、Unittest

unittest提供了很多断言方式。

如:assertEqual、assertIn、assertTrue、assertFalse

2、Pytest

pytest提供assert表达式,简单,方便。

七、报告

1、Unittest

unittest使用HTMLTestRunnerNew库

2、Pytest

pytest有pytest-HTML、allure插件

八、失败是否重跑

1、Unittest

unittest没有提供这个功能

2、Pytest

Pytest通过pytest-rerunfailures插件是支持用例执行失败重跑的,

好了,分析完unittest和pytest它们的区别以后,咱们再来做一个简单的总结:

Unittest和Pytest这两个都属于python的单元测试框架,也是目前用的比较多的自动化测试框架。

Unittest呢是Python自带的,比较传统的测试框架,提供的插件少,用例格式比较复杂。
Pytest相对来说,更加简单方便 ,兼容性比较强,插件也很丰富。用例出错了还可以重跑,非常的灵活,效率要比Unittest更高。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

forest_long

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值