Rest SoapUI 5.4.0服务器URL、凭据和基于环境的标题
我有免费的SOAPUI5.4.0版本。 我们有多种环境,如Dev、ST、SIT和UAT。 我知道我不能在SOAPUI自由版本中创建特定于环境的文件。在postman中,NTLM身份验证是可能的,但有局限性。 我的问题是,是否可以基于某些端点或变量或任何其他选项填充标题、NTLM凭据和服务器URL,以便在需要时快速切换环境。 就像我们在《邮递员》中通过更改下拉列表所做的那样,所有必需的值都会被填充 到目前为止,我已经做了以下工作 我已经根据环境创建了所需的头文件,并将其导出到文件中,并在切换时导入相应的头文件 在端点下添加了服务器URL。 有使用用户名和密码的选项。我不知道如何根据端点选择在NTLM身份验证中填充这些值,我必须在更改环境时手动添加/修改 这是添加特定于环境的标头、服务器URL和NTLM凭据的正确方法。 或者有没有一个合适的方法来做到这一点Rest SoapUI 5.4.0服务器URL、凭据和基于环境的标题,rest,soapui,header-files,soap-client,ntlm-authentication,Rest,Soapui,Header Files,Soap Client,Ntlm Authentication,我有免费的SOAPUI5.4.0版本。 我们有多种环境,如Dev、ST、SIT和UAT。 我知道我不能在SOAPUI自由版本中创建特定于环境的文件。在postman中,NTLM身份验证是可能的,但有局限性。 我的问题是,是否可以基于某些端点或变量或任何其他选项填充标题、NTLM凭据和服务器URL,以便在需要时快速切换环境。 就像我们在《邮递员》中通过更改下拉列表所做的那样,所有必需的值都会被填充 到目前为止,我已经做了以下工作 我已经根据环境创建了所需的头文件,并将其导出到文件中,并在切换时导入
提前感谢。soapUI Pro中的环境切换功能非常好,但我主要使用OSS版本,因此我不得不按照同样的思路创建自己的实用程序 首先,您需要一个属性文件集合,每个属性文件对应于本地环境、开发环境、测试环境、uat环境等。。。。每个文件中各个属性的名称将相同,并且只有值会随着环境的变化而变化。例如,在soapui.local.properties中: 在soapui.dev.properties中: 以以下格式保存具有名称的属性文件:soapui..properties。例如: soapui.local.properties soapui.dev.properties soapui.uat.properties 然后,我使用下面的Groovy脚本弹出一个对话框来选择属性文件,并在soapUI中将这些值设置为项目级属性:
import com.eviware.soapui.support.UISupport;
import com.eviware.soapui.support.types.StringToStringMap;
import com.eviware.x.form.XForm;
import com.eviware.x.form.XFormDialog;
import com.eviware.x.form.XFormDialogBuilder;
import com.eviware.x.form.XFormFactory;
log.info project.getName()
envDialog = new EnvironmentDialog(log)
if (envDialog.configure()) {
target = envDialog.getEnv()
path = context.expand(project.getResourceRoot())
file = path + "\\environment." + target + ".properties"
log.info "Loading property file $file"
project.addPropertiesFromFile(file)
}
return
public class EnvironmentDialog {
private static final String ENVIRONMENTS = "Environments";
private XFormDialog dialog;
private String env;
def log
public EnvironmentDialog(org.apache.log4j.Logger logger)
{
log = logger
}
public boolean configure() {
if (dialog == null) {
buildDialog();
}
StringToStringMap values = new StringToStringMap();
dialog.setOptions(ENVIRONMENTS, new String("local,dev,test,uat").split(","));
values = dialog.show(values);
if (dialog.getReturnValue() == XFormDialog.OK_OPTION) {
try {
env = values.get(ENVIRONMENTS)
log.info "set env = " + env
return true
}
catch (Exception e) {
UISupport.showErrorMessage(e.getMessage());
return false
}
}
return false
}
public String getEnv() {
return env
}
private void buildDialog() {
XFormDialogBuilder builder = XFormFactory
.createDialogBuilder("Pick Environment");
XForm form = builder.createForm("Basic");
form.addComboBox(ENVIRONMENTS, new String[0], "Environment options");
dialog = builder.buildDialog(
builder.buildOkCancelActions(),
"SOAPUI Test Properties target selected environment",
UISupport.OPTIONS_ICON);
}
}
将文件路径设置为属性文件的完全限定位置
要在soapUI中使用属性,我只需在需要时引用项目属性,如${Projectwebservice.endpoint}。当我想切换环境时,我只需重新运行脚本
我通常从项目的“加载脚本”选项卡运行脚本。如果脚本没有为您运行,请检查首选项中的全局安全设置,并取消选中禁用加载和保存脚本复选框
webservice.endpoint=https://dev.server.com:8080/webservice
database.username=frodo_dev
database.url=jdbc:mysql://dev.database.server:3306/middleearth
import com.eviware.soapui.support.UISupport;
import com.eviware.soapui.support.types.StringToStringMap;
import com.eviware.x.form.XForm;
import com.eviware.x.form.XFormDialog;
import com.eviware.x.form.XFormDialogBuilder;
import com.eviware.x.form.XFormFactory;
log.info project.getName()
envDialog = new EnvironmentDialog(log)
if (envDialog.configure()) {
target = envDialog.getEnv()
path = context.expand(project.getResourceRoot())
file = path + "\\environment." + target + ".properties"
log.info "Loading property file $file"
project.addPropertiesFromFile(file)
}
return
public class EnvironmentDialog {
private static final String ENVIRONMENTS = "Environments";
private XFormDialog dialog;
private String env;
def log
public EnvironmentDialog(org.apache.log4j.Logger logger)
{
log = logger
}
public boolean configure() {
if (dialog == null) {
buildDialog();
}
StringToStringMap values = new StringToStringMap();
dialog.setOptions(ENVIRONMENTS, new String("local,dev,test,uat").split(","));
values = dialog.show(values);
if (dialog.getReturnValue() == XFormDialog.OK_OPTION) {
try {
env = values.get(ENVIRONMENTS)
log.info "set env = " + env
return true
}
catch (Exception e) {
UISupport.showErrorMessage(e.getMessage());
return false
}
}
return false
}
public String getEnv() {
return env
}
private void buildDialog() {
XFormDialogBuilder builder = XFormFactory
.createDialogBuilder("Pick Environment");
XForm form = builder.createForm("Basic");
form.addComboBox(ENVIRONMENTS, new String[0], "Environment options");
dialog = builder.buildDialog(
builder.buildOkCancelActions(),
"SOAPUI Test Properties target selected environment",
UISupport.OPTIONS_ICON);
}
}