python之requests接口自动化

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

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

# -*- coding: utf-8 -*-
import requests

'''在登陆模块创建一个全局session,在其他接口操作时带入登陆时的session,保持session的一致性'''
s = requests.Session()   #定义一个全局session

class testlogin():
	login_url = "http://api-xxxxxx/api/Account/Login"  # 登录地址
	data="xxxxx"
	
	def test_login(self):
		data ={"UserName" : self.username,"Password":self.password}
		r = s.post(url=self.login_url,data=json.dump(data),timeout=5)	
		result=r.json()
		print(result)  # 检查返回结果
		print(r.cookies)  # 被调用的时候,会打印session值
		return s

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

from test_case.loggin import testlogin
import unittest
 
'''这里导入之前的登陆模块,调用登陆模块的session,然后去执行其他接口'''
s = testlogin().test_login()
 
class testtransfer(unittest.TestCase):
	def setUp(self):
		self.transfer_url = "http://xxxxxxx/Transfer/DoTransferToGame" # post请求地址
		
	def test_transfer(self):
		data = {"Amount":xx,"GamePlatform":"xxxx"}
		headers = ('Content-type':'application/json')
		r = s.post(url=self.transfer_url,data=json.dumps(data),headers=headers,timeout=5)
		result = r.json()
		print(result)
		assert result['errcode'] == '0'  # 断言
		assert result['errinfo'] == 'XXX'  # 断言
if __name__ == "__main__":
	unittest.main()

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

from test_case.loggin import testlogin
import unittest
 
'''这里导入之前的登陆模块,调用登陆模块的session,然后去执行其他接口'''
s = testlogin().test_login()
 
class testtransfer(unittest.TestCase):
	def setUp(self):
		self.transfer_url = "http://xxxxxxx/Transfer/DoTransferToGame" # get请求地址
		
	def test_transfer(self):
		data = {"Amount":xx,"GamePlatform":"xxxx"}
		headers = ('Content-type':'application/json')
		r = s.get(url=self.transfer_url,params=(data),headers=headers,timeout=5)
		result = r.json()
		print(result)
		assert result['errcode'] == '0'  # 断言
		assert result['errinfo'] == 'XXX'  # 断言
if __name__ == "__main__":
	unittest.main()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值