我加入了SoapUI作为SOAP客户端的团队,并且存在生成访问令牌的身份验证步骤。应使用此令牌填充每个后续请求。
这意味着我用新手动替换旧的访问令牌。
首先我通过File => Preference
创建全局属性,这使我每天只能执行一次编辑,但我想完全摆脱任何手动步骤。
我不完全了解SoapUI,我们不使用测试套件/案例。
如何创建一键式执行请求,通过XPath从响应中提取值并将其保存在全局属性中?
答案 0 :(得分:1)
我遇到的问题是缺乏如何使用SoapUI的知识。
首先,我在项目下创建了 TestSuit 。作为 TestSuit 的第一步,我做了SOAP请求。
可以为 TestSuit 输入 TearDown脚本:
def token = context.expand('${SessionCreateRQ#Response#//*:BinarySecurityToken/text()}')
com.eviware.soapui.model.propertyexpansion.PropertyExpansionUtils.globalProperties.setPropertyValue('sectoken', token)
或者像这样:
def token = context.expand('${SessionCreateRQ#Response#//*:BinarySecurityToken/text()}')
com.eviware.soapui.SoapUI.globalProperties.setPropertyValue('sectoken', token)
但是后续运行不会更改全局变量的值,除非我从File => Preference
对话框中删除它。
所以我添加第二步 Property Transfer 在GUI中我为第一个请求选择名称,属性响应,路径语言 XPath 并输入表达式:
//*:BinarySecurityToken/text()
作为目标,我选择 Global ,作为属性我的变量名:
现在,当我运行 TestSuit ${#Global#sectoken}
填充新值并可在任何SoapUI项目中访问时!!