做自动化接口测试时,遇到需要登录后才能继续操作时,需要做接口关联。
项目特性:只有完成登录操作才可以获取sessionid
方式一:
# coding = utf-8
import requests
HOST = 'http://localhost'
def login(payload, get_cookies=False):
url = f'{HOST}/api/mgr/loginReq'
# body请求体是表单, 使用data=数据
response = requests.post(url, data=payload)
if get_cookies: # 需要获取cookies时使用
return response.cookies
return response.json() # 返回响应数据,在测试登录接口时使用
def lesson_list(payload, in_cookies):
url = f'{HOST}/api/mgr/sq_mgr/'
'''
关联操作:需要把登录接口返回的cookies提取出来,给后续的接口
'''
response = requests.get(url, params=payload, cookies=in_cookies)
return response.json()
if __name__ == '__main__':
# 登录
login_data = {'username': '用户名', 'password': '密码'}
cookie = login(login_data, get_cookies=True)
# 登录后的操作
test_data = {'action': 'list_course', 'pagenum': 1, 'pagesize':5}
result = lesson_list(test_data, cookie)
print(result)
方式二:使用session对象
# coding = utf-8
import requests
HOST = 'http://localhost'
s = requests.session() # session对象
def login(payload):
url = f'{HOST}/api/mgr/loginReq'
# body请求体是表单, 使用data=数据
response = s.post(url, data=payload)
return response.json()
def lesson_list(payload):
url = f'{HOST}/api/mgr/sq_mgr/'
response = s.get(url, params=payload)
return response.json()
if __name__ == '__main__':
# 登录
login_data = {'username': '用户名', 'password': '密码'}
login(login_data)
# 登录后的操作
test_data = {'action': 'list_course', 'pagenum': 1, 'pagesize':5}
result = lesson_list(test_data)
print(result)