如何在unittest框架中获取和使用sessionid

有2个接口:1、登录接口;2、更新用户信息接口,如果想调通接口2需要获取接口1的返回的cookies,可以先通过postman调用接口1,然后在 研究怎么把接口1获取的cookies传入到接口2中使用。
接口1通过postman调用的截图:
在这里插入图片描述
通过图片可以看成response返回了一个Cookies,Cookies下面一个name是JSESSIONID,Value是JD5331BE7E589CBA948A9ACBF7E82A56D
那么我们可以这么理解Cookies是一个字典,字典里面存放了key是JSESSIONID,value是JD5331BE7E589CBA948A9ACBF7E82A56D
写法就是这样的:

Cookies={
         "JSESSIONID":"JD5331BE7E589CBA948A9ACBF7E82A56D"
        }

通过postman调2次这个接口,返现返回的JD5331BE7E589CBA948A9ACBF7E82A56D是不断变化的,也就是说它不是个常量是个变量,要写成变量的形式,如何写成变量的形式的,答案很简单就是通过Cookies字典的key来获取value,即如下写法:

#先获取cookies
response.cookies
#转换成字典
cookies=dict(response.cookies)
#通过cookies字典的key来获取value
self.value=cookies['JSESSIONID']

为啥上面的value前面加了self,因为在我设计unittest框架里面没办法把步骤1获取的value通过传参数的办法传给接口2,写self就代表只要接口1和接口2都在一个测试类里面,大家都认识彼此,不需要获取和传入参数,value是公家的。
那接口2如何把Cookie传进去呢?首先定义一个字典Cookie它的key是JSESSIONID,value是接口self.value,然后在requests.post方法中加入cookies实际如下:

Cookies={
            "JSESSIONID":self.value
        }
        response=requests.post(url,data=para,cookies=Cookies).text

这样的话整体的代码就是下面展示的了

#通过unittest来写一个独立接口的测试
import requests
import unittest
#测试类继承unittest.TestCase
class test_info(unittest.TestCase):
    #用户先登录
    def setUp(self):
        url=ll+'user/login.do'
        para={
            "username":"suxiaominghaha",
            "password":"123456"
        }
        response=requests.post(url,data=para)
        #先获取cookies
        response.cookies
        #转换成字典
        cookies=dict(response.cookies)
        #通过cookies字典的key来获取value
        self.value=cookies['JSESSIONID']
    #测试用户信息更新接口
    def test_case1(self):
      	url=ll+'user/update_information.do'
        para={
            "question":"喜欢吃的水果",
            "answer":"橘子"
        }
        Cookies={
            "JSESSIONID":self.value
        }
        response=requests.post(url,data=para,cookies=Cookies).text
        print(response)

#通过框架调用类
if __name__ == '__main__':
    unittest.main()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值