变量表中声明变量

变量表中声明变量

首先我们要创建Variables表

***Variable***
${MgrloginUrl}          http://localhost/mgr/login.html
${StudentLoginUrl}      http://localhost/student/login/login.html

rf变量可以在用例里面定义,也可以在变量表里面定义

rf中的变量可以在测试套件文件中声明一个变量表。写法就是这样:Variables,对套件里的所有的测试用例都是有效的

*** Settings ***

*** Variables ***
${MgrloginUrl}          http://localhost/mgr/login.html
${StudentLoginUrl}      http://localhost/student/login/login.html

*** Test Cases ***
case1
    log to console     ${MgrloginUrl}
    log to console     ${StudentLoginUrl}
case2
    log to console     ${MgrloginUrl}
    log to console     ${StudentLoginUrl}

定义好了之后,只要改变变量就行

rf支持4种类型的表
Settings表:配置表;
Test Case:用例表;
Keywords:关键字表;

Variable:变量表。

List变量

  • @{database} 127.0.0.1 3306

Dict变量

  • ${user1} name=auto pw=sdfsdfsdf

使用整个变量

*** Variables ***
${MgrloginUrl}          http://localhost/mgr/login.html
${StudentLoginUrl}      http://localhost/student/login/login.html
@{database}     127.0.0.1       3306
&{adminuser}        name=auto       pw=sdfsdfsdf

*** Test Cases ***
case1
    log to console     ${database}     #这样使用整个列表$
    log to console     ${adminuser}     #这样写使用整个字典

#结果:['127.0.0.1', '3306'] name=auto pw=sdfsdfsdf

如果只想使用变量里面的单个的元素

*** Variables ***
${MgrloginUrl}          http://localhost/mgr/login.html
${StudentLoginUrl}      http://localhost/student/login/login.html
@{database}     127.0.0.1       3306
&{adminuser}        name=auto       pw=sdfsdfsdf

*** Test Cases ***
case1
    log to console     @{database}[1]           #这样使用单个的端口号
    log to console     &{adminuser}[name]       #这样写使用单个名字

#结果:3306 auto

用户关键字为什么放到资源文件里面?就是复用性高,如果变量也是想在整个套件中使用。也可以放到资源文件里面
同样也是要在*** Settings ***里面Resource xx.robot 和关键字一样在同一个文件里,关键字申明过了,就行了
(定义字典关键字的图)在这里插入图片描述

实际项目中可以弄一个用户关键字的keyword.robot的配置文件;在弄全局配置项config.robot配置文件。便于读写,便于维护
在用例的* Settings *表里面申明两个文件

也可以把变量文件写在python文件里面,用关键字Variables 同一个路径下面直接Variables xxx.py (也可以用绝对路径,但是不建议使用)。Variables搜索文件的时候。会在用例的同级目录下面找,如果找不到就在python的模块的搜索路(标准库,python.path)里面找。目录间的分割符是斜杠,不是点。
(有图)
在这里插入图片描述
单独加上来的
相对路径最好不要相对当前的文件的路径,最好相对当前项目的根目录。这时候所有的关键字文件,变量文件,都能找到。只要把rf项目的根目录作为py的模块搜索路径,就能解决这样的问题。不会因为层级的变化。而导致申明文件失败。所有的导入路径都是基于项目的根目录。

使用相对路径的时候,RF搜索规则和资源文件搜索规则一样:
先在相对当前文件的目录,匹配搜索
在python的模块搜索路径中搜索,可以用–pythonpath参数 (意思就是在pythonpath里面添加当前目录的路径)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Python扩展关键字

Python模块作为测试库
模块文件名作为测试库的名字
比如Python模块叫MyLibrary,对应的Python文件是Library.py。那么测试库名字就是MyLibrary
定义在Python模块文件中的函数,名称前有_前缀的不会作为关键字

def returnlist():
	return[1,2]
	
	
def _returnlist():          #不会作为关键字的,有下划线就不可以
	return[1,2]

申明Library的时候,最好是用点形容路径。
而Resourse,Variables都是用/表示

猜你喜欢

转载自blog.csdn.net/qq_37615098/article/details/84452194