webservice API自动化测试(三)

上一篇 / 下一篇  2010-01-26 18:49:28 / 个人分类:Webservice API自动化测试

SOAPUI的使用之前了介绍第一种测试,这里介绍第二种测试。

就是对API编写是否正确严谨的验证,这里主要的流程是:

 

第一步,加入对应比较的resouce源,即响应response的URL。

 

第二步,比较相应的XML和对应数据库服务器的数据。

比较方法有两种:

第一种方法是将对应的数据库数据利用JAVA程序组成acutual的XML数据与相应的Response XML进行比较。可以使用相应的GROOVY的脚本进行XML的重组。

 

import groovy.sql.Sql

import groovy.xml.MarkupBuilder

 

def writer = new StringWriter();

def xml = new groovy.xml.MarkupBuilder(writer)

Sql sql = Sql.newInstance("jdbc:oracle:thin:XXXX","XXXX", "XXXX", "oracle.jdbc.driver.OracleDriver")

 

然后使用Diff进行比较:

def xmlDiff = new Diff(expectedResult,acutualResult)

def s = xmlDiff.toString();

 

第二种方法是用SOAPUI自带的groovy utils类进行XPATH的操作,以下有个简单的实例,您可以扩展:

 

def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )

def holder = groovyUtils.getXmlHolder("XXXXX#Response" )

def parameter = holder.getNodeValue('YYYYY')

 

XXXXX:您对应的SOAP或者REST的test case步骤。

YYYYY:对应的Response的XPATH定位。

摘取相应的数据和数据库比较。

 

第一种方法比较全面但扩展性较差,第二种方法的扩展性不错,而且易于修改,但是其可能会遗漏一些边缘的BUG。

 

第三步,我们这里一样需要使用testrunner.bat -s XXXXX,XXXXX对应您相应的TestSuite名称,如果有多个suite,您可以使用组合命令自动化

 

这样您就完成了第二步的对API编写是否正确严谨的验证测试。

 

这里并没有结束,这里需要您进行第四步测试,在对应的GUI测试中功能测试中出现的BUG需要在API中进行验证,防止API的严谨性差。与之前提到的例子主要集中在Negative和Boundary的test case验证,保证webservice API的正确及安全性。

 

附加:这里您也能对API的POST数据进行简单的SQL injection测试,大部分的API由于使用的工具或者简单代码编写致使出现类似的安全漏洞。


TAG: API SoapUI SOAPUI webservice 自动化 datavalidation

FISHY'S TRIBE 引用 删除 fishy   /   2010-02-05 14:07:27
您好,我是51Testing软件测试网的编辑,您的本系列博文被推荐至51Testing软件测试网首页发表:http://www.51testing.com/html/76/n-207976.html
感谢您关注并支持51Testing博客,期待您更多的优秀原创博文。
 

评分:0

我来说两句

日历

« 2024-04-21  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 147595
  • 日志数: 22
  • 建立时间: 2009-10-14
  • 更新时间: 2010-07-27

RSS订阅

Open Toolbar