1、使用requests模块,进行接口自动化,requests有必要自己封装的;
请求方式有多种,但我们一般用session的方式
request使用session的方法去连接,可以做cookie的关联;
用session发请求,会自动关联cookie,所以一般用这种方式去发送请求;
from common.common_util import CommonUtil
import pytest
from common.yaml_util import read_yaml
import requests
class TestLogin(CommonUtil):
# request使用session的方法去连接,可以做cookie的关联;
# 用session发请求,会自动关联cookie,所以一般用这种方式去发送请求;
# requests.session(),是一个方法,定义在这个类中,传给session变量
# 下面的login防范中,用TestLogin.session来调用这个方法
session = requests.session()
#通过key去提取value,如caseinfo['request']['method'],提取method的值
@pytest.mark.parametrize('caseinfo',read_yaml('testcase/login.yaml'))
def test_login_01(self,caseinfo):
print("\n测试01号登录成功")
print(caseinfo)
name = caseinfo['name']
method = caseinfo['request']['method']
url = caseinfo['request']['url']
data = caseinfo['request']['data']
header= caseinfo['request']['headers']
validate = caseinfo['validate']
# 将caseinfo中的数据,传到request中,其中数据有params,data,json三种格式;
# 当请求方式是:get,数据格式用params
# 当请求方式是:post,数据格式用data,json
# 发送请求后,会得到一个响应,存到res变量中
res = TestLogin.session.request(method= method, url=url,headers=header, data=data)
print(res.json())
assert 'message' in res.json()