设为首页 收藏本站
查看: 1247|回复: 0

[经验分享] selenium+testng+ant+jenkins 手记

[复制链接]
发表于 2018-1-6 18:47:38 | 显示全部楼层 |阅读模式
  会不会搭建测试平台是一般测试工程师和高级测试工程师分水岭 ----tobecrazy
  我们项目有现成的测试平台,使用的是selenium grid+testng+ant+jenkins+VM
  但是我平时用的是selenium+testng并未体验过使用ant 和jenkins,今天心血来潮尝试使用一下jenkins.
  Jenkins简介:


  • Jenkins是一个开源框架
  • Jenkins可执行重复的jobs,主要使用在两方面
  1.可持续build或test project
  2.监控外部执行的jobs


  •   自动build发邮件。。。。。
  了解更多看https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins
  首先安装Jenkins,下载windows平台的版本
  由于安装比较简单,这里就不再介绍
  安装ant,下载ant zip文件,解压到C:\Program Files\apache-ant-1.9.4
  在系统变量添加ANT_HOME

  之后再CMD运行ant -version
  若显式:Apache Ant(TM) version 1.9.4 compiled on April 29 2014
  说明ant 配置成功


  • 使用ant 编译工程,必须有一个xml文件,默认build.xml
  • 每个build文件配置一个default target,执行ant命令会执行这个target
  首先了解一下简单使用ant
  使用note pad 写一个class,保存为Test java
  

public>
/**  
*
@author tobecrazy  
*
  

*/  
public static void main(String[] args) {
  
System.out.println("This ANT HOME ");
  
System.out.println(System.getenv("ANT_HOME"));
  

  
}
  

  
}
  

  在cmd尝试编译:javac Test.java
  如官方没有报错,恭喜你,可以进行下一步
  使用ant所做的操作和命令行输入是一样的,只不过所有的命令转换为xml标签:
  这次配置如下:

  每个target是一个操作,clean是删除build目录,compile是编译,run是执行java>  

<?xml version="1.0"?>  
<project name="AntTest" default="run" basedir="." >
  
<!-- 默认target是run,运行ant命令直接执行run -->
  
<echo message="The base dir is: ${basedir}" />
  
<target name="clean">
  
<delete dir="build"/>
  
</target>
  
<target name="compile" depends="clean">
  
<!-- 编译java文件依赖clean -->
  
<mkdir dir="build/classes"/>
  
<javac srcdir="src" destdir="build/classes"/>
  
</target>
  

  
<target name="run" depends="compile">
  
<!-- 运行class文件,依赖compile -->
  
<echo message="Compile dir is:  ${basedir}\build\classes" />

  
<java>  
<classpath>
  
<pathelement path="build/classes"/>
  
</classpath>
  
</java>
  
</target>
  
</project>
  

  之后在命令行输入ant(cmd切换到该目录)
  结果如下:
  D:\AntTest>ant
  Buildfile: D:\AntTest\build.xml
[echo] The base dir is: D:\AntTest

  clean:
[delete] Deleting directory D:\AntTest\build

  compile:
[mkdir] Created dir: D:\AntTest\build\classes

[javac] D:\AntTest\build.xml:11: warning: 'includeantruntime' was not set, d

  efaulting to build.sysclasspath=last; set to false for repeatable builds
[javac] Compiling 1 source file to D:\AntTest\build\classes

  run:
[echo] Compile dir is:  D:\AntTest\build\classes

[java] This ANT HOME

[java] C:\Program Files\apache-ant-1.9.4

  BUILD SUCCESSFUL
  Total time: 1 second
  为了配合使用selenium webdriver打开eclipse创建名为Demo的项目
  接下来就是使用Jenkins,如果你的Jenkins安装成功,打开http://localhost:8080/会显示Jenkins主页
  点击新建->输入项目名->选择“构建一个自由风格的软件项目”->构建->增加构建步骤->选择invoke ANT
  接下来配置如下:

  此时准备ant build.xml放到工程的根目录
  build.xml内容如下,testng 和selenium的jar包需要加载,所以设置
  

<path>  由于项目使用的UTF-8编码,在编译时报错所以添加
  

  <javac srcdir="src" destdir="build/classes" debug="on" encoding="UTF-8">  

  

  

<?xml version="1.0"?>  
<project name="Demo" default="run" basedir=".">
  
<echo  message="import libs" />
  
<path>
  
<fileset dir="${basedir}">
  
<include name="lib/testng.jar" />
  
<include name="lib/sikuli-script.jar" />
  
</fileset>
  
<fileset dir="${basedir}/lib/selenium">
  
<include name="selenium-java-2.45.0.jar" />
  
<include name="libs/*.jar" />
  
</fileset>
  
</path>

  
<taskdef name="testng">  
<target name="clean">
  
<delete dir="build"/>
  
</target>
  
<target name="compile" depends="clean">
  
<echo message="mkdir"/>
  
<mkdir dir="build/classes"/>
  
<javac srcdir="src" destdir="build/classes" debug="on" encoding="UTF-8">
  
<classpath refid="run.classpath"/>
  
</javac>
  
</target>
  
<path>
  
<path refid="run.classpath"/>
  
<pathelement location="build/classes"/>
  
</path>
  
<target name="run" depends="compile">

  
<testng >  
<xmlfileset dir="${basedir}" includes="testng.xml"/>
  
<jvmarg value="-ea" />
  
</testng>
  
</target>
  
</project>
  

  更多ant和testng  classname="org.testng.TestNGAntTask"是固定格式
  参考:http://testng.org/doc/index.html
  接下来在项目添加几个case,项目目录如下

  准备testng的配置文件如下,放在工程的根目录下
  

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
  
<suite name="Suite" parallel="none">
  
<test name="Test">
  
<groups>
  
<run>
  
<include name="Case1" />
  
<include name="MapTest" />
  
<include name="JDaddress" />
  
<include name="useCookies" />
  
</run>
  
</groups>
  
<classes>
  
<class name="com.dbyl.tests.Case1"/>
  
<class name="com.dbyl.tests.JDaddress"/>
  
<class name="com.dbyl.tests.UseCookieLogin"/>
  
<class name="com.dbyl.tests.MapTest"/>
  
</classes>
  
</test> <!-- Test -->
  
</suite> <!-- Suite -->
  

  接下来就是见证奇迹的时候:
  在Jenkins里选择构建
  

Building in workspace C:\Program Files (x86)\Jenkins\workspace\Demo  
[workspace] $ cmd.exe /C '""C:\Program Files\apache-ant-1.9.4\bin\ant.bat" -file Demo run && exit %%ERRORLEVEL%%"'
  
Buildfile: C:\Users\Young\workspace\Demo\build.xml
  
[echo] import libs
  

  
clean:
  
[delete] Deleting directory C:\Users\Young\workspace\Demo\build
  

  
compile:
  
[echo] mkdir
  
[mkdir] Created dir: C:\Users\Young\workspace\Demo\build\classes
  
[javac] C:\Users\Young\workspace\Demo\build.xml:21: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
  
[javac] Compiling 6 source files to C:\Users\Young\workspace\Demo\build\classes
  

  
run:
  
[testng] [TestNG] Running:
  
[testng]   C:\Users\Young\workspace\Demo\testng.xml
  
[testng]
  
[testng] Fast test
  
[testng] Slow test
  
[testng] Starting ChromeDriver (v2.9.248315) on port 43260
  
[testng] Starting ChromeDriver (v2.9.248315) on port 20660
  
[testng] Starting ChromeDriver (v2.9.248315) on port 13803
  
[testng] cookie write to file
  。。。。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-432325-1-1.html 上篇帖子: Jenkins+svn+maven自动部署到tomcat 下篇帖子: 利用PowerShell+Jenkins,实现项目的自动化部署
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表