如何绕过 SoapUI 小写所有网址?
How to get around SoapUI lowercasing all urls?
我们有一个类似于 https://domain.example/rsvs_TargetService/Action
的 url 作为端点 url,当用作 SoapUI 端点时,它会小写为 https://domain.example/rsvs_targetservice/action
,这不起作用。
有办法解决这个问题吗?
注意:既然SoapUI是程序员常用的工具,我觉得应该在范围内。
TLDR;此问题现已在 SoapUI 5.3 及更高版本中修复。
这是 known bug from around version 4.6 onwards。
我发现的解决方法是在请求测试步骤之前有一个 groovy 测试步骤,包含像
这样的值
context['path'] = 'rsvs_TargetService/Action'
并在 HTTP 请求步骤中引用
https://domain.example/${path}
然后,当您 运行 整个测试用例时,变量扩展将发挥它的魔力。
SoapUI源代码在github,还有a pull request merged fixing this. The pull request was merged 16.8.2016, and was released as part of 5.3 release,是公开的,所以现在的版本应该没有这个问题了..
而不是使用上下文和 运行 一个额外的 groovy 脚本,定义自定义测试用例/套件/项目级别 属性。
例如:定义项目级别 属性,例如 URL_PATH_TS_ACTION
和值 rsvs_TargetService/Action
然后设置endpoint
使用Property Expansion。即,
https://domain.example/${#Project#URL_PATH_TS_ACTION}
这样,可以避免不需要的 groovy 脚本。
当然,您可以使用上述方法将端点完全外部化。为此(也显示在屏幕截图中)
- 双击服务界面
- 转到服务端点
- 点击 +
- 添加端点,如图所示 属性 扩展
- select 端点之一
- 点击分配 & select 所有请求和测试请求
您将能够为所有测试轻松切换端点。
我们有一个类似于 https://domain.example/rsvs_TargetService/Action
的 url 作为端点 url,当用作 SoapUI 端点时,它会小写为 https://domain.example/rsvs_targetservice/action
,这不起作用。
有办法解决这个问题吗?
注意:既然SoapUI是程序员常用的工具,我觉得应该在范围内。
TLDR;此问题现已在 SoapUI 5.3 及更高版本中修复。
这是 known bug from around version 4.6 onwards。
我发现的解决方法是在请求测试步骤之前有一个 groovy 测试步骤,包含像
这样的值context['path'] = 'rsvs_TargetService/Action'
并在 HTTP 请求步骤中引用
https://domain.example/${path}
然后,当您 运行 整个测试用例时,变量扩展将发挥它的魔力。
SoapUI源代码在github,还有a pull request merged fixing this. The pull request was merged 16.8.2016, and was released as part of 5.3 release,是公开的,所以现在的版本应该没有这个问题了..
而不是使用上下文和 运行 一个额外的 groovy 脚本,定义自定义测试用例/套件/项目级别 属性。
例如:定义项目级别 属性,例如 URL_PATH_TS_ACTION
和值 rsvs_TargetService/Action
然后设置endpoint
使用Property Expansion。即,
https://domain.example/${#Project#URL_PATH_TS_ACTION}
这样,可以避免不需要的 groovy 脚本。
当然,您可以使用上述方法将端点完全外部化。为此(也显示在屏幕截图中)
- 双击服务界面
- 转到服务端点
- 点击 +
- 添加端点,如图所示 属性 扩展
- select 端点之一
- 点击分配 & select 所有请求和测试请求
您将能够为所有测试轻松切换端点。