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

如何在unittest框架中获取和使用sessionid,第1张

有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()

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/730637.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-27
下一篇 2022-04-27

发表评论

登录后才能评论

评论列表(0条)

保存