pytest-1:安装与基本使用

1,安装

cmd中执行命令

# 根据python的版本安装对应版本的pytest,以免出现不适配的版本错误.

# python3.6------>>pytest3.6.3

# python3.7------>>pytest4.0.2

pip install pytest  # 下载最新版本

pip install pytest==3.6.0 # 指定安装版本

 

2.pytest的用例设计原则

>>>1.文件名以test_开头或者以_test结尾的py文件:如"test_*.py"、"*_test.py"

>>>2.以test_开头的函数

>>>3.以Test开头的类,

>>>4.以test_开头的方法

>>>5.所有的package包必须要有"__init__.py"文件

 

pytest用例规则:

1.测试文件以test_开头(以_test结尾)

2.测试类以Test开头,不能带有__init__方法

3.测试函数以test_开头

4.断言使用assert

 

3.参数简介

参考用例文件:

 

 

>>>-s:运行后可以看到print的打印信息

eg:

 

>>>-q:

eg:

 

 >>>-v

eg:

 

 >>> -k xxx 只运行xxx开头的用例(类、函数、方法);可以完全匹配,也可以模糊匹配

eg:

 

 

 

 

 

>>>不运行test_1.py文件下的test_3用例

 

 

 >>>-x:遇到第一个失败的用例,则停止运行

>>>--maxfail=num:遇到num个失败的用例,则停止运行

>>>-h:查看可用的命令

>>>--last-failed:运行上次失败的用例

 

 

>>>通过节点方式运行用例

eg:

 

 

4.setup与teardown(系统自带,无法跨文件调用)

>>>整个py文件只运行一次

setup_module()、teardown_module()  

>>>整个类只运行一次

setup_class()、teardown_class()

>>>整个函数只运行一次(不在类中)

setup_function()、teardown_function()

>>>整个方法只运行一次(在类中)

setup_method()、teardown_method()

>>>类中运行在调用方法前,兼容unitest

setup、teardown

 

5.fixture(自定义setup与teardown)

特点:可以跨文件进行调用

conftest.py文件的位置不同作用域也不同,作用于同级别的文件及以下级别的文件

作用级别:function(默认)、class、module、session

每个作用域的前后只会执行一次,作用域内的多个测试用例就不会重复去执行自定义的fixture方法

# 需要新增一个固定的文件名:"conftest.py"

# conftest.py
import
pytest # 自定义装饰器,作用于每个函数 @pytest.fixture(scope="function") def login(): print("login")
   print("这个相当于setup的作用")   
   yield
    print("这个相当于teardown的作用,无法传参数")


# test_case.py
# 调用之前自定义的作用于函数的装饰器 def test_1(login): print("先登录,再执行这条用例")

 

posted @ 2019-12-08 17:20  沐风麟  阅读(661)  评论(0)    收藏  举报