SoapUI脚本保存变量,加一BUG

.....看看,好高深....偷笑

保存为全局变量,可以在groovy脚本中,也可以在断言脚本中

        String _url=System.getProperties().getProperty("_url");
        _url+="sss"+";"; // 每次重定向就保存一次
        System.getProperties().setProperty("_url",_url);//先设置一个键位DBType的属性

主要是好记


BUG,

soapUI自带重定向http,其实是soapUI手动重定向的,不是httpclient自动的

有的服务器会要 header中的HOST值,如 192.168.1.2:8080,那么host也应该一致,返回的Location指令会到8080

看看改以后代码:

package com.eviware.soapui.impl.wsdl.submit.transports.http;
HttpClientRequestTransport

String location = httpResponse.getFirstHeader("Location").getValue();
URI uri = new URI(new URI(httpMethod.getURI().toString(), true), location, true);
java.net.URI newUri = HttpUtils.createUri(uri.getScheme(), uri.getEscapedUserinfo(), uri.getHost(), uri.getPort(), uri.getEscapedPath(), uri.getEscapedQuery(), uri.getEscapedFragment());
((ExtendedHttpMethod)getMethod).setURI(newUri);
((ExtendedHttpMethod)getMethod).setHeader("Host", uri.getHost()+":"+uri.getPort());//添加端口!!
//  不加端口号是为何,真是受不了,ai,真心麻烦
String _url=System.getProperties().getProperty("_url");
_url+=uri+";"; // 每次重定向就保存一次
System.getProperties().setProperty("_url",_url);//先设置一个键位DBType的属性
//System.getProperties().getProperty("_url");//后通过getProperty方法得到DBType的值。
//我添加了新内容
由于是测试工具,有时需要拦截中间的url,所以做了一个保存!

修改以后替换回去就好了



SoapUI中使用Groovy脚本可以帮助你扩展和自定义测试逻辑。下面是一些在SoapUI中使用Groovy脚本的常见示例: 1. 在请求中使用Groovy脚本设置参数值: ```groovy // 获取请求对象 def request = context.testCase.testSteps["Request"].testRequest // 设置参数值 request.setRequestContent("Hello, SoapUI!") ``` 2. 在测试步骤中使用Groovy脚本进行断言: ```groovy // 获取响应对象 def response = context.testCase.testSteps["Request"].testRequest.response // 断言响应码为200 assert response.getStatusCode() == 200 // 断言响应内容包含指定字符串 assert response.getResponseText().contains("Success") ``` 3. 在Groovy脚本中使用循环和条件语句: ```groovy def count = 0 // 循环执行请求 while (count < 5) { def response = context.testCase.testSteps["Request"].testRequest.response log.info("Response: " + response.getResponseText()) count++ } // 根据条件执行不同的操作 if (response.getStatusCode() == 200) { log.info("Request succeeded") } else { log.error("Request failed") } ``` 4. 在Groovy脚本中调用其他自定义方法或函数: ```groovy // 定义自定义函数 def customMethod(String message) { log.info("Custom Method: " + message) } // 调用自定义方法 customMethod("Hello, SoapUI!") ``` 以上示例只是演示了一些Groovy脚本的基本用法,你可以根据具体需求进行扩展和修改。在SoapUI中,你可以将Groovy脚本添加到测试步骤、测试套件和全局范围中,并通过`context`对象访问相关上下文信息。希望对你有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值