卖酒网站排名,空间注册网站,挂马网站 名单,大良网站设计价格前言 在目前互联网公司中#xff0c;都会存在多个测试环境#xff0c;那么当我们编写的自动化想要在多套测试环境下进行运行时#xff0c;如何使用#xff1f;大多数人想到的可能是通过将我们自动化代码中的地址修改成不同环境#xff0c;但是这时候就会增加一些工作量都会存在多个测试环境那么当我们编写的自动化想要在多套测试环境下进行运行时如何使用大多数人想到的可能是通过将我们自动化代码中的地址修改成不同环境但是这时候就会增加一些工作量每次运行不同的环境都需要进行再配置文件中进行修改地址这样很不方面今天小编介绍一种pytest的钩子函数这个函数可以帮助我们很容易的解决这个问题。 pytest_addoption pytest_addoption是pytest的钩子函数之一用于为pytest添加自定义选项并将这些选项传递给测试用例。可以通过修改pytest的配置文件(pytest.ini)或使用命令行参数来设置这些选项。pytest_addoption该函数一般需要和pytest的fixture内置函数request中的request.config.getoption(获取命令行参数信息)进行结合使用。 在上述问题中我们可以通过在命令行参数中对测试环境地址进行修改这样就可以在不修改配置文件的情况下只通过命令行参数进行在不同的测试环境中执行相同的自动化代码。 def pytest_addoption(parser):parser.addoption(--anjing,actionstore,defaultdev,help通过anjing添加自定义命令行参数名称)参数介绍 pytest_addoption中常用到的一些参数介绍 name表示自定义命令行参数的名称一般通过“--xxx”来使用 action表示命令行中遇到此参数时要采取的存储该参数对应的参数值的基本操作类型默认为“store” default表示如何命令行中没有传入该参数的值则取默认值 help对参数作用的简介和说明 使用方法 关于pytest_addoption的一些简介和用途已经介绍完毕了接下来跟着小编一起查看如何使用pytest_addoption来解决我们的问题。 需要在conftest.py文件中进行创建一个pytest_addoption函数对其进行设置对应参数类型通过pytest.fixture创建函数获取命令行对应参数值通过编写测试用例中调用对应的函数名称命令行执行时添加对应命令行参数 小编先列举下conftest.py文件中关于pytest_addoption的编写 # conftest.py文件
# coding:utf-8
import pytestdef pytest_addoption(parser):parser.addoption(--anjing, actionstore, defaultanjing, help将anjing添加到pytest的配置参数中)parser.addoption(--env, actionstore, defaultdev, helpenv表示命令行参数内容不填写默认输出default的值内容)
pytest.fixture()
def anjing(request):return request.config.getoption(--anjing)pytest.fixture()
def env(request):return request.config.getoption(--env)再根据conftest.py文件中的内容编写对应的测试用例 # coding:utf-8
def test_01(anjing):if anjing test:print(命令行传参成功)else:print(命令行取默认值!)def test_02(env):if env test:print(传参成功!)else:print(传参失败)通过cmd执行时候后续进行添加了对应的命令行参数值这里小编是对两个命令行参数都添加了值那么如果不添加值会怎么样呢 通过执行结果可以看出来当我们没有添加参数时这里小编忘记打印返回值了其实会实际输出默认值就是我们在函数中设置的default 我们上面使用的方法是通过XXXXXX的格式来输出的这里我们也可以通过--xxxx 值参数和值之间通过空格进行输入结果都是一样的。 案例展示 上述小编是介绍了如何使用那么我们如何在接口项目中使用呢小编这里通过一个简单的方法通过项目进行展示这里小编通过将默认值值变成了请求成功的url地址添加参数为错误的url地址 # conftest.py文件
# coding:utf-8
import pytest
def pytest_addoption(parser):parser.addoption(--url, actionstore, defaulthttp://apis.juhe.cn/simpleWeather/query,help将anjing添加到pytest的配置参数中)pytest.fixture()
def anjing(request):return request.config.getoption(--url)conftest.py文件中我们将默认请求成功的地址写入到默认值中然后继续编写接口请求地址在添加一个命令行参数的函数 # test_01.py文件
# coding:utf-8
import requests
def test_01(anjing):data {city: 上海,key: 331eab8f3481f37868378fcdc76cb7cd}r requests.post(anjing, datadata)result r.json()[reason]assert result 查询成功!通过cmd进行运行程序我们先不添加任何命令行参数让其请求默认参数值的内容发现测试用例请求成功了。 接下来我们通过随便在命令行参数后跟一个不正确的url地址去模拟请求这里肯定是无法请求成功的因为我们请求的百度不能请求成功。(主要模拟测试环境场景) 总结 小编通过简单的方法介绍了如何使用pytest_addoption进行来模拟不同测试环境下我们如何进行执行我们的测试用例当然pytest_addoption的用途不仅仅只有这么多具体如何使用大家可以根据自己公司内容的项目进行结合使用。感谢您的阅读希望本篇文章对您有所帮助。