用例管理框架pytest

一、作用:

1、发现用例:默认发现用例的规则。模块名必须以test_开头或者_test结尾,测试类必须以Test开头,测试方法必须以test_开头

2、执行用例

3、判断结果

4、生成结果

二、Pytest用例管理框架详细介绍

结合sele,reque,appium实现web,接口,app自动化。

Allure生成非常美观的报告以及和jenkins实现持续集成

插件:pytest;

pytest-html;生成html报告

pytest-xdist  多线程执行

pytest-ordering  控制用例的执行顺序

pytest-rerunfailures  失败用例重跑

pytest-base-url  基础路径

allure-pytest  生成allure报告

---------上述均放到requirements.txt里面,通过以下命令安装

pip install -r requirements.txt

三、如何执行

1、命令行?不行现在

2、主函数

import pytest

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

3、通过配置文件pytest.ini来改变以及执行用例

不管是命令行还是主函数,都会读取pytest.ini配置文件来执行。

[pytest]
#配置参数
addopts = -vs -m "smoke"
#改变用例的查找规则
testpaths = ./testcases
#改变模块的查找规则
python_files = test_*.py
#改变函数的查找规则
python_functions = test_*
#标记
markers = 
    smoke:冒烟测试
先添加标签【python】
addopts = -vs : 输出调试&详细信息

-s:输出调试信息,包括print打印的信息
-v:显示更详细的信息
-q:显示简略信息,与-v作用相反
-p no:warning :过滤警告
-p no:randomly :disable随机执行
-n=num:启用多线程或分布式运行测试用例。需要安装pytest-xdist插件模块
-k=value:py文件中用例包含value的用例都会被执行
-m=标签:执行被@pytest.mark.标签名标记的用例
-x:只要有一个用例执行失败就停止当前线程的测试执行
–maxfail=num:与-x功能一样,可以自定义用例失败次数
–rerun=num:失败用例重跑,需要安装pytest-rerunfailures插件模块
-l:展示运行过程中的全局变量和局部变量
–collect-only:罗列出所有当前目录下所有的测试模块,测试类及测试函数
–ff:如果上次测试用例出现失败的用例,当使用–ff后,失败的测试用例会首先执行,剩余的用例也会再次执行
–lf:当一个或多个用例失败后,定位到最后一个失败的用例重新运行,后续用例会停止运行
–html=report.html:当前目录生成名为report.html的测试报告,需要安装pytest.html插件模块
————————————————
版权声明:上述参数总结详见CSDN博主「鹿上的程序媛」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41571224/article/details/124517351


四、Pytest用例管理框架的前后置(固件,夹具)

1、作用:在你的用例或类前后执行相应的操作

class TestMAP(object):

    now_time = ""


    def setup(self):
        print("每个用例前的操作")

    def teardown(self):
        print("每个用例后的操作")

    def setup_class(self):
        print("每个类后的操作")

    def teardown_class(self):
        print("每个类后的操作")

2、前后置工具:fixture固件,夹具

装饰器:

@pytest.fixture(scope = "作用域",params="参数化",autouse="自动执行",ids=“参数别名”,name = "")

scope:function, class, module, session

params: 参数化["qqqq","ewee"]

ids:参数别名["q","e"]

name:夹具别名

a、

@pytest.fixture(scope="function", autouse=True)
def description():
    print("\n用例开始执行")
    yield
    print("\n用例执行结束")
@pytest.fixture(scope="function", autouse=False)
def description():
    print("\n用例开始执行")
    yield
    print("\n用例执行结束")

# 执行上述方式:def test_navi_main(self,description):

b、

@pytest.fixture(scope="function", autouse=False, params=["feature1", "feature2"])
def description(request):
    print("\n用例开始执行")
    yield request.param
    print("\n用例执行结束")

# 执行上述方式:def test_navi_main(self,description):
#     def test_print_date(self, description):
#         print(description)


配置参数:

base_url:https://api.weixin.qq.com

函数中适用时:

def test_navi_main(self,base_url):

        url = base_url+"XXXXXX"


allure报告:如需要allure报告显示,导入allure模块,并将每条用例加allure标签。

详细说明找时间仔细梳理一下,此处不更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值