python自动化---接口依赖的三种处理方法
1. 对于单接口测试如果依赖接口只需要在测试开始执行一次,那么可以将依赖接口的请求放在类级前置方法中,然后通过全局变量或者当前用例类属性来传递依赖数据。
2. 对于单接口测试如果依赖接口需要在每个用例前执行,那么可以将依赖接口的请求放在方法级前置方法中,然后通过用例对象属性来传递依赖数据
3. 对于多接口的业务流测试,可以将下一个接口需要依赖的数据通过当前用例类属性来传递依赖数据。
一、业务流测试场景
1 # 业务流测试场景 2 import unittest 3 4 # 定义一个全局变量 5 class EnvData: 6 pass 7 8 9 class SomeTestCase(unittest.TestCase): 10 11 def test_01case(self): 12 # 模拟接口返回需要传递的数据 13 res1 = 1 14 # 将需要传递的数据保存到全局变量类的属性中 15 EnvData.res1 = res1 16 # 也可以绑定到当前用例类中进行传递 17 self.__class__.res1 = res1 18 19 def test_02case(self): 20 # 获取上一个接口传递的数据 21 # 通过全局变量类获取 22 res1 = EnvData.res1 23 # 通过类属性获取 24 res1 = self.__class__.res1 25 # 如果没有同名的对象属性也可以直接通过对象属性获取 26 res1 = self.res1 27 28 29 30 if __name__ == '__main__': 31 unittest.main()
二、单接口测试场景-1
1 # 单接口测试场景-1 2 import unittest 3 4 5 def do_something(): 6 """ 7 模拟表示前置接口 8 :return: 9 """ 10 return 3.14 11 12 13 # 定义一个全局变量类 14 class EnvData: 15 pass 16 17 18 class SomeTestCase(unittest.TestCase): 19 20 @classmethod 21 def setUpClass(cls) -> None: 22 # 执行前置操作 23 data = do_something() 24 # 将data绑定到全局变量类的类属性上 25 EnvData.data = data 26 # 将data绑定到当前类的类属性上 27 cls.data = data 28 29 def test_something(self): 30 print('执行测试') 31 # 获取前置方法中产生的数据 32 # 从全局变量中获取 33 print(EnvData.data) 34 # 从当前用例的类属性中获取 35 print(self.__class__.data) 36 # 如果当前用例对象没有同名对象属性,也可以直接从对象属性中获取 37 print(self.data) 38 39 40 if __name__ == '__main__': 41 unittest.main()
三、单接口测试场景-2
1 # 单接口测试场景-2 2 import unittest 3 4 5 def do_something(): 6 """ 7 模拟表示前置接口 8 :return: 9 """ 10 return 3.14 11 12 13 class SomeTestCase(unittest.TestCase): 14 15 def setUp(self) -> None: 16 # 执行前置操作 17 data = do_something() 18 # 将data绑定到当前对象的属性上 19 self.data = data 20 21 def test_something(self): 22 print('执行测试') 23 # 获取前置方法中产生的数据 24 # 从对象属性中获取 25 print(self.data) 26 27 28 if __name__ == '__main__': 29 unittest.main()