java获取并编辑用户脚本,创建并自动执行testng.xml文件_03

来源:互联网 发布:初学者学英语软件 编辑:程序博客网 时间:2024/05/17 13:41

java获取并编辑用户脚本,创建并自动执行testng.xml文件_03


package demo0325;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
import org.testng.TestNG;

public class startAll {

public static void main(String[] args) throws IOException {

/*变量说明
*zipFileDir 用户上传的zip包目录
*projectDir 运行最终可执行脚本的所在目录
*packageContent 需要提交到用户上传脚本里面的首行package内容
*/
String zipFileDir="D:\\Android\\jars";
String projectDir="D:\\Android\\workspace\\MqcDemo\\src\\demo0325\\";
String packageContent="package demo0325;";
String projectSrcDir="demo0325";

//在工程目录demo0325生成所有用户可执行的脚本
try{
addScript.main(zipFileDir,projectDir,packageContent);
System.out.println("所有用户脚本已生成");
}catch(Exception e){
System.out.println("可执行脚本生成失败");
}

//获取所有新生成的用户可执行脚本名称
String[] scriptNames=addScript.getUserScriptNames();
//获取xml文件里面要执行的class类name属性值
String[] xmlClassSZ=new String[scriptNames.length];
for(int i=0;i<scriptNames.length;i++){
String scriptName=scriptNames[i].toString().substring(0,scriptNames[i].length()-5);
xmlClassSZ[i]=projectSrcDir+"."+scriptName;
System.out.println(scriptName);
}

//创建testng.xml文件
CreateTestngXml(xmlClassSZ);

//启动运行testng.xml文件
RunTestngXml();


}


//创建testng.xml文件
public static void CreateTestngXml(String[] xmlClass) throws IOException{
//创建Document实例  
        Document document = DocumentHelper.createDocument();  
        //记录要保存的xml文件位置  
        String xmlfilepath=System.getProperty("user.dir")+"\\testng.xml"; 
        //创建根节点suite,并设置name属性为xmlsuitename  
        Element root = document.addElement( "suite" ).addAttribute("name", "exeAppiumTestCase");  
        //创建节点test,并设置name、属性  
        Element test = root.addElement( "test" ).addAttribute("name", "test"); 
        //创建节点classes,无属性  
        Element classes = test.addElement( "classes" );         
        //创建节点classs,并设置name属性  
        for(int i=0;i<xmlClass.length;i++){
            Element classs= classes.addElement( "class" ).addAttribute("name",xmlClass[i].toString()); 
        }
                  
        //设置DocType  
        //第一个参数:名称    
        //第二个参数:PUBLIC URI  
        //第三个参数:SYSTEM URI  
        document.addDocType("suite", null,"http://testng.org/testng-1.0.dtd");  
        //输出格式设置  
        OutputFormat format = OutputFormat.createPrettyPrint();   
        format = OutputFormat.createCompactFormat();  
        //设置输出编码  
        format.setEncoding("UTF-8");  
        //创建XML文件  
        XMLWriter writer= new XMLWriter(new OutputStreamWriter(new FileOutputStream(xmlfilepath),format.getEncoding()),format);   
        writer.write( document );   
        writer.close();  
        document=null;     
}


//运行testng.xml文件
public static void RunTestngXml(){
        TestNG testNG = new TestNG();
        List<String> suites = new ArrayList<String>();
        suites.add(System.getProperty("user.dir")+"\\testng.xml");
        testNG.setTestSuites(suites);
        testNG.run();
}
}


0 0
原创粉丝点击