pytest之fixture用法03:使用fixture返回数据

后续接口使用fixture的数据,是实际场景中一大应用,起到了类似前置程序一样的作用。

1、确定传参的参数。以测试手机号归属地的request请求为例,接口需要传的参数为shouji,appkey。

2、conftest中定义fixture方法返回shouji、appkey

@pytest.fixture(scope='function')
def get_params():
    params = {
        "shouji": "13456755448",
        "appkey": "f59e0831625536e7"
    }
    return params

3、调用2中定义好的get_params方法。此处有两种调用参数形式。

1)传参中直接用get_params的返回值。

def test_mobile_get(get_params):
    print("测试手机号归属地get请求")
    r = requests.get('https://api.binstd.com/shouji/query', params=get_params)
    assert r.status_code == 200
    result = r.json()
    assert result['status'] == 0
    assert result['msg'] == 'ok'
    assert result['result']['shouji'] == '13456755448'
    assert result['result']['province'] == '浙江'
    assert result['result']['company'] == '中国移动'
    assert result['result']['cardtype'] is None
    assert result['result']['areacode'] == '0571'

2)另外定义两个变量接收get_params的值,以这两个变量作为传参去请求。

def test_mobile_post(get_params):
    shouji = get_params["shouji"]
    appkey = get_params["appkey"]
    print("测试手机号归属地get请求")
    r = requests.post(url='https://api.binstd.com/shouji/query', params={
        "shouji": shouji,
        "appkey": appkey
    })
    # print(r.json())
    # print(r.status_code)
    assert r.status_code == 200
    result = r.json()
    assert result['status'] == 0
    assert result['msg'] == 'ok'
    assert result['result']['shouji'] == '13456755448'
    assert result['result']['province'] == '浙江'
    assert result['result']['company'] == '中国移动'
    assert result['result']['cardtype'] is None
    assert result['result']['areacode'] == '0571'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值