在进行接口自动化测试时,有好多接口都基于登陆接口的响应值来关联进行操作的,在次之前试了很多方法,都没有成功,其实很简单用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.password13 }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_url12 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()