RF框架基础知识(二)


•    工程结构
•     Project工程
•     TestSuite测试套件
•     TestCase测试案例
•    Resource资源文件
•     Settings设置项-导入加载资源
•     ExternalResource外部资源
•    常量和变量
•    Keyword关键字
•    循环&分支
•    RF内置测试库
 
工程结构

 

Settings设置项
•    DefaultTags用于指定 测试用例的标签.
•    Library  引入的各种依赖包
   eg:Library      JdbutilLibrary
•    Resource  各种依赖文件
   注意路径结构:Resource     ../../values/test/urlconf.robot
•    Setup  在测试用例之前执行
•    TestTemplate用于指定 测试模板.测试用例本身将只包含数据,每行数据都是传递给该关键字的参数,最终实现数据驱动的测试
 
常量与变量
•    常量
      环境变量(统一用标识符”%”来使用)
      数值常量(例如数值2.6,可以写成${2.6})
      特殊字符常量(${/},${:},${False},${None},${SPACE}等)

•    变量介绍:
    Robot Framework 的变量分为 标量, 列表 和 字典, 分别使用语法格式 ${SCALAR}, @{LIST} 和 &{DICT} 来定义。
•    变量赋值 ----变量定义区域:变量区,case区域
          ${service}    Set Variable    rpmBindCardInit
•    取关键字返回值作为变量值
          ${request_time}   sendPost.Get Time Stamp
          ${RESPONSE}    DO SOMETHING    ${PARAMS}
或:
          ${RESPONSE}=    DOSOMETHING    ${PARAMS}
•    列表变量赋值
          @{NAMES}        Matti       Teppo
           @{NAMES2}       @{NAMES}    Seppo
           @{NOTHING}
           @{MANY}         one         two      three     four
...             five        six     seven
•     获取列表项
           使用下标语法 @{NAME}[index] 可以获取到列表变量中指定项的值, 其中 index 是要获取的项的下标. 下标从0开始, 负数的下标等同于从列表末尾向前数. 下标长度超过列表范围会导致错误.eg.@{USER}[0]
           也可以使用For循环遍历列表
•    字典声明
           &{USER1} name=Matti address=xxx phone=123
           &{USER2} name=Teppo address=yyy phone=456
           &{MANY}first=1 second=${2} ${3}=third
           &{EVENMORE} &{MANY} first=override empty=
... =empty key\=here=value
•    获取字典值
          可以通过 &{NAME}[key] 这样的语法格式获取字典中某项的值, 其中 key 是键的名称. 键名当作字符串处理, 非字符串的键可以用变量代替. 通过这种方式获取到的值可作为标量变量使用.
         当字典被当作列表迭代时, 实际返回的值是字典的键. 例如, @{MANY} 变量的值是 ['first', 'second', 3].
 
Keywords
基准库中的关键字:log、定义变量:Set variable、连接对象:Catenate、定义列表:Create List、设置休眠时间:sleep等。
自定义关键字:
•     GetPay Password
       ${cipher}  Password PayEncrypt   ${S_KEY}     ${USER_PASSWORD_PAY}
       [Return]      ${cipher}
•     GETNOW TIME S
       ${timestamp}   JdbutilLibrary.Get Timestamp    s
       [Return]    ${timestamp}
•     GETNOW TIME MS
      ${timestampms}   JdbutilLibrary.Get Timestamp    ms

循环和分支
•    runkeyword if分支
run keyword if     ${timeLimited}
    ...    client http post  ${USER2.session}    /mybankv21/phptradeui/extendterm/add data=${submitData}   expect=1
    ...    ELSE
•    For循环:
•     在一个普通的For循环中,循环开始的关键字是 :FOR ,其中的:用于与一般关键字做区分,对于循环结构体内的每一行,使用\ 作为改行的行首关键字
    [Arguments]   @{users}
    : FOR    ${user}    IN   @{users}
    \    User Login    ${user}
 
RF内置测试库
•    Builtin: Robot Framework 标准类库,提供常用的关键字,例如:log
•    Convert:转换-eg:类型转换、大小写转换
•    Verify:Fail,停止当前Case
•    Variables:${service}    Set Variable    rpmBindCardInit
•    RunKeyword:Run Keyword If Test Failed
•    Evaluate:随机数、随机字符串、字符串处理、日期处理等
•     ${str}    Evaluate   String.ascii_uppercase    string
•    Collections(List、Dictionary)
•     ${commitData}    Create Dictionary
•     ...    comp_jdbid=11111
•    DateTime、File、path等等
 
 PythonRequests-发送请求
•   Get方法:requests.get(url+uri+'?'+res,cookies=cookie,headers=header)
•    Post方法:r = requests.post(url+uri,cookies=cookie,data=data)
•    不需要cookie信息: req = request.Request(url+uri, data=data)

结果查看及问题定位
•    通过DEBUG打断点调试,在Message Log窗口中查看日志;
•    通过console控制台打开report.html或log.html查看详细信息;
  
debug

 

常见问题
•    引用方法后,进行导包,ctrl+1;
•    空格不符合规范会报错,建议直接使用Tab键;
•    所需关键字没有被封装,自己完成python方法实现,然后引用;

转载于:https://www.cnblogs.com/yinwenbin/p/10433028.html

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值