soapUI系列之—-03 Groovy脚本常用方法2
------Groovy脚本常用方法
1.解析Json数据脚本
//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)
例: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"
}
}
2.获取reponse
//Get response
def groovyUtils = new GroovyUtils( context )
def holder = groovyUtils.getXmlHolder('inquire#Response') //Parse return value
def data = holder.getNodeValue("//return")
log.info(data)
3. 导入需要用到的方法和脚本:例如MD5方法、groovy.json.JsonSlurper方法
例如:import groovy.json.JsonSlurper //导入groovy.json包中的JsonSlurper方法
4. 调用 Groovy,java 的jar包的方法
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
5. 使用Groovy脚本执行接口请求
import com.eviware.soapui.impl.wsdl.testcase.WsdlTestRunContext CURRENT_TESTCASE = testRunner.testCase
TEST_SUITE = CURRENT_TESTCASE.parent def testStep = TEST_SUITE.getTestCaseByName('TestSuite').getTestStepByName('login') def testStepContext = new WsdlTestRunContext(testStep)
def result = testStep.run(testRunner, testStepContext) log.info result.responseContent
调用另一个TestSuite中的teststep脚本如下:
def testproject = testRunner.testCase.testSuite.project
def testcase = testproject.testSuites['PublicCase'].testCases['TestCase1']
testcase.testSteps["CreateService1"].run(testRunner, context)
调用本TestSuite中的TestStep脚本如下:
testRunner.runTestStepByName("Login")
testRunner.runTestStepByName("CreateAPI1-Scenario2")
6. 步骤跳转脚本
testRunner.gotoStepByName("Step2") 跳转到指定步骤
testRunner.runTestStepByName("Step2") 运行指定步骤或脚本
7. 得到32位的UUID
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();
8. 获取cookie并添加到对应的请求中
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);
其他参考资料:
最新文章
- Python字符串输入输出简述
- js ajax同步请求造成浏览器假死的问题
- 知方可补不足~Sqlserver发布订阅与sql事务的关系
- Elasticsearch增删改查 之 —— Delete删除
- 疯狂java学习笔记之面向对象(三) - 方法所属性和值传递
- 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数013,shape模型
- Nginx入门笔记之————配置文件结构
- Windows Phone动画
- 函数执行到return就结束了
- Java中的面向接口编程
- cocos2d-x 手势之简单实现
- 【技术贴】解决myeclipse SVN 提交代码 commit:remains in tree-c
- [转]jquery中使用event.target的几点
- android获取View上某点的颜色
- http://www.cnblogs.com/ycxyyzw/archive/2012/07/31/2616951.html
- 《JAVASCRIPT高级程序设计》节点层次和DOM操作技术
- 【重学计算机】操作系统D6章:并发程序设计
- webview自总结
- [转载]JDBC/Spring/MyBatis性能比较
- python作业之生成随机数
热门文章
- 微信小程序:this code is a mock one
- 用python的Requests库模拟http请求
- js的闭包中关于执行环境和作用链的理解
- 负载均衡之Ocelot+Consul(配置文件注册服务)
- 发布tomcate时报A configuration error occurred during startup.please verify the preference field with the prompat:null
- Git 二进制文件冲突解决
- 【HTML/XML 3】XML 简介,来源
- E题
- [luoguP2704] 炮兵阵地(状压DP)
- react.js 高阶组件----很简单的实例理解高阶组件思想