如何在Robot Framework中实现测试用例间的结果传递?
在Robot Framework中实现测试用例间的变量传递
针对你的场景(把TC01的${name}和${no}传给TC02),有几种非常实用的实现方式,我结合你的代码示例详细说明:
方法一:使用Set Suite Variable(同套件内传递首选)
这个关键字能把测试用例内的局部变量提升为套件级变量,整个测试套件里的所有用例都能访问到它。
修改TC01代码:
在获取到${name}和${no}后,添加变量提升的步骤:
TC01-Search and Navigate to Required Vessel Given Home Page is Loaded When Search Ship and Choose Required Vessel ${name} ${no} # 将局部变量转为套件级变量,供后续用例调用 Set Suite Variable ${SUITE_VESSEL_NAME} ${name} Set Suite Variable ${SUITE_VESSEL_NO} ${no} Navigate to the Vessel View
TC02直接使用套件变量:
TC02-Verify Vessel Details in Case Given Cases is Available in Apps And I Navigate to Cases Then Verify Vessel Details are present or not ${SUITE_VESSEL_NAME} ${SUITE_VESSEL_NO}
注意:要确保TC01在TC02之前执行(默认按文件里的顺序执行),这样套件变量才能被正确初始化。
方法二:使用Set Global Variable(跨套件/全局场景)
如果你的测试用例需要跨多个套件共享变量,可以用这个关键字把变量提升为全局变量,整个Robot Framework运行期间都能访问。
TC01中添加:
Set Global Variable ${GLOBAL_VESSEL_NAME} ${name} Set Global Variable ${GLOBAL_VESSEL_NO} ${no}
TC02直接调用全局变量即可:
Then Verify Vessel Details are present or not ${GLOBAL_VESSEL_NAME} ${GLOBAL_VESSEL_NO}
小提示:全局变量会持续到测试结束,所以如果只是同套件内传递,优先用套件级变量,避免变量污染。
方法三:用Suite Setup前置执行TC01逻辑
如果TC02必须依赖TC01的执行结果,可以把TC01的核心逻辑放到套件的前置Setup中,这样整个套件执行前会先完成TC01的步骤,自动把变量存入套件级。
在套件的Settings部分添加:
*** Settings *** Suite Setup Run Test Case TC01-Search and Navigate to Required Vessel
这样TC02就能直接使用方法一中定义的套件变量,无需关心执行顺序。
内容的提问来源于stack exchange,提问作者Ansu
相关产品推荐
相关产品推荐

