首页 > 技术文章 > soapUI系列之—-03 Groovy脚本常用方法2

liuyitan 2017-12-05 12:49 原文

1. 解析Json数据脚本

例:Json格式
{
"body":{
"businessinfo":{
"c1rate":"0.00",
"c2rate":"12.00",
"c4rate":"21.00",
"c5rate":"0.00",
"c6rate":"0.00",
"c8rate":"0.00",
"d1rate":"0.00",
"d2rate":"0.00",
"riskcode":"0355",
"ruleid":"R32000213878_11-0"
}
},
"head":{
"error_code":"0000",
"error_message":"成功",
"request_type":"???",
"response_code":"0"
}
}

/*Case1:练手*/

//groovy读取json的方式很简单,re.body.businessinfo.c2rate读取c2rate对应的值
import groovy.json.JsonSlurper

def xresponse = testRunner.testCase.testSteps["Request"].testRequest.response.contentAsString
def slurper = new JsonSlurper()
def re = slurper.parseText(xresponse)
def num=re.body.businessinfo.size() 
log.info(re.body.businessinfo.c2rate)

2. 导入方法和脚本
例如MD5方法、groovy.json.JsonSlurper方法

import groovy.json.JsonSlurper //导入groovy.json包中的JsonSlurper方法

3. 得到32位的UUID

/*Case3:练手*/
import java.util.UUID

//得到32位的UUID
//格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12)

def uuids = UUID.randomUUID().toString().toLowerCase()

//得到去除横线的UUID
def uuids = UUID.randomUUID().toString().replace("-", "").toLowerCase();

4. 获取cookie并添加到对应的请求中

/*Case4:练手*/
import com.eviware.soapui.support.types.StringToStringMap

def cookiesList = testRunner.testCase.getTestStepByName("login").testRequest.response.responseHeaders["Set-Cookie"]
log.info cookiesList
 
//Get the cookie
String cookieNew = cookiesList.get(0)
log.info "cookie : "+cookieNew

//Put cookie to a StringMap
def cookieMap = new StringToStringMap()
cookieMap.put("Cookie",cookieNew)

testRunner.testCase.getTestStepByName("filter").testRequest.setRequestHeaders(cookieMap);

5. 调用 Groovy,java 的jar包的方法

/*Case5:练手*/
import pub.Text
// 调用 Groovy 的jar包中方法, //此包必须与jar包中的包名一致
def text = new Text()
text.writeFile("D:\\1.log", "test")

操作方法:选中工程->Export-> JAR

这里打jar包时候要注意

1)\WebContent\META-INF\MANIFEST.MF 这个文件打到jar包中去(这个文件描述了该Jar文件的很多信息)

2)要打的是class文件,即要选择Export generated class files and resources

其他参考资料:

soapUI 自动化教程(三)
soapUI 自动化教程(四)
MANIFEST.MF的用途

推荐阅读