Robot Framework跨关键字传参方法及传值失败排查
问题根因
你的脚本存在3个直接导致变量传递失败的错误:
- 为
creating the merchant关键字错误声明了入参${randomMerchantName}:该变量是关键字内部生成的,不需要外部传入,且你调用关键字时未传对应参数,本身就会触发参数缺失报错;同时同名局部变量会覆盖后续Set Suite Variable的作用域,导致全局变量设置失效。 - 虽然为
creating the merchant配置了返回值,但测试用例调用该关键字时未接收返回值,后续delete merchant也没有定义入参接收变量,无法拿到生成的商户名。 - 删除关键字逻辑里的断言部分漏写了变量前缀
$,{merchant_delete_PopUpmessage}会被识别为普通字符串而非变量,也会触发执行报错。
修复方案
给两种可直接运行的实现方式,按需选择即可:
方案1:基于套件作用域变量传递(匹配你原本的实现思路)
删除creating the merchant中多余的入参声明,修正变量拼写错误即可,修正后完整代码:
***** Test Cases ***** create merchant Given creating the merchant Then delete merchant ***** Keywords ***** creating the merchant ${random_number} Generate Random Number Set Suite Variable ${random_number} Fill Text ${new_MerchantId} ${random_number} ${randomMerchantName} Generate Random Name ${8} Set Suite Variable ${randomMerchantName} Fill Text ${new_MerchantName} ${randomMerchantName} Fill Text ${orgNumber} 23421 Click ${new_merchantAddButton} Click ${PopUp_Okbutton} delete merchant Click ${Agreement_titlecontainer} Click ${back_button} Sleep 10s Fill Text ${MerchantName} ${randomMerchantName} Click ${merchant_SearchIcon} Click ${Merchant_deleteIcon} Get Text ${merchant_delete_confirmationPopUp} *= ${merchant_delete_PopUpmessage} Click ${PopUp_Okbutton} Click ${PopUp_Okbutton}
方案2:基于返回值+入参传递(更推荐,作用域清晰无全局污染)
不使用全局套件变量,创建商户关键字返回生成的随机名称,删除商户关键字显式声明入参接收变量,用例层完成值传递,可维护性更强,修正后代码:
***** Test Cases ***** create merchant Given creating the merchant ${merchant_name} creating the merchant Then delete merchant ${merchant_name} ***** Keywords ***** creating the merchant ${random_number} Generate Random Number Fill Text ${new_MerchantId} ${random_number} ${randomMerchantName} Generate Random Name ${8} Fill Text ${new_MerchantName} ${randomMerchantName} Fill Text ${orgNumber} 23421 Click ${new_merchantAddButton} Click ${PopUp_Okbutton} [Return] ${randomMerchantName} delete merchant [Arguments] ${randomMerchantName} Click ${Agreement_titlecontainer} Click ${back_button} Sleep 10s Fill Text ${MerchantName} ${randomMerchantName} Click ${merchant_SearchIcon} Click ${Merchant_deleteIcon} Get Text ${merchant_delete_confirmationPopUp} *= ${merchant_delete_PopUpmessage} Click ${PopUp_Okbutton} Click ${PopUp_Okbutton}
内容的提问来源于stack exchange,提问作者geetha kalaiselvan
相关产品推荐
相关产品推荐

