如何绕过 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 所有请求和测试请求

您将能够为所有测试轻松切换端点。