zoukankan      html  css  js  c++  java
  • 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

     

  • 相关阅读:
    JLable设置复制粘贴
    JLable设置背景颜色
    JFrame 居中显示
    String、StringBuffer、StringBuiler区别
    java读取本地文件
    mybatis 添加后获得该新增数据自动生成的 id
    验证身份证号规则(验证身份证号是否正确)
    MyBatis like (模糊查询)
    MyBatis if test 传入一个数字进行比较报错 There is no getter for property named 'userState' in 'class java.lang.Integer'
    Redis 中 byte格式 写入、取出
  • 原文地址:https://www.cnblogs.com/kelly11/p/12696235.html
Copyright © 2011-2022 走看看