RobotFramework学习08-扩展库之python测试库(变量和关键字)

RobotFramework学习笔记目录


python测试库(变量和关键字)

本文包含内容

  1. python测试库-变量
  2. python扩展关键字

python测试库-变量

使用python模块文件提供公共变量给RF使用。
只需要直接定义变量就可以了,语法完全就是python

将变量或关键字封装到python文件中
# 变量
MgrLoginUrl =    ‘http://localhost/....’
StudentLoginUrl =     ’http://localhost/....‘
database =     ['127.0.0.1',   '3306']
user1 =     {'name':'auto'  , 'pw':'sdfsddds'}
RF中声明变量文件
*** Settings ***
Variables   xxx.py   
  • python文件引用时可以使用绝对路径也可以使用相对路径,建议使用相对路径

  • 使用相对路径的时候,RF搜索规则和资源文件搜索规则一样:先搜索当前目录下该python文件是否存在,没有的话则根据path路径查找

    • 测试套件和py文件在同一目录
    # 测试套件中
    *** Settings ***
    # 引入python文件中的变量(xx.py和测试套件在同一个目录下)
    Variables   xxx.py   
    
    
    • 测试套件和py文件不在同一目录

    在python的模块搜索路径中搜索,可以用--pythonpath参数

    # 测试套件中
    *** Settings ***
    # 引入python文件中的变量(aa在项目目录下,xxx.py在aa目录下)
    Variables   aa/xxx.py   
    
    
    # 运行命令
    # 1.通过cd命令进入到项目根目录下
    # 2.执行命令```robot --pythonpath .  tc/t1.robot```
    # 注释:“--pythonpath .”表示设置当前目录到path中
    
    • 命令行参数指定变量文件

    使用此方法不需要在robot文件中单独声明
    # cfg文件夹和tc文件夹在同一目录(执行命令时的目录) robot --variablefile cfg\cfg.py tc/t1.robot

RF中使用python变量文件中的变量
${MgrLoginUrl}
  • 对字符串、列表、字典的调用,同RF内部变量使用方法类似

python扩展关键字

python模块作为测试库(函数)
- 模块文件名作为测试库的名字
- 比如python模块叫MyLibrary,对应的python文件时MyLibrary.py。那么测试库的名字就是MyLibrary
- 定义在python模块文件中的函数,名称前有_前缀的不会作为关键字
```
# 关键字(相当于python中的函数)
def  returnlist():
    return [1,2]
```
RF引入python模块方法
*** Settings ***
Library  xxx  # xxx 为python文件xxx.py
  • 测试套件与python不在同一目录时,引入方法同python变量的引入方法(使用--pythonpath)

注意,此时的引用关键字是Library

  • RF使用关键字的时候:
    • 中间任意可以加上的空格(不得超过2个)
    • 大小写也可以任意
    returnlist
    re tuRnl ist
    Return Rist
    
Python类作为测试库(类)
  • 比如python文件是tlib2.py
class SubLibrary():
    def __init__(self,a=1,b=2):
        self.a = a
        self.b = b
    def returnint(self):
        return 3
  • 声明(导入的时候会自动默认创建一个实例)
# 不带参数
*** Settings ***
Library   tlib2.SubLibrary
# 带参数
*** Settings ***
Library   tlib2.SubLibrary  3   4
  • 该类中的成员方法,名称前有_前缀的不会作为关键字
  • 导入时的参数,对应类的初始化方法
  • 如果类和模块文件同名,声明的时候可以省略后面的类名
    • 比如python文件是SubLibrary.py
    class SubLibrary:
        def returnint(self):
    
    • 声明
    *** Settings ***
    Library   SubLibrary
    

你可能感兴趣的:(RobotFramework学习08-扩展库之python测试库(变量和关键字))