以web端为例,登录请求:
请求的url
传参
响应
那在接口自动化中需要涉及以上数据:①请求的url ②请求时要传的参数 ③请求成功后的响应数据
1.请求url
class Login:
def do_login(self,indata):
url = 'https://XXXX/api/blade-auth/oauth/token'
也可以在configs
包下创建一个文件:config.py
HOST='https://XXXX'
这样就在登录和其他结果引用HOST
from configs.config import HOST
import requests
class Login:
def do_login(self,indata):
url=f'{HOST}/api/blade-auth/oauth/token'
2.传参
参数有:tenantId,username,password,grant_type,scope,type,loginType
class Login:
def do_login(self,indata):
url=f'{HOST}/api/blade-auth/oauth/token'
resp=requests.post(url,data=indata)
print(resp.text)
if __name__=='__main__':
Login().do_login({'tenantId':'000000','username':'admin','password':'XXXXX','grant_type':'password',
'scope':'all','type':'account','loginType':'1'})
3.响应
执行代码:
{"code":500,"success":false,"data":{},"msg":"Missing request header 'Dept-Id' for method parameter of type String"}
响应中报缺少Dept-Id,f12找到该参数
加到代码中
header={
'Dept-Id':''
}
resp=requests.post(url,headers=header,data=indata)
执行代码:
{"code":500,"success":false,"data":{},"msg":"Missing request header 'Role-Id' for method parameter of type String"}
响应中报缺少Role-Id,同样的方法f12找到该参数,并加到代码中
执行代码:
{"code":401,"success":false,"data":{},"msg":"no client information in request header"}
该报错的意思是认证异常,请求需要加上Authorization Header,f12找到该参数,并加到代码中
执行代码:
响应与手动执行登录操作一致,代表请求成功。
完整代码:
from configs.config import HOST
import requests
class Login:
def do_login(self,indata):
url=f'{HOST}/api/blade-auth/oauth/token'
header={
'Dept-Id':'',
'Role-Id':'',
'Authorization':'Basic c2FiZXI6c2FiZXJfc2VjcmV0'
}
resp=requests.post(url,headers=header,data=indata)
print(resp.text)
print(resp.status_code)
print("========测试用例1=============")
if __name__=='__main__':
Login().do_login({'tenantId':'000000','username':'admin','password':'XXXX','grant_type':'password',
'scope':'all','type':'account','loginType':'1'})