变量表中声明变量
在测试套件文件中声明变量表 Variables,在变量表中声明该测试套件中用到的变量。在 测试套件文件变量表 中声明的变量,对整个套件里面所有的测试用例都有效。例子 tmp.robot
。
*** Settings ***
*** Variables ***
${MgrLoginUrl} http://localhost/mgr/login/login.html
${StudentLoginUrl} http://localhost/student/login/login.html
*** Test Cases ***
case1
log to console ${MgrLoginUrl}
log to console ${StudentLoginUrl}
我们这边创建了一个变量表tmp.robot
,这里面有一个变量 ${MgrLoginUrl}
还有一个 ${StudentLoginUrl}
,我们 case1 就可以直接去取这个变量就可以了,我们执行下看下效果。
可以看到直接打印了变量。她对整个测试套件的文件都适用,假如我还有测试用例2和3,都可以用我们这个变量。
image.png比如说我想改了 ${StudentLoginUrl} 的 url 变了。student/login
改为student/login1,加了个1,我不需要去改测试用例中每一个函数了,只需要把值给改了。
我们后面去用的时候,大家看一下。
image.png都变成student/login1了。
创建List变量
定义的时候一定要加上@
符号。
*** Variables ***
@{database} 127.0.0.1 3306
*** Test Cases ***
case1
log to console ${database}
执行结果。
image.png
它会把它当做一个整体。list 里面第一个地址,第二个端口号。这是它的语法形式。
创建Dict变量
前缀是&
符号。取全部的值。
*** Variables ***
&{adminuser} name=auto pw=sdfsdfsdf
*** Test Cases ***
case1
log to console ${adminuser}#取全部的值
执行结果。
image.png作为一个整体取的话,直接一个$
刀了福取出来的就是一个 key value、key value 的形式。List 和 Dict 取出来的都是一个整体,那如果我想取其中的一个,比如说我 List 的第一个。还有 Dict 里面某个 key 对应的 value 应该怎么写?
使用列表第一个元素 @{database}[0]
*** Variables ***
@{database} 127.0.0.1 3306
&{adminuser} name=auto pw=sdfsdfsdf
*** Test Cases ***
case1
log to console @{database}[0] #使用列表第一个元素
log to console &{adminuser}[name] #只是使用一个元素
取出Dict里面某个值 &{adminuser}[name]
*** Variables ***
@{database} 127.0.0.1 3306
&{adminuser} name=auto pw=sdfsdfsdf
*** Test Cases ***
case1
log to console @{database}[0] #使用列表第一个元素
log to console &{adminuser}[name] #只是使用一个元素
运行截图
image.png
列表是取出第一个元素 127.0.0.1,字典key 所对应的 value 是 auto
在变量表中声明变量,在资源文件里面创建的变量和套件文件里面的用户关键字其实是一样的,只是套件文件中变量表里的变量,它的作用范围该套件的文件,里面所有的用例都可以使用变量,但是没有办法给其它的测试套件文件使用。
上一章节我们为了使用户关键字能够给其他测试套件文件,我们使用了资源文件,我们在需要用的地方直接引入资源文件就可以了。所以我们也可以在我们的资源文件中定义我们的变量 ,这样的话它就和测试套件文件一样的了。也可以谁用的时候去导入一下就可以了。所以我们可以把tmp.robot
的 Variables 变量表里的变量放到资源文件里面。我们这里资源文件是rc.robot
。
我们既然定义变量了就能使用到它。资源文件里面的 Go to 可改为 ${MgrLoginUrl}
。
还有测试用例里面的 loginwebsite。这里的用户名和密码是一个字典格式,那我们取它的用户名和密码该怎么取?这个参数 [Arguments] ${username} ${password}
就不需要了。因为我不需要传参了,直接从变量表里面取就可以。可以写成这样loginwebsite &{adminuser}[name] &{adminuser}[pw]
这样的话以后用户名和密码的修改,只需要在资源文件里面把用户名和密码设置一下就可以了。这样我们就通过一个资源文件生成一个配置文件,供全局的测试用例来使用。
网友评论