webservice API自动化测试

发表于:2010-2-09 11:38

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:wuyingminhui    来源:51Testing软件测试博客

  介绍第二种测试。

  就是对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由于使用的工具或者简单代码编写致使出现类似的安全漏洞。

推荐阅读:

SoapUI使用手册【Oolong原创】

利用SoapUI测试Web service的方法介绍

使用SOAPUI对WEBSERVICE进行性能测试

33/3<123
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号