这是一个例子 add.robot文件
*** Settings ***
Library SudsLibrary
Library XML
Library String
*** Test Cases ***
Test Webservice
create Soap Client http://www.dneonline.com/calculator.asmx?wsdl
${add} Create Wsdl Object Add
${add.intA} Set Variable 3
${add.intB} Set Variable 4
# # call soap web service
call soap method Add ${Add}
${soap_response} Get Last Received
log to console ${soap_response}
${XML_object}= Parse XML ${soap_response}
log ${XML_object}
${result} get element text ${XML_object} .//AddResult
set global variable ${result}
substract.robot文件
尝试将结果变量用于此文件但显示错误。 两个文件都存在于同一个文件夹中
*** Settings ***
Library SudsLibrary
Library XML
Library String
*** Test Cases ***
Test Webservice
create Soap Client http://www.dneonline.com/calculator.asmx?wsdl
${subs} Create Wsdl Object Subtract
${subs.intA} Set Variable ${result} #shows error
${subs.intB} Set Variable 4
# # call soap web service
call soap method Subtract ${subs}
${soap_response} Get Last Received
log to console ${soap_response}
${XML_object}= Parse XML ${soap_response}
log ${XML_object}
${result11}= get element text ${XML_object} .//SubtractResult
答案 0 :(得分:3)
这是使每个文件独立的最佳做法,因此我鼓励您重写测试,以使它们不相互依赖。
话虽这么说,如果你想在一个文件中设置一个变量并且能够在另一个文件中使用它,你需要使用内置的关键字Set global variable。
来自文档:
使用此关键字设置的变量在设置后执行的所有测试用例和套件中全局可用。因此,使用此关键字设置变量与使用选项--variable或--variablefile从命令行创建具有相同的效果。由于此关键字可以在任何地方更改变量,因此应谨慎使用。
您的问题提及var1
,但您的代码没有var1
。如果您打算写${node}
(出现在问题的原始版本中),您可以这样写:
set global variable ${node}
如果您不是询问机器人变量,而是如何让您的库在套件之间保持变量,则需要将库中的ROBOT_LIBRARY_SCOPE
变量设置为{{1} }。例如:
"GLOBAL"
有关详细信息,请参阅Test library scope
答案 1 :(得分:2)
你可以试试这个。 值形式测试1.robot用于测试2.robot
测试1.robot
*** keywords ***
Test1 Webservice
set global variable ${node}
测试2.robot
*** Settings ***
Resource Test 1.robot
*** Test Cases ***
Test2 Webservice
Test 1.Test1Webservice
${node1} set Variable ${node}