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
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、为什么要学会汇报工作? 第一,汇报工作是自我提升的基础。 第二,可以提高自己的“存在感”,让领导看到你的努力和...
    现实的梦想者阅读 418评论 0 0
  • 这是暗物质,小能熊365天写作计划第六十五天的写作内容,谢绝转载。 传送带缓缓把罗逸带进一个隔舱,身后传来隔离门关...
    黑暗物质阅读 227评论 0 0
  • 感恩今天是个不一样的一天,早起老公送大宝去学校,上网发现欠费,因为我们是半年一交,欠费就是捆绑的手机用的太多,想着...
    米朵天天阅读 176评论 0 0
  • HBO又一部高分美剧来了——《利器》 本剧改编自《消失的爱人》吉莉安‧弗林的同名小说,同时也是由作者本人亲自担任编...
    IMTVS_cc阅读 378评论 0 0

友情链接更多精彩内容