pytest安装+用例收集规则+fixture定义及使用+测试报告+运行方式

目录

一、pytest的安装操作

二、pytest中的测试用例的收集规则

三、pytest的基本操作

1. 使用Assert进行断言

2. fixtured的操作

3.fixture的其他操作

4.统计用例的运行时间

四、测试报告的生成

1.生成junitXML格式的测试报告,方便Jenkins进行集成

2.创建测试用例的URL

3.生成HTML格式的测试报告

五、pytest的运行命令

1.指定模块运行

2.指定目录运行

3.通过关键字表单式过滤

4.通过节点id来进行运行

5.通过标签表达式运行


一、pytest的安装操作

1.使用pip命令直接进行安装

pip install pytest

2.查看已安装的pytest的版本:

C:\Users\Administrator>pytest --version This is pytest version 4.6.4, imported from c:\python27\lib\site-packages\pytest.pyc

3.简单测试举例:

def reverse(string):
    return string[::-1] # 翻转字符串函数

def test_reverse():
    """翻转字符串测试函数"""
    string = "good"
    assert reverse(string) == "doog"  # 第1个断言操作

    another_string = "itest"
   assert reverse(another_string) == "tseti"   # 第2个断言操作

二、pytest中的测试用例的收集规则

1.默认从当前目录中搜集测试用例,即在哪个目录下运行pytest命令,则从哪个目录中进行搜索。

2.搜索规则:

  • 查找当前文件夹以及递归子文件夹中的所有 test_*.py 或 *_test.py 的文件,将其当作测试文件
  • 不在类中的以 test_ 开头的方法和函数
  • 在Test开头的类中(不含__init__方法),以test_ 开头的方法
  • pytest也支持unittest模式的用例定义

举例:当前文件下有2个测试文件:

test_calc.py test_quick_start.py

则运行所有的py文件:

pytest # 运行所有的test_ 开头的py文件

只运行部分py文件:

pytest test_calc.py # 只运行test_calc.py

三、pytest的基本操作

1. 使用Assert进行断言

每一个测试用例都需要尽心断言,pytest使用python的assert进行断言,降低了学习成本。

assert后接表达式,只要表达式的结果为true,则用例执行成功,反之失败。

assert执行失败时的描述非常清晰:

================================== FAILURES ===================================
________________________________ test_reverse _________________________________

    def test_reverse():
        string = "good"
>       assert reverse(string) == "dooog"
E       AssertionError: assert 'doog' == 'dooog'
E         - doog
E         + dooog
E         ?    +

test_quick_start.py:12: AssertionError
========================== 1 failed in 0.12 seconds ===========================

常见的断言:

  • assert可以使用直接使用“==”、“!=”、“<”、“>”、“>=”、"<=" 等符号来比较相等、不相等、小于、大于、大于等于和小于等于。
  • assert 可以直接使用 in 和not in 来比较包含与不包含。
  • 通过assert不需要任何辅助符号,直接判断对象是否为ture,而assert not 用于判断是否为false

2. fixtured的操作

fixture:即测试用例执行的环境准备和清理操作。

在unittest中指的是setup(),teardown(),classSetup(),classTeardown()。

fixture主要的目的是为了提供一种可靠和可重复型的手段去运行那些最基本的内容。例如在测试网站时,每个用例都需要登录和退出,利用fixture只做一次即可,避免在每个用例执行前都做冗余的操作。

使用Fixture进行初始化操作,相当于 tearUp和tearDown的过程,可在下述情

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值