python测试框架:pytest

  • 支持参数化
  • 能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests)
  • pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-selenium(集成selenium)、pytest-html(完美html测试报告生成)、pytest-rerunfailures(失败case重复执行)、pytest-xdist(多CPU分发)等
  • 测试用例的skip和xfail处理
  • 可以很好的和jenkins集成
  • report框架----allure 也支持了pytest

一  使用pytest执行测试需要遵循的规则:

.py测试文件必须以test_开头(或者以_test 结尾)
测试类必须以Test开头,并且不能有方法init;

测试方法以test_开头

断言必须使用assert;

二 fixture

pytest 中fixture实现unittest 中类似setUp /tearDown 功能,fixture可以只在执行某几个特定的case前运行;

yield :执行完之后需要清除数据 

#!/usr/bin/env python
#coding=utf-8
import pytest

@pytest.fixture(scope='function')
def login():
    print("登录")
    yield
    print("注销登录")

def test_1():
    print('测试用例1')

def test_2(login):
    print('测试用例2')

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

pytest.main():

 pytest.main(['test_sample.py','-s'])

可以指定参数和路径
(1)‘-s’:关闭捕捉,输出打印信息。
(2)‘-v’:用于增加测试用例的冗长。
(3)‘-k’ :运行包含某个字符串的测试用例。如:pytest -k add XX.py 表示运行XX.py中包含add的测试用例。
(4)‘q’:减少测试的运行冗长。
(5)‘-x’:出现一条测试用例失败就退出测试。在调试阶段非常有用,当测试用例失败时,应该先调试通过,而不是继续执行测试用例。

原文地址:https://www.cnblogs.com/xiaochengzi2018/p/12191972.html