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()

 

posted @ 2022-03-09 10:49  WJ-HAHA  阅读(648)  评论(0编辑  收藏  举报