如何将SoapUI请求设置保存在单一位置?

人气:628 发布:2022-10-16 标签: web-services testing soapui

问题描述

我已经创建了一个项目,其中包含一系列HTTP Request类型的测试步骤。每个http请求使用Basic Authorization。当我在Auth请求选项卡中指定用户名/密码值时,如下图所示,一切正常。 如何保留这些settings in a single place per a project,以便在需要更改凭据时不必针对每个请求进行更改?

我尝试了property expansion功能,但在Auth选项卡中不起作用。更新3:它起作用了!

实际上我有一个解决方案:项目文件是可读的XML,因此很容易替换用户名/密码值(或服务URL...一切)在外部文本编辑器中。希望有更好的办法。

更新#1:HTTP请求的可访问授权类型:

更新#2:使用的是免费SoapUI 5.2.1。

推荐答案

您是对的。如果使用属性,SoapUI项目的维护将非常容易。在您的情况下,可以根据需要使用project level custom properties

您可以执行以下操作来实现相同的目标:

选择项目。 在左侧,您可以看到下方的属性。 选择自定义属性选项卡。 分别为用户名和密码定义两个属性以及值。比方说,用户名和密码。 现在,在每个步骤中,分别用${#Project#USERNAME}, ${#Project#PASSOCDE}替换为用户名和密码。这将是一次努力。

您可以在下面屏幕截图中看到,在使用property expansion进行授权后发送请求时,右侧的响应。

请注意,您可能会注意到,由于SoapUI版本为4.5.1,因此与您的授权相比,屏幕截图有所不同。然而,这不应该引起任何担忧。

更改完成后,保存项目。从现在开始,只需修改用户凭据。当然,您也可以像您提到的那样,从XML文件中更改这些值。

除此之外,如果您从命令提示符使用SOAPUI_HOME/bin/testrunner.bat or .sh实用程序在-P选项的帮助下从命令提示符运行SoapUI项目,则甚至可以覆盖项目属性值,而无需在soapui-project XML文件中进行修改,如下所述。

cmd > cd %SOAPUI_HOME%in
cmd > testrunner.bat -PUSERNAME=user1 -PPASSCODE=user1passcode -R"Project Report" c:projectsmy-soapui-project.xml

有关运行Soaui项目的完整命令行选项,请访问here。

更新:由于SoapUI 4.5.1屏幕截图,看起来出现了混淆。但上述功能在SoapUI-5.x版本中也适用。

确保您已设置 File -> Preferences -> HTTP Settings -> Authenticate Preemptively(复选框)被选中(将身份验证信息添加到传出请求)并保存首选项。

下面是specific for SoapUI-5.x设置。 在Authorization -> Basic[如您在屏幕截图中提到的]中,为凭据设置如上所述的属性扩展。此外,已选中抢占式身份验证:Use global preference单选。

338