这篇文章写得是如何获取sessionId的值
在web系统中很多接口的调用需要试用到sessionId的值,sessionId是有时效的,这时候就需要先登录获取sessionId
这篇文章得到密码传递经过了md5加密,这个是因为我公司的登录接口要求不能明文传递,如果密码直接传递123456会报错
#导入模块
import unittest
import requests
import hashlib
import json
import unittest
# 登录
url = "http://www.******.cn:8882/login/in"
# 密码加密
password = "123456"
md5_object = hashlib.md5() #创建一个md5对象
md5_object.update(password.encode(encoding="utf-8"))#添加要加密的文本
md5_result = md5_object.hexdigest() #获取加密结果
print("加密结果为:"+md5_result)
# 加密后的值是:e10adc3949ba59abbe56e057f20f883e
# 加密完成
data1 = {
"account": "admin",
"password": md5_result,
"remenber": "true"
}
# application/x-www-form-urlencoded表单提交
head = {"Content-Type": "application/x-www-form-urlencoded"}
r = requests.request("post", url, data=data1, headers=head).text
print(r)
#打印出sessionId
# r是字符串类型,需要先把r转换为json格式再取值
sessionId = json.loads(r)["data"]["sessionId"]
print("sessionId值为:"+sessionId)
# 断言
def test(self):
self.assertIn("\"msg\":'成功'",r)
if __name__=='__main__':
unittest.main()
运行结果
加密结果为:e10adc3949ba59abbe56e057f20f883e
{"code":0,"msg":"成功!","data":{"id":"1","createTime":"2019-03-28 16:16:50","updateTime":"2019-06-25 15:23:30","account":"admin","password":null,"salt":"INQPFR","name":"系统管理员","mobile":"18284595528","email":"szt@ybhome.vip","sex":0,"status":0,"sort":0,"notes":"0","lastLoginTime":"2019-06-25 15:23:30","sessionId":"ae1b0dd2767ee33d2c6720e7e7724aeb","deptJson":null,"roleJson":null}}
sessionId值为:ae1b0dd2767ee33d2c6720e7e7724aeb
----------------------------------------------------------------------
Ran 0 tests in 0.000s