多个接口一起测试,数据涉及多接口之间传递时,对数据的处理有两种方法:
1)将前一个接口返回数据设置为全局变量globals()函数
函数介绍:globals()函数以字典类型返回当前位置的全部全局变量
函数用法:globals()函数实现用例之间的数据共享
比如:用例a返回的结果写到globals()["a"]中,用例b调用globals()["a"]的值
# 用法例a
globals()["a"] = "用例a的返回结果"
# 用例b引用
b = globals()["a"] print(b)
备注:当多个用例共享一份数据时,可以把globals()函数放到setUp前置里面。
当用例c的的请求参数依赖用例a和用例b时,使用太多的globals()会不太好关联,可以把globals()函数放到setUp前置里面
如下:用例c需要依赖a的返回值result_a和用例b的返回值result_b
class TestA(unittest.TestCase):
def setUp(self):
self.s = requests.session()
self.g = globals()
def test_a(self):
'''用例a'''
result_a = "aaaaaa" # 用例a的返回值
# 返回值先给全部办理,存到字典对应key
self.g["a"] = result_a
self.assertEqual(result_a, "aaaaaa")
def test_b(self):
'''用例b'''
b = self.g["a"] # 引用用例a的返回值
print("用例b引用用例a的返回值:%s"%b)
result_b = b+"111"
self.g["b"] = result_b
self.assertEqual(result_b, "aaaaaa111")
def test_c(self):
'''用例c'''
print("用例c依赖用例a和用例b")
c_a = self.g["a"]
c_b = self.g["b"]
print("用例c的请求入参:%s" % c_a)
print("用例c的请求入参:%s" % c_b)
2)利用configparser函数
a)configparser.ConfigParser().set(file_name, section_name, option, value)函数,将上一个接口的返回数据写入.ini文件中
b)configparser.ConfigParser().get(file_name, section_name, option)函数,从.ini文件读取数据
参考:https://www.cnblogs.com/yoyoketang/p/11241473.html