07:robotframework用户关键字和资源文件(下)

 思维导图

 

 

01:资源文件

  1. 在测试套件文件中定义关键字的问题
  • 只能在本测试套件中有效,无法共享给其他测试套件使用
  1. 使用资源文件
  2. 资源文件其实就是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的模块中搜索路径中搜索

第一种方法:

image.png

第二种方法:

image.png

03:数据驱动

  1. 什么是数据驱动

用例逻辑相同,每次输入的数据不同

  1. 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

 

猜你喜欢

转载自www.cnblogs.com/kelly11/p/12696235.html