在测试接口的时候,经常会遇到这种情况: 一个方法中存在很多参数,其中的一些参数,每次请求的时候需要不一致,或者需要经过签名的数据,这需要通过groovy脚本来实现产生数据,放置到Request中.
其中有一种简单的方法,即在一个Groovy脚本中,做好处理之后,直接return 值,然后在soap请求中,去选择getDate->from Groovy Result,这样就能完成参数的动态设置.但是这个方法有一个弊端,就是一个Groovy脚本只能完成对一个参数提供(还不包括参数的设置).如果需要设置N个参数,那就需要N个Groovy脚本文件来return 值,然后再soap请求中分别一一设置,太麻烦!下面推荐一个脚本来处理这些问题.
def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context ) //获取上下文对象,转化成groovyUtils对象 def holder = groovyUtils.getXmlHolder( "batchSubmitFundOutReceipts#Request" ) //将方法的request转化成XmlHolder对象,方便对其中的参数进行操作 holder.namespaces["ws"]="http://ws.receipt.shengpay.com/" //设置命名空间 holder.setNodeValue("//ws:batchSubmitFundOutReceipts[1]/arg0[1]/signData[1]",result1) //设置节点的值 holder.setNodeValue("//ws:batchSubmitFundOutReceipts[1]/arg0[2]/signData[1]",result0) //设置节点的值 holder.updateProperty() //更新request
通过以上的脚本,就能一次对Request中的参数进行设置,方便测试的后续进行.
总结:现在已经掌握了数据的处理和设置,数据的获取和判断.通过这些基础的搭配,就能完成一些简答的自动化Check.好了,这次就到这!