1.测试场景:
登录接口测试
2.测试数据:
{'email': 'eve.holt@reqres.in', 'password': 'cityslicka'}
返回值:
{"token":"QpwL5tke4Pnpja7X4"}
3.代码演示:
将用户信息放在config.py的配置文件中
libs/login.py
indata = {'email': 'eve.holt@reqres.in', 'password': 'cityslicka'}
正式的代码
from config import indata
import requests
import hashlib
import copy
HOST = 'https://reqres.in'
# 加密接口
def __get_md5_data(pwd: str):
md5 = hashlib.md5()
md5.update(pwd.encode('utf-8'))
# hexdigest():返回摘要,作为十六进制数据字符串值
return md5.hexdigest()
# 登录接口
def login(inData):
# url
url = f'{HOST}/api/login'
#浅拷贝inData,以防加密时原数据被修改
inData1=copy.copy(inData)
inData1['password']=__get_md5_data(inData1['password'])
# 封装数据
payload = inData1
print('数据==',payload)
# 请求并接受响应
resp = requests.post(url, data=payload)
return resp.text
# 用户列表接口
def getUsers():
url = f'{HOST}/api/users?page=2'
resp = requests.get(url)
resp.encoding = 'unicode_escape'
return resp.text
if __name__ == '__main__':
# 字典方式封装
print('indata加密前:', indata)
res = login(indata)
print('indata加密后:', indata)
print('登录', res)
res2 = getUsers()
print('用户列表:', res2)
# cookies应用:二次组装,仅举个例子说明如何写
# 该接口实际并不需要sessionid+token进行组装。实际应用时看抓包结果
cookie = login(indata)
sessionID = cookie['sessionid']
# 二次组装
userCookies = {'sessionid': sessionID, 'token': '调用第三方接口获取token'}
res3=login(userCookies)