RobotFramework之Run Keyword If

看过很多贴子,没有找到可以在if条件判断后,执行if分支中的关键字,然后需要获取关键字的执行返回值,再供后续接口使用的情况,所以对自己的处理方式进简单记录;

主要内容:run keyword if 条件判断后,获取分支中关键字的返回值,供后续的接口调用使用(作为后续接口的参数);

run keyword if 是RobotFramework对多分支条件判断的处理,一般情况下的使用是:

1、run keyword if +条件 log XXX;

2、Run Keyword If    1==1    Run Keywords    log    1    AND    log    2 ;

3、Run Keyword If   '${B_name}'=='${B}' and '${C}'== '0' ;

4、Run Keyword If    '${rspMessage}'=='成功'           
                ...    关键字       

     解释:如果'${rspMessage}'=='成功',那么执行关键字;

然后有这样一种场景:

我想要获取if分支中执行关键字结果的返回值,或想获取返回内容中的某个字段信息该如何完成呢?

按照通常的写法应该是(解释一下:Get Result Expect是自己封装的关键字,大家更换为自己想要执行的关键字即可):

 Run Keyword If    '${qury_except_messsage}'=='成功'
             ...    ${contractId}    Get Result Expect    ${card_response}    contractId

解释:if  '${qury_except_messsage}'=='成功',执行关键字Get Result Expect,然后获取返回内容${card_response}中的字段contractId,再赋值给变量 ${contractId},

问题:报错${contractId}未被定义,很显然这样的写法是不正确的,也就是说在上面这个语法是错误的,Run Keyword If不支持这种获取返回字段信息的方式;

经过试验调试,正确的写法:

    ${contractId}    Run Keyword If    '${qury_except_messsage}'=='成功'
                ...    Get Result Expect    ${card_response}    contractId

     Bind Card    ${contractId}

     解释: Get Result Expect关键字的返回值${contractId} ,在关键字 Bind Card中被作为参数引用。

大家看出和上面写法的不同了吗?是的,变量${contractId}的位置,这样,获取if分支中执行关键字的返回值的问题就解决了。

 

 

欢迎大家指评!!

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值