测开进阶day2--pytest

一、pytest用例管理框架

默认的用例规则

1. 模块名必须以test_开头或者_test结尾(模块名类似于nova_test_cases)

2. 测试类必须以Test开头,并不能有init方法(class Test*)

3. 测试用例必须以test开头(类似于test_nova_all_link_cases)

pytest简介

1. 可以与seleminum,requests,appium实现web、接口、APP自动化

2. 可以与allure插件结合生成美观的测试报告以及和Jenkins实现持续集成

3. 有较多强大的插件

1. pytest pytest框架
2. pytest-html 生成html报告
3. pytest-xdist 多线程插件
4. pytest-ordering 控制测试用例执行顺序
5. pytest-rerunfailures  失败重跑
6. pytest-allure  生成美观的测试报告

放到一个requirements.txt文件中,复制到代码根目录下,然后通过如下命令安装

pip install -r requirements.txt

二、运行方式详解

1. 命令行模式

在pycharm终端输入pytest运行即可

参数:

-vs  -v 输出更详细的信息,-s表示输出调试信息

-n  多线程运行测试用例

--reruns  失败用例重跑

--html  生成html测试报告(pytest --html  '报告生成路径,一般是/reports/report')

2. 主函数模式

新建一个run.py文件,在根目录下,如下代码直接运行即可

import pytest

if __name__=='__main__':
    pytest.main()

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

[pytest]
addopts = -vs
testpaths = ./testcases
python_files = test*.py    运行test开头的文件,想运行其他开头的文件,可以改这个
python_classes = Test*
python_functions = test_*
marks = 
    smoke:冒烟测试

增加标记之后可以通过如下方式只执行带标记的测试用例

addopts = -vs -m smoke

三、测试用例的前后置、固件、夹具

def setup(self):
    print("在每个用例之前执行一次,比如初始化日志对象或者sql链接")
def teardown(self):
    print("在每个用例执行之后执行一次,比如关闭日志对象或者sql链接")

def setup_class(self):
    print("在每个类执行之前执行")
def teardown_class(self):
    print("在每个类执行之后执行")

@pytest.fixture装饰器可以实现部分用例后置

@pytest.fixture(scope="",params="",autouse="",ids="",name="")

scope:作用域

        function class module package/session

若scope=function,则可在用例的参数后面单独调用

若scope=class,则在类上面通过@pytest.mark.usefixture("exe_sql(即装饰器名字)")调用

yield 函数

fixture结合conftest.py文件使用

四、接口自动化用例框架

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值