企业网站 微信里怎么做,注册安全工程师考试时间,大学科技园网站建设,wordpress的模板文章目录 一、背景二、生成xml文件2.1、创建xml方法2.2、执行主类MainTest2.3、自动生成的xml2.4、工程目录2.5、执行结果 三、命令行执行appium服务四、主方法启动类五、集成Jenkins六、总结 一、背景
Jenkins 做集成测试是不错的工具#xff0c;那么UI自动化是否可以#… 文章目录 一、背景二、生成xml文件2.1、创建xml方法2.2、执行主类MainTest2.3、自动生成的xml2.4、工程目录2.5、执行结果 三、命令行执行appium服务四、主方法启动类五、集成Jenkins六、总结 一、背景
Jenkins 做集成测试是不错的工具那么UI自动化是否可以appium与testng结合能否集成到jenkins中去做定时运行。如果要执行先解决jenkins怎么识别testng
通过pom文件执行通过调用main方式testng
今天只演示通过main方式执行testng
二、生成xml文件
2.1、创建xml方法
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Properties;
/*** author liwen* Title: createTestngXml* Description: 生存xml文件* date 2019/11/24 / 16:15*/
public class createTestngXml
{static Properties sysProperty System.getProperties();public static void createTestngXml(String classname){Document document DocumentHelper.createDocument();Element root DocumentHelper.createElement(suite);document.setRootElement(root);root.addAttribute(name, automation);root.addAttribute(thread-count, String.valueOf(1));//生成监听器Element listeners root.addElement(listeners);Element listener1 listeners.addElement(listener);listener1.addAttribute(class-name, appout.reporter.ReporterListener);Element test root.addElement(test);//增加设备号与端口号Element paramUuid test.addElement(parameter);paramUuid.addAttribute(name, udid);//根据实际情况修改paramUuid.addAttribute(value, 127.0.0.1:62001);Element paramPort test.addElement(parameter);paramPort.addAttribute(name, port);//根据实际情况修改paramPort.addAttribute(value, 4723);test.addAttribute(name, 127.0.0.1);Element classes test.addElement(classes);Element classNode classes.addElement(class);classNode.addAttribute(name, classname);OutputFormat format new OutputFormat( , true);XMLWriter xmlWrite2;try{xmlWrite2 new XMLWriter(new FileOutputStream(sysProperty.getProperty(user.dir) /comsevenday/src/main/resources/mytestng.xml), format);xmlWrite2.write(document);}catch(UnsupportedEncodingException e){e.printStackTrace();}catch(FileNotFoundException e){e.printStackTrace();}catch(IOException e){e.printStackTrace();}}
}2.2、执行主类MainTest
import appout.utils.createTestngXml;
import org.testng.TestNG;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;/*** author liwen* Title: MainTest* Description: 主方法* date 2019/11/24 / 19:49*/public class MainTest
{static Properties sysProperty System.getProperties();private staticfinal String ESCAPE_PROPERTY org.uncommons.reportng.escape-output;public static void main(String[] args){try{//执行的类createTestngXml.createTestngXml(appout.appcase.CartTest);}catch(Exception e){e.printStackTrace();}System.setProperty(ESCAPE_PROPERTY, false);List String suites new ArrayList String ();System.out.println(suites);suites.add(sysProperty.getProperty(user.dir) /comsevenday/src/main/resources/appxml/mytestng.xml);TestNG tng new TestNG();tng.setTestSuites(suites);tng.run();}
}2.3、自动生成的xml
?xml version1.0 encodingUTF-8?
suite nameautomation parallelAutomatically generate xml thread-count1listeners listener class-nameappout.reporter.ReporterListener//listeners test name127.0.0.1 parameter nameudid value127.0.0.1:62001/ parameter nameport value4723/ classes class nameappout.appcase.CartTest//classes/test
/suite2.4、工程目录 2.5、执行结果 三、命令行执行appium服务
如果使用命令行执行需要了解下appium启动命令这样咱们才可以拼接命令启动服务。
先试下编写好的命令
appium -p 4327 -bp 11 -U 127.0.0.1:62001编写执行启动服务器
判断是否存在如果存在就kill
四、主方法启动类 五、集成Jenkins
这个就不介绍网上很多介绍的。
六、总结
通过上面主方法调用检查appium服务并且执行appium服务上面不足的地方就是生成xml中设备号与udid需要手动其实也是可以通过自动生成并且赋值给appium执行命令与生存testng.xml中去。暂时就不演示怎么加上去其实在工作中确实是自动获取设备号生存xml全部一键执行。