前言
接口自动化测试中,经常遇到一个需求,希望执行全局测试用例,只调用一次登陆接口。调用登陆接口获得token后,放到请求头中,后续执行测试用例,都使用这个请求头,可以通过pytest框架的fixtrue实现。
实现
import pytest
import requests
import json
import random
from common import test_login
class TestDemo:
@pytest.fixture(scope="session")
#调接口获取header(header中包含token)
def token(self):
headers = test_login.Testlogin.test_get_token(self)
return headers
#调接口请求设备类型
def test_template_get(self,token):
url = 'https://XXX'
payload = {'size': 1}
print(url)
print(payload, u'数据类型:', type(payload))
r = requests.get(url, params=payload, headers=token)
导入pytest,@pytest.fixture(scope=“session”),scope定义函数作用范围:
scope=“function” 函数范围有效。
scope=“class” 类范围有效。
scope=“module” .py文件内有效
scope=“session” 多个.py文件全局有效
1.为了方便设置多个py文件有效(scope=“session”)
2.定义fixture跟定义普通函数差不多,为了与其他正常测试用例做区分,不用test_开头
3.需要调用token时,将token做为函数参数传入即可