一、为什么要做统一请求封装?
- 1. 去除很多重复的、冗余的代码;
- 2. 异常处理和日志监控:设置统一的公共参数、统一的文件处理、统一的异常处理、统一的日志监控、统一的用例断言等;
- 3. 跨py文件实现通过一个session自动管理有cookie关联的接口;
----web项目的接口,一般都会存在cookie关联。
- 4. 统计数据:便于统计测试用例的执行
二、统一请求封装
系统封装的,和我们目前自己封装的有何区别?
所有的封装一般会放在一个公共文件夹里,比如:common包中~~ requests_util.py(自定义)
类变量
由于在test_api.py文件中定义了全局变量(也可称为:类变量), 此时如果在test_user.py文件中想使用该全局变量,就得导入test_api.py模块;
而由于test_user.py导入test_api.py模块,导致执行test_user.py时,会将test_api.py模块中的方法(用例)也执行一遍,会导致用例的执行冗余
---通过类变量保存中间变量实现接口关联,但当该py文件被引用,或者类被其他模块引用时,意味着导入这个类的所有用例,会导致用例重复执行;
---所以变量一般不要定义为类变量,如果该变量被其他模块导入并执行时,也会执行该类的用例。
类变量,要通过类名来访问,不用()
方法:通过对象调用,要用()
可以去掉全局变量,用yaml文件代为保存全局变量。