RobotFramework中的使用小技巧

背景:记录一些在RF的使用中的小技巧,帮助提升代码的稳定性、精简代码。会持续更新~~

目录

技巧1:变量

技巧2:RF关键字中的可变参数

技巧3:字符分割

技巧4:对于异步接口或者重试的处理

技巧5:有错误仍然执行

技巧6:运算


技巧1:变量

RF中存在3种变量,可以通过变量标记的符号做简单区分:

  • $:变量。可赋值为字符串类型、整型、布尔类型等
  • @:列表。通过使用 Create List 关键字,可赋值列表
  • &:字典。通过使用 Create Dictionary 关键字,可赋值字典

使用举例:

  • $
${name}    Set Variable    zhangsan
${age}    Set Variable    ${20}
${note}     Set Variable If    '${name}'!='${None}'    China       
  • @:注意循环变量i所在位置的不同
@{args}    Create List    a    b    c
${len}    Get Length    ${args}
:For ${i}    IN RANGE    ${len}
\    Log    @{args}[${i}]       

${args}    Create List    a    b    c
${len}    Get Length    ${args}
:For ${i}    IN RANGE    ${len}
\    Log    ${args[${i}]} 
  • &
&{kargs}    Create Dictionary    a=1    b=2    c=3
Log    ${kargs['a']} 

技巧2:RF关键字中的可变参数

关键字
Test for KW
    [Arguments]    ${name}    &{kargs}
    ${flag}    ${msg}    Run Keyword And Ignore Error    Dictionary Should Contain Key    ${kargs}    add
    Run Keyword If    '${flag}'!='FAIL'    Log    ${kargs['add']} 
    ...    ELSE    Log    ${flag}

调用:
    ${name}    Set Variable    zhangsan
    &{kargs}    Create Dictionary    add=China
    Test for KW    ${name}    &{kargs}           

技巧3:字符分割

${str_all}    Set Variable    ab,cd,12,34
@{str_list}    Split String    ${str_all}    ,
${len}    Get Length    ${str_list}
:FOR    ${i}    IN RANGE    ${len}
\    Log       ${str_list[${i}]}     

技巧4:对于异步接口或者重试的处理

关键字
User Is Created
    [Arguments]    ${name}
    # 创建用户的过程

调用
${name}    Set Variable    zhangsan
Wait Until Keyword Succeeds    30    5    User Is Created    ${name}

其中,30 表示超时时间,5 表示重试间隔。即每5秒执行一次关键字User Is Created,直到30秒超时(共执行6次)

技巧5:有错误仍然执行

${expect}:期望值

${act}:实际值

Run Keyword And Continue On Failure    Should Be Equal As Strings    ${expect}    ${actual}

即使当实际值!=期望值时,后面的验证点也可以继续执行。不会因为该判定条件Fail就停止后面的执行步骤

${status}    ${result}    Run Keyword And Ignore Error    keyword1    param1    param2
Run Keyword If    '${status}'!='PASS'    keyword2    paramA    paramB    

上述代码表示:如果keyword1执行失败,则status=Fail;当status!=PASS,则执行keyword2

技巧6:运算

这位作者总结得很好,这里引用一下:https://blog.csdn.net/mengfanbo123/article/details/10453693

你可能感兴趣的:(自动化测试,测试工具)