我可以先说我是编程和 SoapUI 的新手(更像是一周前)。对于提出我将要提出的问题,我提前道歉。
问题
基本上,我正在尝试自动化 web 服务。我需要在soapui 中使用Groovy 创建xml 并将其作为请求主体的一部分发送到Web 服务(REST 不是SOAP),并对收到的响应做一些断言。我将发送相当多的请求,因此是自动化的原因。
我提出的解决方案(我不确定)
import groovyx.net.http.HTTPBuilder
import groovyx.net.http.ContentType
import groovyx.net.http.Method
class XmlGenerator {
// I created a class i.e. called XmlGenerator with a
// static method called GetXML() which looks like this:
public static def GetXML()
{
def writer = new StringWriter()
def xml = new MarkupBuilder(writer)
xml.GetDMessage() //creating the xml message
{
PrescribedItems
{
PrescribedMethod(xml,'Some Value','Some Value','Some Value')
PrescribedItem
{
PrescribedMethod(xml,'Some Value','Some Value','Some Value')
}
}
}
return writer
}
// This method creates the XML needed but then i need to
// pass the xml generated to a request boy; so i
//create another method within the same class:
static def postXML(String baseUrl, String path)
{
def RequestBody = XmlGenerator.GetXML() // i am not sure if this will work
try
{
def ret = null
def http = new HTTPBuilder(baseUrl)
http.request(Method.POST, ContentType.XML)
{
uri.path = path
body = RequestBody
}
}
catch (groovyx.net.http.HttpResponseException ex)
{
ex.printStackTrace()
return null
}
catch (java.net.ConnectException ex)
{
ex.printStackTrace()
return null
}
}
}
概括
一个用 2 个方法调用的类XmlGenerator()
;GetXML()
(用于生成 XML )和postXML()
(用于将生成的 XML 发送GetXML()
到 Webservice。)
问题
我如何确保其他请求消息使用这两种方法(
GetXML()
和postXML()
),即我是否需要导入 groovy scripte.g。我是否进行导入... GroovyScriptName ,如果是,请如何?如何创建 xml 并在后续请求消息中运行请求。例如; 我这样做吗?
XmlGenerator() gen = new XmlGenerator()
, 然后做gen.GetXML()
andgen.postXML()
来创建和运行请求。另外,testRunner 在这一切中可以扮演什么角色HTTPBuilder, ContentType , Method can not be resolved
即使我已在脚本中导入它们,运行代码当前也会抛出(见上文)最后,财产在构建这个框架中可以发挥什么作用?请记住,每个请求都将独立于另一个请求,即在测试执行期间没有任何内容从一个请求传递到另一个请求