网站页面怎么做识别二维码,怎样建设营销型网站,重庆关键词快速排名,网站内容规划要包括什么内容#x1f366; 会话保持-token
有的网站登录需要token鉴权#xff0c;是啥意思呢#xff0c;现在有两个接口#xff0c;一个接口是登录#xff0c;一个接口是提交订单#xff0c;那你怎么保证#xff0c;提交登录这个用户是登录状态呢。登录成功的接接口会在response里面… 会话保持-token
有的网站登录需要token鉴权是啥意思呢现在有两个接口一个接口是登录一个接口是提交订单那你怎么保证提交登录这个用户是登录状态呢。登录成功的接接口会在response里面返回token我们拿到token之后再把它放到订单接口的请求头里面这样一个流程就实现了登录的鉴权。 会话保持权-cookie
同token只不过cookie不是再response里面直接是返回结果的.cookie.然后订单接口的时候传参参数直接加上cookie这个值。 会话保持 requests Session模块
会话对象让你能够跨请求保持某些参数。它也会在同一个 Session 实例发出的所有请求之间保持 cookie。怎么用呢
session requests.session()url https://easy-mockhome,avzhg,com:10443/mock/61922bfd6e616600281c7c3e/test/1oginjson {user: user,password: 123}
result session.post(url, jsonjson, verifyFalse)tekresult.json().get(data).get(cookie)
session.headers.update({toker: tok})
print(接口一打印:session.headers)
Url https://easy-mock,home,gyzhg.com:10443/mock/61922bfd6e616680281c7c3e/test/logout
json{}
result session.post(url,jsonjson, verifyFalse)print(换口二打印:session.headers) 可以看到headers都是一样的这样就实现了会话保持 使用装饰器实现会话保持
接下来使用装饰器实现首先登录是一个装饰器其他函数是被装饰器的。我们要做什么呢每次登录的时候去检查登录状态如果登录了就不操作如果没有登录就需要去做登录操作。这是一个登录的装饰器
def login(fun):
def login_true(*args, **kwargs):
if session.headers.get(token) is None:
url https://easy-mock.home.gyzhg.com:10443/mock/61922bfd6e616600201c7c3e/test/loginjson {user: args[0],password: args[1]}
result session.post(url,jsonjson, verifyFalse)tok result.json().get(data).get(cookie)session.headers.update({token: tok})
print(login,json,result.json())
fun(*args,**kwargs)
else:
print(用户已经登录)
fun(*args, **kwargs)
return login_true
登录之后我把token塞进到了headers里面。接下来是一个购买的接口我想切换用户所以我传了两个参数。
login
def buy(user, password):
url https://easy-mock.home.gyzhg.com:10443/mock/61922bfd6e616600201c7c3e/test/buy
json {}
result session.post(url,jsonjson,verifyFalse)
assert result.json().get(data).get(message) success
print(buy,result.json())
return result.json()
看一下效果
流程是现在有两个函数一个是购买操作一个是退出操。调用顺序是这样的
if__name__ __main__print(buy(user,123))print(logout())print(buy(user,123))
购买传入两个参数再退出再去购买 看一下结果。
E:\python3.8\python.exe E:/test locust/11.25.py(login, iuser: user, password: 123, idata: istatus: 200, cookie’: ERTYUCLLL#$$^’}}, (buy, idata: istatu(用户已经登录’(logout{data:{status:200message:注销成功}}))(login, fuser: user’, pasword: 123, idata: istatus’: 2, cookie’: ERTYUCLLL$;^’, (buy, {data: istatus
可以看到首先是登录登录之后去下单然后退出再去登录再去下单。现在就实现了会话保持的装饰器。