Groovy(conncet DB, generate xml, get response xml, compare two xml)

来源:互联网 发布:用python自然语言处理 编辑:程序博客网 时间:2024/05/29 17:24

import groovy.sql.Sql
import groovy.xml.MarkupBuilder
import org.custommonkey.xmlunit.*

//Conect to DB and get the nessecery data to generate the expected Xml.
Sql sql=context.dbConnection;
def writer = new StringWriter();
def xml = new groovy.xml.MarkupBuilder(writer)
xml.RetailerGroups(){
   RetailerGroup(Name:"Checkout", Id:"CO")
  
   {
   Retailers(){
    Retailer(Name:"Acme", Id:"Acm")
    Retailer(Name:"Acme2", Id:"Acm2")
    def res = sql.firstRow("select scdprj.user3 as 'Brand', "
    + "schedwin.unix_date_conv (scdslg.air_start) as 'StartDate', "
    + "schedwin.unix_date_conv (scdslg.air_end) as 'EndDate', "
    + "scdprj.cl_id as AdvertiserId,clnt.name + ' ' + '-'+ ' ' + user3 as CampaignName,clnt.name as AdvertiserName "
    + "From schedwin.PROJECTS scdprj "
    + "Inner join schedwin.SLGUSAGE scdslg "
    + "ON scdprj.prj_id=scdslg.prj_id "
    + "Join schedwin.CLNT clnt "
    + "ON clnt.cl_id=scdprj.cl_id "
    + "Where  scdprj.cl_id=1228 and (scdprj.stat=1) and scdprj.formid=0 "
    + "AND (DATEDIFF(dd, schedwin.unix_date_conv(scdslg.AIR_END),'20090707') < =0) "
    + "AND (DATEDIFF(dd, schedwin.unix_date_conv(scdslg.AIR_START),'20090707') >= 0) ")
     }
     }
   RetailerGroup(Name:"Checkout", Id:"CO")
  }
 
def expectedResult = writer.toString()
log.info writer.toString() 
XMLUnit.setIgnoreWhitespace(true)

//Get the actual result
def step = testRunner.testCase.testSteps["retailer"]
def result = step.testRequest.response.contentAsString
log.info result

//Check the actual result by expected result, and output the test result.
def xmlDiff = new Diff(result, expectedResult)
def s = xmlDiff.toString();
File f = new File("c:/","d.txt");
if( !f.exists()){
 f.createNewFile();
 }
try { 
  FileWriter fileWriter = new FileWriter(f, true);
      if (s == "org.custommonkey.xmlunit.Diff[identical]"){
       fileWriter.write("API: '"+ step.name + "' DV Result is  "+ "Passed/r/n");
       }
       else{
        fileWriter.write("API: '"+ step.name + "' DV Result is  "+ "Failed/r/n");
        }
      fileWriter.close();  
     } catch (IOException e) {  
         e.printStackTrace();  
     }    

 

原创粉丝点击