SoapUI脚本参考

上一篇 / 下一篇  2014-10-14 11:13:51 / 个人分类:单元/集成测试

  SoapUI官方文档资料比较详细,这个是地址http://www.soapui.org/Scripting-Properties/tips-a-tricks.html#1-accessing-properties-settings-and-names
  
  常用代码范例:
  1. XML node

import com.eviware.soapui.support.XmlHolder
def holder = new XmlHolder( messageExchange.getResponseContent())
def idNodeValue = holder.getNodeValue("//company/id");

assert idNodeValue as int
assert holder["//company/id"] !=null && holder["//company/name"]!=null

def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
def holder = groovyUtils.getXmlHolder( context.response )
//def holder = groovyUtils.getXmlHolder( "{StepName}#Response" )
log.info "company name = " + holder['//company/name']
//log.info("company name = " + holder.getNodeValue('//company/name'))

2. Get/Set property

def String source =  messageExchange.modelItem.testStep.testCase.testSuite.project.getPropertyValue( "companyfields" );
def currentEnv = testRunner.testCase.testSuite.project.getPropertyValue( "env" ).toLowerCase();

testRunner.testCase.testSuite.project.setPropertyValue( "loginURL", currentLoginURL )

注意:在groovy脚本中用testRunner, 否则用messageExchange.modelItem

3. Property transfer
  1. 从 source request 到 target request, 用transfer
     sourcerequest step’ response):

     declare namespace sam='http://www.example.org/sample/';

     //sam:loginResponse/sessionid


    targetother request step):

    declare namespace sam='http://www.example.org/sample/';

    //sam:logout/sessionid


  2. 直接用expension
     格式为${request name#Response#Xpath}
     e.g. ${GetSummaryViewData - Request 1#Response#//Document[1]/@documentId}

4. jason转xml

import net.sf.json.JSONObject
import com.eviware.soapui.support.GroovyUtils
import com.eviware.soapui.support.XmlHolder
import org.w3c.dom.Node
import org.apache.commons.lang.StringUtils
import com.eviware.soapui.impl.rest.support.handlers.JsonXmlSerializer

String content =  messageExchange.getResponseContent() 
JSONObject json = JSONObject.fromObject(content)
String xml = new JsonXmlSerializer().write( json )

def groovyUtils = new GroovyUtils(context)
def xmlHolder =groovyUtils.getXmlHolder( xml )
def myNodeValue = xmlHolder["//Account/Id"]

5. 获取step执行结果

import com.eviware.soapui.model.testsuite.TestStepResult.TestStepStatus

def myTestStepResult = testRunner.runTestStepByName("Test Request - login")
def myStatus = myTestStepResult.getStatus()
if (myStatus == TestStepStatus.OK)
log.info "The step status is: " + myStatus.toString()
else
log.error "The step status is: " + myStatus.toString()

6. 获取case执行结果
importcom.eviware.soapui.model.testsuite.TestRunner.Statusdeftc=deftc=testRunner.testCase.testSuite.testCases["Test Case B"]defrunner=tc.run(newcom.eviware.soapui.support.types.StringToObjectMap(),false)log.info"Status: $runner.status, time: $runner.timeTaken ms.
assert runner.status != Status.FAILED : runner.reason


TAG:

 

评分:0

我来说两句

Open Toolbar