RF之变量的共享使用与python测试库-5

RF申明变量:python

 

       首先咱们要建立Variables表api

       *** Settings ***less

       ${LoginUrl}      http://cloud.innovpowerf.com/Account/Login
函数

       ${StudentLoginUrl}      http://localhost/student/login测试

       @{database}        127.0.0.1     3306           ----------------List变量命令行

       &{user}             name=username    pw=password   ------------------Dict变量资源

 

使用变量文件:get

       能够使用python模块文件提供公共变量给RF使用,只须要直接定义变量就能够了。语法彻底就是python语法。如:class

       StudentLoginUrl = 'http://localhsot/studfent/login'import

        RF申明使用变量文件:

        *** Setings ***

        Variables    ../cfg/cfg.py

       *注意* :变量文件申明时,能够使用绝对路径,也能够使用相对路径。

                    使用相对路径时RF搜索规则和资源文件搜索规则同样:

                            - 先在相对当前文件的目录  匹配搜索;

                            - 在python的模块搜索路径中搜索,能够用  --python参数   如:robot --python .tc/t1.robot

                    命令行参数指定变量文件:robot --variablefile cfg\cfg.py  tc/t1.robot

                    也能够设置全局变量而后执行(写成全局的配置文件):

                                  set pythonpath=.

                                  robot tc/t1.robot

python扩展关键字:

       python模块做为关键字:模块文件名做为测试库的名字

                                        好比 python模块叫MyLibrary,对应的python文件就是MyLibrary.py,那么测试库的名字就是MyLibrary

                                        定义在python模块文件中的函数,名称前有_前缀的不会做为关键字

       def  returnList1():

                return[1, 2]

       def  _returnList2():

                return[1, 2]

       要保证其在python模块的搜索路径中,这样RF才能找到它。

          * 直接设置环境变量

          * 用 --python参数    如:robot --pythonpath lesson1 lesson1/tmp.robot

          若是在lesson里面的某个目录中执行呢?   如  robot --pythonpath ..  ../tmp2.robot

       RF使用关键字的时候: - 中间能够加上任意的空格   

                                     - 大小写也能够任意

       本身定义关键字的时候:以下

       from robot.api.deco import keyword   # 装饰器

       @keyword

       def returnList():

              return[1, 2]

python类做为测试库:

      * 好比:python文件是tlib2.py

      class SubLibrary:   

              def returnInt(self):

                     return 3

              def _returnInt(self)

          return  4

   * 申明

      *** Settings ***

      Library       tlib2.SubLibrary

      * 该类中的成员方法,名称前有_前缀的不会做为关键字

      * 导入时的参数,对应类的初始化方法

      * 若是类和模块文件同名,申明的时候就能够省略后面的类名

python 扩展库的搜索规则:

       彻底是按照python的模块的搜索规则来的

          - 若是在包内,pylib/login/rightpass.py

            *** Settings ***

            Library       pylib.login.rightpass

           ---------------------------------------------------------------------

            Library      pylib/login/rightpass.py

          - 在Settings中    申明资源文件和变量文件:

            路径、目录之间的分隔符,不用点  .    而是用斜杠 / 

          - 在Settings申明测试库:

            路径、目录之间的分隔符,能够用点  也能够用斜杠  /  

            路径分隔符    用点后面不加py,用斜杠后面加.py

相关文章
相关标签/搜索