如何在 SoapUI 中通过 XPath 从 XML 响应中保存全局 属性?
How can I save global property from XML response via XPath in SoapUI?
我加入了 SoapUI 作为 SOAP 客户端的团队,并且有一个生成访问令牌的身份验证步骤。每个后续请求都应使用此令牌填充。
这意味着我手动将旧的访问令牌替换为新的。
起初,我通过 File => Preference
创建全局 属性,这允许我每天执行 一次编辑 但我喜欢摆脱任何手册根本没有步骤。
我不完全了解 SoapUI,我们不使用测试套件/案例。
我如何创建一个点击执行请求的东西,通过 XPath 从响应中提取值并将其保存在全局属性中?
我遇到的问题是不知道如何使用 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)
但随后的 运行s 不会更改全局变量的值,除非我从 File => Preference
对话框中将其删除。
所以我添加第二步 属性 Transfer 在 GUI 中我为第一个请求选择名称,属性 Response,路径语言 XPath 并输入表达式:
//*:BinarySecurityToken/text()
作为目标我选择全局,因为属性我的变量名:
现在,当我 运行 TestSuit ${#Global#sectoken}
填充了新值并可在任何 SoapUI 项目中访问时!!
我加入了 SoapUI 作为 SOAP 客户端的团队,并且有一个生成访问令牌的身份验证步骤。每个后续请求都应使用此令牌填充。
这意味着我手动将旧的访问令牌替换为新的。
起初,我通过 File => Preference
创建全局 属性,这允许我每天执行 一次编辑 但我喜欢摆脱任何手册根本没有步骤。
我不完全了解 SoapUI,我们不使用测试套件/案例。
我如何创建一个点击执行请求的东西,通过 XPath 从响应中提取值并将其保存在全局属性中?
我遇到的问题是不知道如何使用 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)
但随后的 运行s 不会更改全局变量的值,除非我从 File => Preference
对话框中将其删除。
所以我添加第二步 属性 Transfer 在 GUI 中我为第一个请求选择名称,属性 Response,路径语言 XPath 并输入表达式:
//*:BinarySecurityToken/text()
作为目标我选择全局,因为属性我的变量名:
现在,当我 运行 TestSuit ${#Global#sectoken}
填充了新值并可在任何 SoapUI 项目中访问时!!