python3+requests接口自动化session操作

在进行接口自动化测试时,有好多接口都基于登陆接口的响应值来关联进行操作的,在次之前试了很多方法,都没有成功,其实很简单用session来做。

1、在登陆接口创建一个全局session

 1 # -*- coding: utf-8 -*-
 2 import requests
 3 '''在登陆模块创建一个全局session,在其他接口操作时带入登陆时的session,保持session的一致性'''
 4 s = requests.Session()#定义一个全局session
 5 class testlogin():
 6     login_url = "http://api-xxxxxx/api/Account/Login" 
 7     username = "xxxxx"
 8     password = xxxxx
 9     def test_login(self):
10         data ={
11             "UserName" : self.username,
12             "Password" : self.password
13         }
14         r = s.post(self.login_url,data)
15         print(r.cookies)
16         return s

2、在其他接口调用登陆的session,用这个session.post()去访问其他接口

 1 from test_case.loggin import testlogin
 2 import unittest
 3 
 4 '''这里导入之前的登陆模块,调用登陆模块的session,然后去执行其他接口'''
 5 s = testlogin().test_login()
 6 
 7 class testtransfer(unittest.TestCase):
 8     def setUp(self):
 9         self.transfer_url = "http://xxxxxxx/Transfer/DoTransferToGame"
10     def test_transfer(self):
11         url = self.transfer_url
12         data ={"Amount":xx,
13                 "GamePlatform":"xxxx"
14                }
15         r = s.post(url,data)
16 
17         print(r.text)
18 if __name__ == "__main__":
19     unittest.main()