pytest运行规则及夹具

1.pytest是单元测试测试框架(最小的测试单元,函数,方法)

2.可以和allure结合生成完美的测试报告,jenkens结合持续集成

3.pytest有很多强调的插件

pytest(自己)

pytest-html (生成简易的html报告)

pytest-xdist(多线程执行)

pytest-ordering(修改测试用例的执行顺序)

pytest-rerunfailures(失败用例重跑)

pytest-base-url(管理基础路径)

allure-pytest(生成allure报告)

都放在一个requirements.txt的文件中,一次性安装所有插件。(-r表示递归)

pip install -r requirements.txt

5.pytest单元测试框架主要用来做什么

(1)发现测试用例:可以从多个py文件中找到测试用例。

(2)执行测试用例

(3)判断测试结果

(4)生成测试报告

二。pytest默认测试用例的规则

1.模块名(py文件)必须test_开头或_test结尾

2.测试类必须以Test开头,并且不能有init方法

3.测试用例以test开头

三。pytest用例运行方式以及参数

1.命令模式运行

命令 pytest

参数:

-v 输出更加详细的测试用例的信息

-s 表示用例中的调试信息

-vs

-n 多线程运行

示例:pytest - vs -n 2

-reruns 失败用例重跑

示例:pytest -vs --reruns 2

-x 一旦出现一个用例失败则终止执行

   示例:pytest -vs -x

--maxfail 出现指定次数的错误则终止测试

示例:pytest -vs --maxfail 2

--html 生成简易版本测试报告

示例:pytest -vs --html=./reports/report.html

-k 运行包含有指定字符串的测试用例(测试用例的名称必须很规范)

示例:pytest -vs -k "mashang or jiaoyu"

指定模块运行:pytest -vs ./testcase/test_weixin.py

指定文件夹运行:pytest -vs ./testcase/weixin

通过node id方式运行:

pytest -vs ./testcase/weixin/test_weixin.py::TestApi::test_02_add_flag

2.主函数模式运行

import pytest

if __name__ == '__main__'

pytest.main(['-vs']);

3.基于pytest.ini配置文件运行

(1)配置文件的名称固定,一般放在项目的根路径下

(2)作用是:可以改变默认的测试用例的规则

(3)不管是命令行的方式还是主函数的方式都会自动读取这个配置文件取运行

pytest.ini

[pytest]

#命令行参数

addopts = -vs --html=./report/report.html -m "smoke or user_manage"

#指定测试用例的路径

testpaths = ./testcases/weixin

#修改测试模块默认的规则

python_files = test_*.py

#指定参数类的默认规则

python_classes = Test*

#指定测试用例的默认规则

python_functions = test_*

markers =

            smoke:冒烟测试

            user_manage:用户管理用例

@pytest.mark.smoke

@pytest.mark.user_manage

def test_01():

pass

注意:一旦报编码错误,那么修改改成gb2312格式

必须在测试用例上面加标记

import pytest

if __name__ == '__main__'

pytest.main();

四。pytest测试用例的执行顺序

默认的执行顺序是从上往下执行

改变测试用例的执行顺序可以使用插件:pytest-ordering

@pytest.mark.run(order=1)

def test_01_tag():

pass

五.pytest跳过测试用例

1.无条件跳过:

@pytest.mark.skip(reason="这里写跳过的理由")

def test_01_add():

pass

2.有条件跳过

@pytest.mark.skipif(age<5,reason="小于5年工资经验跳过")

def test_01_add():

pass

六.pytest测试用例的前后置

只作用当前模块:

def setup_class():

print("在类的前面执行的操作")

def teardown():

print("在类后面执行的操作")

def setup():

print("用例执行前的操作")

def teardown():

print("用例执行之后的操作")

写在父类中可以作用所有的类 

但存在耦合

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值