资源文件
- 在测试套件文件中定义关键字的问题
- 只能在本测试套件中使用,无法共享给其它测试套件。只能在本测试套件中是有效的。
我们怎么共享这个东西呢?使用 资源文件
资源文件其实就是 RF 层面的库文件。 里面可以包含用来共享的 用户关键字。也可以包含前面说的 Variable 表定义的变量,资源文件的格式基本也和测试套件文件类似 ,除了不能有测试用例表 和 一些特别的设置项。其它的都是跟普通的测试套件文件一样的。如果它有 Test Case 那它就是一个正常的测试套件文件,而不是资源文件了。
*** Settings ***
Library SeleniumLibrary
Resource rc.robot
所以我们就可以直接把我们前面定义好的 Keywords 里面的关键字直接放到我们的资源文件里面,大家就可以共享了,我们这边创建一个资源文件 rc.robot
image.png这个里面我们就可以把前面除了测试用例之外全部拷贝下来。
*** Settings ***
Library SeleniumLibrary
Library Collections
*** Keywords ***
loginwebsite
[Arguments] ${username} ${password}
OPEN BROWSER http://localhost/mgr/login/login.html chrome
set selenium implicit wait 10
INPUT TEXT id=username ${username}
INPUT TEXT id=password ${password}
click element tag=button
add course
[Arguments] ${name} ${desc} ${idx}
click element css=*[ng-click="showAddOne=true"]
INPUT TEXT css=*[ng-model="addData.name"] ${name}
input text css=*[ng-model="addData.desc"] ${desc}
input text css=*[ng-model="addData.display_idx"] ${idx}
click element css=*[ng-click="addOne()"]
sleep 1
get course list
${lessons}= create list
${eles}= get webelements css=tr>td:nth-child(2)
:For ${ele} in @{eles}
\ log to console ${ele.text}
\ append to list ${lessons} ${ele.text}
[Return] ${lessons}
Library st 用不到可以去掉。资源文件里面的 Keywords 我们可以把它捞出来,然后我们t1.robot
里面的 Keywords 就可以删掉了,那如果我想用这几个资源文件里面的东西,应该怎么引用?Robot 里面该怎么用?我们可以通过 Resource 不叫 Library 了。
*** Settings ***
Library SeleniumLibrary
Library st
Library Collections
Resource rc.robot
*** Test Cases ***
测试1
[Setup] deleteAllCourse
loginwebsite auto sdfsdfsdf
add course 初中化学 初中化学描述 5
${lessons}= get course list
should be true $lessons==["初中化学"]
close browser
[Teardown] deleteAllCourse
测试2
[Setup] deleteAllCourse
loginwebsite auto sdfsdfsdf
add course 化 化描述 6
${lessons}= get course list
should be true $lessons==["化"]
close browser
[Teardown] deleteAllCourse
资源文件声明的时候可以用相对路径也可以用绝对路径。建议大家用相对路径,它又一个特点要带上扩展名 .robot。
Robot 里面它搜索资源文件的路径有一个规则。
-
搜索规则
- 首先相对搜索当前文件的目录匹配搜索,
- 如果找不到,就在Python的模块搜索路径中搜索
网友评论