自动生成测试用例

  • d1_570951
    了解作者
  • 2.6MB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-05-19 19:39
    上传日期
自动生成测试用例,通过运行本程序,可以自动的生成默认格式的XML文档,同时可以用用户定制的XML标签去替换默认生成的XML标签。
boitenoire_testxml_create.rar
内容介绍
package com.asiainfo.testXml; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Iterator; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; import com.asiainfo.util.FileHelper; import com.asiainfo.util.SystemConfig; /** * 自动生成XML文档测试用例 (作业计划) * @author YangPu */ public class XmlDocument { private String moduleType="MAINP"; //类型 private String smoduleType; //对应的小写类型 private int bizCnt; //流程数 private List<Object> parentLableName; //标签的父标签 private List<Object> isChange; //标签是否需要更新 private List<Object> lableName_case; //nm_test_boitenoire_case_def表中的标签名 private List<Object> default_value; //nm_test_boitenoire_case_def表中与标签对应的默认值 private List<Object> lableName_attr; //nm_test_boitenoire_attr_def表中的标签名 private List<Object> columnValue; //nm_test_boitenoire_attr_def表中的枚举值 private ArrayList<String> combinationList; //存放着组合后的属性值 private String fileDir; //存放Xml测试用例文件的全路径名 private String rootDir; //存放Xml测试用例文件的根目录,通过systemconfig.properties文件读取 private boolean isDefault=true; //是否按默认值生成 private String fileName; //生成Xml测试用例的文件名 private boolean isInnerAbnormal=false; //判断循环内是否有异常 private boolean isOutnerAbnormal=false; //判断循环外是否有异常 protected Log logger = LogFactory.getLog(XmlDocument.class); private QueryDB queryDB; private int createCount=0; //debug 需要生成的测试用例数目 public void setModuleType(String moduleType) { this.moduleType = moduleType; } /** * 程序的执行模块 */ public void runProc() { initPath(); if(!loadData()) return ; int bizCntTmp=bizCnt; int no=001; String fileDate="20110101"; String fileNameNext; fileName=moduleType+"_"+"200_15MI_"+fileDate+"_"+getStrNo(no)+"_000.xml"; bizCntTmp=1; //先设置为 1 String fileNext=""; //设计流程的时候 赋值 System.out.println(""); while(bizCntTmp>0) { if(isDefault) { logger.info(" 开始生成默认用例!"); //debug createXmlFile(fileName); if(!isInnerAbnormal) createDBLog(fileName,"PASS"); bizCntTmp--; no++; fileNameNext=moduleType+"_200_15MI_"+fileDate+"_"+getStrNo(no)+"_000.xml"; if(bizCntTmp>0) fileNext=fileNameNext; queryDB.InsertImport(fileName, "boitenoire_testxml_create", "", "Y", fileNext, "verify");//不涉及流程的话,fileNameNext为空 fileNext=""; fileName=fileNameNext; isInnerAbnormal=false; isDefault=false; } if(!isDefault) { logger.info(" 开始生成组合用例!"); //debug combination(0,""); this.createCount=combinationList.size()+1;//debug while(combinationList.size()>0) { if(no-1>=96) { try { SimpleDateFormat df=new SimpleDateFormat("yyyyMMdd"); Date date=df.parse(fileDate); long millseconds=date.getTime(); millseconds+=3600*24*1000; date.setTime(millseconds); fileDate=df.format(date); no=001; } catch (ParseException e) { // TODO Auto-generated catch block isInnerAbnormal=true; createDBLog(fileName,"ATX008"); } } createXmlFile(fileName); if(!isInnerAbnormal) createDBLog(fileName,"PASS"); bizCntTmp--; fileNameNext=moduleType+"_200_15MI_"+fileDate+"_"+getStrNo(no)+"_000.xml"; no++; queryDB.InsertImport(fileName, "boitenoire_testxml_create", "", "Y", fileNext, "verify");//debug 不涉及流程的话,fileNameNext为空 fileName=fileNameNext; combinationList.remove(0); isInnerAbnormal=false; try { Thread.sleep(5); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("已生成["+(this.createCount-this.combinationList.size())+"] 需生成["+this.createCount+"]"); //debug } } } if(!isOutnerAbnormal) createDBLog("","PASS"); //debug if(queryDB!=null) queryDB.EndDBConnect(); logger.info("runProc done!"); } private void initPath() { String nowDate; SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");//debug nowDate=df.format(new Date()); rootDir=SystemConfig.getProperty("rootDir"); smoduleType=moduleType.toLowerCase(); String fileDir=rootDir; if(fileDir.endsWith(File.separator)) { fileDir=rootDir+smoduleType; } else fileDir=rootDir+File.separator+smoduleType; try { File fdir = new File(fileDir); //debug if (false == fdir.exists()) fdir.mkdir(); if(FileHelper.isFileExits(fileDir)) { File file = new File(fileDir+"/"+nowDate); if(false==file.exists()) file.mkdir(); FileHelper.moveFolder(fileDir, fileDir+"/"+nowDate, true); } this.fileDir=fileDir+"/"; logger.info("initPath done!"); } catch(Exception ex) { // System.out.println("初始化文件夹路径错误!"); createDBLog("error_log.xml","ATX002"); System.exit(-1); } } // 生成日志文件 //生成日志记录到数据库表 private void createDBLog(String fileName,String resultCode) { String sysDate,fileDate; // SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");//debug SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); sysDate=df.format(new Date()); if(fileName==null||fileName.trim()=="") { fileDate=sysDate; fileName="error_log.xml"; } else { String[] strArray=fileName.split("_"); fileDate=strArray[3]; } try { queryDB.InsertLog(fileName, "file_create", "to_date('"+sysDate+"','yyyy-mm-dd hh24:mi:ss')", fileDate, resultCode); } catch(Exception ex) { isInnerAbnormal=true; isOutnerAbnormal=true; } } //生成测试用例 private void createXmlFile(String fileName) { Document document = DocumentHelper.createDocument(); Element bomc=document.addElement("bomc"); Element type=bomc.addElement("type"); Element province=bomc.addElement("province"); Element createtime=bomc.addElement("createtime"); Element sum=bomc.addElement("sum"); Element begintime=bomc.addElement("begintime"); Element endtime=bomc.addElement("endtime"); Element data=bomc.addElement("data"); Element companyname=data.addElement("companyname"); Element rcd=data.addElement("rcd"); type.setText(moduleType); province.setText("200"); createtime.setText("2006-04-11T14:16:12"); sum.setText("1"); begintime.setText("2006-04-11T14:00:00"); endtime.setText("2006-04-11T14:15:00"); companyname.setText("广东移动"); createXmlBody(bomc); //测试用例 拼接部分 try { fileName=fileDir+fileName; //debug OutputFormat format= OutputFormat.createPrettyPrint(); format.setEncoding("UTF-8"); FileOutputStream fileWriter=new FileOutputStream(fileName); //debug XMLWriter xmlWriter=new XMLWriter(fileWriter,format); xmlWriter.write(document); xmlWriter.close(); } catch (IOException e) { logger.error(e.getMessage()); createDBLog("","ATX003"); System.exit(-1); } } //测试用例的拼接部分 private void createXmlBody(Element root) { if(isDefault) { for(int i=0;i<lableName_case.size();i++) { try { if(getElementByName((String)parentLableName.get(i),root)!=null) { Element el=getEle
评论
    相关推荐