美文网首页自动化
pytest之常见概念

pytest之常见概念

作者: 每天进步一点点变成更好的自己 | 来源:发表于2021-12-07 19:14 被阅读0次

1.console参数介绍

不同的参数代表不同的意思,在使用的时候严格按照参数进行套规则就可以了。

  1. -v :用于显示每个测试函数的执行结果
  2. -s :用于显示测试函数中print()函数输出
  3. -x,--exitfirst:在第一个错误或测试失败时立即退出
  4. -h :帮助
  5. -q: 只显示整体测试结果

2.pytest执行测试

实例

import pytest

class TestLogin(object):
def test_01(self):
print('test_01')
assert 1==1
def test_02(self):
print('test_01')
assert 1==1


if __name__ == '__main__':
pytest.main(['-v','-s','test01.py'])

执行测试
1、main()方法:pytest.main(['-v','-s','test01.py'])
2、命令行:pytest -s -v test.py
3、调整pycharm中的值:Tools->Python Integrated tools -> Default test runner

3.pytest标记

Pytest标记
1、pytest 查找测试策略
默认情况下,pytest会递归查找当前目录下所有以test开始或结尾的python脚本,并执行文件内所有以test开始或者结束的函数和方法。
2、标记测试函数

第一种,显示指定函数名,通过::标记 :test_no_mark.py::test_func1
第二种,使用模糊匹配,使用-k选项标识: pytest -k func1 test_no_mark.py
第三种,使用pytest.mark在函数上进行标记: 使用pytest.mark在函数上进行标记

4.pytest参数化处理

在pytest中,也可以使用参数化测试,即每组参数都独立执行一次测试。
使用的工具就是:pytest.mark.parametrize(argnames,argvalues)

5.数据格式

列表
字典
元组

6.增加可读性

参数化装饰器有一个额外的参数ids,可以标识每一个测试用例,自定义测试数据结果的显示,为了增加可读性
我们可以标记每一个测试用例使用的测试数据是什么,适当的增加一些说明

7.自定义id做标识

除了使用ids参数增加输出可读性外,还可以在参数列表的参数旁边定义一个id值来做标识

8.pytest fixture

定义fixture跟定义普通函数差不多,唯一区别就是在函数上加个装饰器@pytest.fixture()
fixture命名与用例区分开,不要以test开头。fixture是有返回值的,没有返回值默认为None。
用例调用fixture的返回值,直接就是把fixture的函数名称当做变量名称。

9.unittest setup和unittest teardown简介

前置:setup,后置:teardown,在每次用例开始前和结束后都去执行一次。
前置类:setupClass,后置类:teardonwClass,需要配合@classmethod装饰器一起使用。
在做selenium自动化的时候,效率尤其突出,可以只启动一次浏览器执行多个用例。

10.pytest setup和pytest teardown简介

模块级:setup_module和teardown_module(开始于模块始末,全局的)
函数级:setup_function和teardown_function(只对函数用例生效(不在类中))、
类级:setup_class和teardown_class(只在类中前后运行一次(在类中))
方法级:setup_method和teardown_method(开始于方法始末(在类中))
类里面的(setup/teardown)运行在调用方法的前后

相关文章

网友评论

    本文标题:pytest之常见概念

    本文链接:https://www.haomeiwen.com/subject/oqnoxrtx.html