我构造了一个混合了属性名的字符串。我期待当我使用字符串时,属性将用实际值填充。但是,当我执行log.info时,这种情况不会发生,而只有当我将字符串/字符串参数放入测试请求步骤时才会起作用。
//This string is stored in a test suite property.
//All the properties mentioned in the string, exist and have values.
<key xmlns="URL"><ownerDN>${#TestSuite#btc_OwnerDN}</ownerDN><context><contextItem name="${#TestSuite#btc_ContextItemName_1}">${#TestSuite#btc_ContextItemValue_1}</contextItem><contextItem name="${#TestSuite#btc_ContextItemName_2}">${#TestSuite#btc_ContextItemValue_2}</contextItem><contextItem name="${#TestSuite#btc_ContextItemName_3}">${#TestSuite#btc_ContextItemValue_3}</contextItem></context><type>${#TestSuite#btc_Type}</type><value>${#TestSuite#btc_Value}</value></key>
我想在groovy步骤中使用string / string属性 有谁知道我想要实现的目标是什么?如果是,如何实现这一目标?
答案 0 :(得分:0)
似乎context.expand是我的问题的答案。仅打印属性的内容或提取属性的值将无济于事,因为必须扩展字符串中的属性,这在测试请求步骤中似乎是自动的。
prop = "PropertyName"
log.info testRunner.getTestCase().getTestSuite().getPropertyValue( prop )
//returns
<key xmlns="URL"><ownerDN>${#TestSuite#btc_OwnerDN}</ownerDN><context><contextItem name="${#TestSuite#btc_ContextItemName_1}">${#TestSuite#btc_ContextItemValue_1}</contextItem><contextItem name="${#TestSuite#btc_ContextItemName_2}">${#TestSuite#btc_ContextItemValue_2}</contextItem><contextItem name="${#TestSuite#btc_ContextItemName_3}">${#TestSuite#btc_ContextItemValue_3}</contextItem></context><type>${#TestSuite#btc_Type}</type><value>${#TestSuite#btc_Value}</value></key>
但是如果我们使用
log.info context.expand('${#TestSuite#btc_PartyKey}')
或
prop = "PropertyName"
pValue testRunner.getTestCase().getTestSuite().getPropertyValue( prop )
context.expand(pValue)
返回带有值而不是属性名称的字符串
很抱歉,在发布问题之前我应该考虑一下context.expand,但是请将其留在这里以防万一其他人正在考虑同样的问题。