思维导图
01:资源文件
- 在测试套件文件中定义关键字的问题
- 只能在本测试套件中有效,无法共享给其他测试套件使用
- 使用资源文件
- 资源文件其实就是RF层面的库文件(不能包含测试用例)
- 里面可以包含用来共享的,变量和关键字
- 资源文件的格式基本也和测试套件文件类似
***Settings***
Liability SeleniumLibrary
Resource rc.robot
rc.robot
资源文件和套件文件的唯一区别是 #资源文件没有测试用例表, 不可以存在测试用例 *** Keywords *** loginwebsite #自定义库python+selenium不要和seleniumLibrary混用 open browser http://localhost/mgr/login/login.html chrome set selenium implicit wait 10 #输入用户名和密码 input text id:username auto input text id=password sdfsdfsdf click element tag=button # click button #被操作的元素只能是button元素 addCourse #开始添加课程 [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()"] checkCourse [Arguments] ${except} ${course_name} get text css=tbody td:nth-child(2) should be equal ${except} ${course_name}
t1.robot
*** Settings *** Library SeleniumLibrary Library st Resource rc.robot *** Test Cases *** 添加课程 [Setup] deleteAlllesson [Teardown] deleteAlllesson loginwebsite addCourse 初中11 描述 12 checkCourse 初中11 close browser 添加课程2 [Setup] deleteAlllesson [Teardown] deleteAlllesson loginwebsite addCourse 初中22 描述 34 checkCourse 初中22 close browser
执行命令:robot -P . t1.robot
02:搜索规则
当前用例文件所在的目录
如果找不到,就在python的模块中搜索路径中搜索
第一种方法:
第二种方法:
03:数据驱动
- 什么是数据驱动
用例逻辑相同,每次输入的数据不同
- RF如何实现数据驱动
- 使用【template】用户关键字
- 自发实现
*** Settings *** Library SeleniumLibrary Library st Resource rc.robot *** Test Cases *** 添加课程 [Setup] deleteAlllesson [Teardown] deleteAlllesson [Template] addCourseandcheck #接下来直接写用例所用到参数 初中数学 初中数学 2 初中语文 初中语文 2 初中化学 初中化学 2 初中高数 初中高数 2 #添加课程2 # # [Setup] deleteAlllesson # [Teardown] deleteAlllesson # loginwebsite # addCourse 初中22 描述 34 # checkCourse 初中22 # # close browser *** Keywords *** addCourseandcheck [Arguments] ${name} ${desc} ${idx} loginwebsite addCourse ${name} ${desc} ${idx} checkCourse ${name} close browser
rc.robot
checkCourse [Arguments] ${except} # ${course_name} get text css=tbody td:nth-child(2) # should be equal ${except} ${course_name} #判断添加的课程包含在课程列表中 ${eles} get webelements css=tbody td:nth-child(2) ${courses} evaluate [ele.test for in $ele] should be true $expect in $courses
自定义数据驱动:
#添加课程2 [Setup] deleteAlllesson [Teardown] deleteAlllesson #自定义数据驱动--适用于大规模数据 ${datas} getdataExcel path FOR ${data} IN @{datas} addCourseandcheck ${data.name} ${data.desc} ${data.idx} END