今天学习写pytest用例的时候,看到别人的代码类中的定义:ROBOT_LIBRARY_SCOPE = ‘Global’
然后学习了解了一下这一句代码的意思,原来是RobotFramework自定义关键字
- ROBOT_LIBRARY_SCOPE为ROBOT库范围
这个范围有三个等级,分别是TEST CASE、TEST SUITE、GLOBAL三个等级,默认是TEST CASE;而刚开始学习自定义库,所看到的基本都是GLOBAL这个等级 - 定义的作用
在测试库中声明等级的作用是,在调用这个类的方法,就会实例化这个类,而不需要单独初始化类的实例对象
–TEST CASE:在每个test case中引用都会实例化一次,只要用例中用到了定义类的方法
–TEST SUITE:在suite中引用,只会实例化一次,也就是说10个test case都引用了这个类的方法,但是只有第一个test case是调用的时候实例化,后续的共用,不会重复初始化
–GLOBAL:在全局只实例化一次,调用一次后,在所有suite中引用、test case中引用都不会再实例化
这种常见的用法就是用于测试类初始化session对象,一般情况下全局测试接口的session头都是一致的,所以我们只需要初始化一次,然后所有的请求都会使用这个session头,如下图:
最后学习中明白了一个用法,测试模块的__init__.py一定是在测试用例的py文件之前执行的,模块内部的py文件想要使用__init__.py文件中定义的全局变量或者全局方法,仍然要使用from…import进行导入,才能使用,如:from testcases import headers,host#导入定义的变量
from testcases import mysqlConn,init_data,business_id,device_auth#导入定义的方法和变量集合