python +pytest+allure笔记(方便自己copy)

 pytest一些用法

import pytest
#测试文件以test_开头(以_test结尾也可以)
#测试类以Test开头,并且不能带有 init 方法
#测试函数以test_开头
"""
pytest插件
pytest-html ==生成html格式的测试报告
pytest-xdist 多线程
pytest-ordering 指定测试用例的执行顺序
pytest-rerunfailures  失败重执行
allure-pytest  生成allure测试报告
复制python 包
pip freeze > requirements.txt
 PS:在pytest项目下创建一个a.txt文件,将这些参数放进去,使用 pip install -r a.txt 一次性全部安装
==============================================================================================
1.pytest 参数化
@pytest.mark.parametrize()
    1.1单个参数化
    1.2多个参数化
2.pytest执行测试用例的顺序
    2.1 默认顺序:默认从上到下
    2.2自定义顺序 ps:需下载插件pip install pytest-ordering
3.跳过用例执行
    @pytest.mark.skip('跳过说明,可不填')
    @pytest.mark.skipif(条件成立跳过,reason=)
    @pytest.mark.skipif(con == '冒烟', reason='我是skipif,因为条件成立被跳过了')
4.失败不计入失败用例中
    @pytest.mark.xfail()
5.参数传递
    5.1单个参数 将上一个方法里面的返回传递给下一个方法,调用的时候传入方法名
        pytest.fixture()
    5.2多个参数
        定义一个全局变量和一个空列表,将需要返回的值追加到列表中然后return返回列表,下一个方法再遍历列表   
6.pytest执行参数详解
    -r 用于skip方法中打印不执行的理由
    -v 显示更详细的信息
    -s 输出调试信息,包括print打印的信息,一般 -vs一起用
    -n 支持多线程或者分布式运行测试用例
        '-n=2'  2个线程
    --reruns 次数 失败用例重新执行多少次
        '--reruns=5' 失败用例重新执行5次
    -x 表示只要有一个用例报错,那么测试停止
    --maxfail=次数 表示出现多少个报错就停止
    -k 根据测试用例的部分字符串执行测试用例
        -k='包含的字符串'
7.pytest的命令行执行方式
    7.1 指定目录下的py文件执行
        pytest.main(['-vs','./testcase'])
    7.2指定py文件执行
        pytest.main(['-vs','py文件'])
    7.3通过nodeid指定用例执行,nodeid由模块名,分隔符,类名,方法名,函数名组成
    (::双冒号为分隔符)
        #目录下指定的测试用例(没有类)
        pytest.main(['-vs','./testcase::test_01'])
        #目录下指定的测试类下面的测试用例
        pytest.main(['-vs','./testcase::Testpy::test_01'])
8.pytest.main()执行方法 单独的py文件中的pytest.main()
    8.1用来读取pytest.ini文件
    8.2可指定参数执行 pytest.main(['-vs','py文件'])
    ps:该文件名最好不要以test开头,该文件最好与pytest.ini文件在同一项目路径下,与测试用例属于同一目录,会优先读取pytest.ini文件
9.conftest.py文件的作用及用法
    9.1 conftest.py文件名字固定不能修改
    9.2 congftest.py文件所在目录必须存在__init__.py文件
    9.3 不能被其他模块导入
    9.4 所有目录测试文件执行前都会执行一遍conftest.py文件
    9.5 结合@pytest.fixture使用
        9.5.1 fixture的作用范围
            pytest.fixture(scope='function')
            fixture里面的scope参数可以控制fixture的作用范围:session>module>class>functon
            -function:每一个函数或方法都会调用(默认就是function)
            -class:每一个类都会调用一次
            -module:每一个.py文件都会调用一次
            -session:多个文件调用一次,可以跨.py文件调用
        9.5.2 使用场景
            每个接口需要共用的token
            每个接口需要共用到的测试用例数据(如参数化数据,数据驱动)
            每个接口需要共用到的配置信息 
===============================================================&
  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值