在接口测试中,经常会存在联调的接口,比如登录完去调用其他的接口,这时就会存在一个问题,那就是登录成功了,但是其他接口失败了,这个时候就需要用到一个sessionID去传入其他接口验证合法性请求,这样才能让其他接口请求成功。
用postman去调用登录接口,可以看到在Cookies里面有一个JESSIONID
接着调用更新用户信息接口
可以看到Cookies里面有一个JESSIONID
# 对更新用户信息的脚本进行测试,使用unittest框架技术
# 接口说明:
# 接口访问地址: http://localhost:8080/jwshoplogin/user/update_information.do
# 接口传入参数:1、email: 2、phone:3、answer: 4、question:
# 接口预期返回结果:
# 1、email已存在, 请更换email再尝试更新 2、更新个人信息成功 3、更新个人信息失败"
#*****************************************************************************
# 脚本实现:
# 导入相关类库
import unittest
import requests# 定义测试类,继承unittest框架
class test_updateuser(unittest.TestCase):# 通过setup方法实现登录接口的调用def setUp(self):url="http://localhost:8080/jwshoplogin/user/login.do"userinfo={"username":"张海","password":"123456"}response=requests.post(url,data=userinfo)self.sessionID=dict(response.cookies)['JSESSIONID']print(self.sessionID)# V1.0版本,传入一组固定的测试数据,进行接口测试def test_case1(self):# 传入指定的接口测试数据url="http://localhost:8080/jwshoplogin/user/update_information.do"userinfo={"email":"123456@qq.com","phone":"13311095555","question": "苹果","answer":"最喜欢的水果"}session={"JSESSIONID":self.sessionID}# 进行接口调用response=requests.post(url,data=userinfo,cookies=session).textprint(response)self.assertIn("更新个人信息成功",response)if __name__ == '__main__':unittest.main()
这里面用到两个关键的语句,首先从字典里面取到JSESSIONID
self.sessionID=dict(response.cookies)['JSESSIONID']print(self.sessionID)
执行结果
3BF0D3363CFCC23351CA9B1DE95AE5FB
接着下一个请求调用
session={"JSESSIONID":self.sessionID}# 进行接口调用response=requests.post(url,data=userinfo,cookies=session).textprint(response)
执行结果:
{"status":0,"msg":"更新个人信息成功","data":{"id":25,"username":"张海","password":null,"email":"123456@qq.com","phone":"13311095555","question":"苹果","answer":"最喜欢的水果","role":null,"createTime":null,"updateTime":null}}
返回结果成功。
愿每个测试都能顺利转为测试开发,提高职业技能,成为前1%的存在,为社会创造更大的价值,为公司节约更多的成本,为自己和家庭谋求更高的收入,所有人不受35岁职业年龄限制,能干到退休,直至财富自由;愿测试技术越来越进步,软件质量进一步得到提高,效率提高。愿祖国更加美好,人民更加幸福。多喜乐,常安宁。