教你用soapUI测试web服务(三)

日期: 2011-11-14 作者:Mike Kelly翻译:杨华军 来源:TechTarget中国 英文

在《教你用soapUI测试web服务(一)》和《教你用soapUI测试web服务(二)》中,我们介绍了在创建了第一个soapUI项目之后,如何编写并执行测试用例。下面我们将继续介绍剩下的步骤。   第十四步:为TestStep添加断言的按钮。   一旦追加了一个断言,首先出现的是Select Assertion对话框。

有若干不同的断言可供选择,在本文中我们只看其中的一个。每种断言类型的更多细节请查看soapUI用户指南。本例中我们将执行一次XPath Query。选中该选项并点击OK。

图15:选择XPath Query断言。   第十五步:选择XPath Query断言。   这一部将会打开……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

《教你用soapUI测试web服务(一)》《教你用soapUI测试web服务(二)》中,我们介绍了在创建了第一个soapUI项目之后,如何编写并执行测试用例。下面我们将继续介绍剩下的步骤。

  第十四步:为TestStep添加断言的按钮。

  一旦追加了一个断言,首先出现的是Select Assertion对话框。有若干不同的断言可供选择,在本文中我们只看其中的一个。每种断言类型的更多细节请查看soapUI用户指南。本例中我们将执行一次XPath Query。选中该选项并点击OK。

图15:选择XPath Query断言。

图15:选择XPath Query断言。

  第十五步:选择XPath Query断言。

  这一部将会打开XPath Match配置对话框。在这一对话框中,你可以指定一个XPath Epression来取出希望测试的值。此外,你还要指定表达式预期的结果。你在编写表达式和结果的时候,可以用对话框Expected Result 部分的“Select from current”和“Test”按钮测试你的声明。

图16:loginReturn的XPATH校验所用的正则表达式。

图16:loginReturn的XPATH校验所用的正则表达式。

  第十六步:loginReturn的XPATH校验所用的正则表达式。

  在上面图16所示的例子中,你会看到我在回应的XML中找“loginReturn”元素,然后将其与一个10字符(含大小写字母及0-9的数字)正则表达式比较。如果元素值匹配那些参数的话,那个声明应该返回真。这就是为什么我的预期为真的原因。

  点击Save的时候,断言就会被添加到测试步骤中去了。你应该就能够在请求窗口底部看到所添加的断言,如图17所示。

图17:XPath Match被添加到请求中。

图17:XPath Match被添加到请求中。

  第十七步: XPath Match被添加到请求中。

  此刻,你可以关闭Login请求窗口了。我们已经准备好进入下一个TestStep了。接下来我们要登出。你可以按照做login相同的步骤来添加logout。到了logout请求的时候(如下表5所示),你将会看到需要把login的会话传递过去。

  表5:Logout请求XML。

以下是引用片段:
<soapenv:Envelope    >
   <soapenv:Header/>
   <soapenv:Body>
      <soap:logout soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
         <in0 xsi:type="xsd:string">?</in0>
      </soap:logout>
   </soapenv:Body>
</soapenv:Envelope>

  如果你运行这一请求是没有传递会话,就会得到一个“false”的logoutReturn。这是因为JIRA不知道谁要登出。

  要想改正此问题,我们需要把我们login的会话id传递给logout请求。我们用名为Property Transfer的东西做此事。要想添加一个Property Transfer,请点击TestCase窗口的Property Transfer按钮。

图18:TestCase 窗口的Property Transfer按钮。

图18:TestCase 窗口的Property Transfer按钮。

  第十八步:TestCase 窗口的Property Transfer按钮。

  在InsertStep对话框中,你可以对属性进行命名。我通常根据用传递的值来命名。

图19:命名Property Transfer。

图19:命名Property Transfer。

  第十九步:命名Property Transfer。

  点击OK时,供添加新元素的Property Transfer窗口就出现了。要想创建一个传输,点击窗口左上角的add new property transfer按钮。

  第二十步:添加新的属性传输的按钮。

图20:添加新的属性传输的按钮。

图20:添加新的属性传输的按钮。

  你会再一次被提示对传输进行命名。这是因为你也许想传输多个属性。在这个窗口中,你可以映射多个属性给传输(transfer)。这感觉有点多余,因为我们只处理一个属性,但是如果你有五六个属性需要在请求中转移的话那就很好了。

  一旦添加了传输进来就可以对它进行配置了。传输的源端和目的端都需要定义。我们会从loginReturn元素中选择则值,并把它传输给Logout的in0元素。你可以在图21中看到我是如何进行配置的。

图21:设置会话属性传输参数。

图21:设置会话属性传输参数。

  第二十一步:设置会话属性传输参数。

  如果你点击Property Transfer窗口顶部的绿色箭头,它就会运行传输,然后把结果显示在窗口底部的Transfer Log处。

  你会看到上面的例子中“TD9CJdR3F1”这个值出现了,然后也被传输过去了。现在,如果你回去再跑一遍Logout请求,它就会返回真了。在运行时,该值会动态地在两个请求之间转移。

  如果你现在看看自己的TestCase,就会看到所有三个元素都列出来了。如果你的元素不是按照正确的次序显示的,只需按所需的次序拖拽它们就行了。

图22:完成login和logout的TestCase。

图22:完成login和logout的TestCase。

  第二十二步:完成login和logout的TestCase。

  继续用窗口顶部工具条的绿色按钮运行你的测试用例。你会注意到状态栏更新和摘要测试日志都显示在TestCase窗口的底部了,如图23所示。

图23:soapUI显示的TestCase测试结果摘要。

图23:soapUI显示的TestCase测试结果摘要。

  第二十三步:soapUI显示的TestCase测试结果摘要。

  于是,我们就已经成功设置并运行了我们的第一个JIRA服务测试了。

相关推荐