会不会搭建测试平台是一般测试工程师和高级测试工程师分水岭 ----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 配置成功

  1. 使用ant 编译工程,必须有一个xml文件,默认build.xml
  2. 每个build文件配置一个default target,执行ant命令会执行这个target

首先了解一下简单使用ant

使用note pad 写一个class,保存为Test java

public class Test {
/**
* @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 class

<?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 classname="Test">
<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 id="run.classpath">
由于项目使用的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 id="run.classpath">
<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" classname="org.testng.TestNGAntTask" classpathref="run.classpath" />
<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 id="runpath">
<path refid="run.classpath"/>
<pathelement location="build/classes"/>
</path>
<target name="run" depends="compile">
<testng classpathref="runpath" outputDir="test-output">
<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
。。。。

selenium+testng+ant+jenkins 手记的更多相关文章

  1. 也谈自动化平台的搭建,另附高大上的名字---无人值守定时巡检系统(selenium+testng+ant+jenkins)

    最近公司新项目改版,由于没有运维,开发则负责上线任务,并且都是手动上线,并行的项目多了,分支混乱,经常导致B项目上线覆盖A项目,导致系统不定时出现异常,老板知道了便扣了大家的绩效,作为测试这边必须想个 ...

  2. Selenium2.0+TestNG+Ant+Jenkins自动化测试浅尝

    当前常用自动化测试工具 Web自动化测试工具:QTP .selenium等 性能自动化测试工具:loadrunner.jmeter等 接口自动化测试工具:SoapUI.postman等 手机自动化测试 ...

  3. selenium+testNG+Ant

    好几天没写了,抽时间写下,也好有个总结: 1.selenium+testNG+Ant (1)ant 是构建工具 他的作用就是运行你配置好的东西 而tentng.xml你可以认为他是管理test的一个配 ...

  4. Selenium+TestNG+Maven+Jenkins+SVN(转载)

    转载自:https://blog.csdn.net/u014202301/article/details/72354069 一. 创建Maven项目,下载Selenium和TestNG的依赖(依赖可以 ...

  5. testng+ant+jenkins持续集成UI自动化

    一.环境搭建 1. 安装testNG插件到eclipse. -) 选择菜单 Help /Software updates / Find and Install. -) 点击add button然后在l ...

  6. Docker+Selenium+TestNG+Maven+Jenkins环境搭建

    一.Selenium环境准备 standalone-chrome Docker容器启动: docker pull selenium/standalone-chrome version: '3' ser ...

  7. 我的自动化测试历程(Selenium+TestNG+Java+ReportNG+Jenkins)

    原地址:http://blog.csdn.net/shilinjie_8952/article/details/53380373?locationNum=11&fps=1 测试环境:Java+ ...

  8. Selenium 我的自动化测试历程 (Selenium+TestNG+Java+ReportNG+Jenkins)

    测试环境:Java+Selenium+TestNG,Jenkins持续集成. 测试代码 代码结构 采用页面对象模型(Page Object),减少UI修改后,对代码的影响.   Java编写,采用Te ...

  9. 接口自动化测试框架【windows版】:jmeter + ant + jenkins

    为了提高回归效率及保证版本质量,很多公司都在做自动化测试,特别是接口自动化.接口自动化测试框架很多,有写代码的,也有不写代码的,我觉得没有谁比谁好,谁比谁高级之说,只要适用就好. 今天给大家分享一个不 ...

随机推荐

  1. jQuery模仿人类打字效果插件typetype

    typetype是一款模仿人类打字效果的jQuery插件,typetype非常轻巧,文件不到2K,gzipped压缩后只有578字节,但模仿的效果非常逼真,一字一字的顿出和回删效果,让人惊叹不止,喜欢 ...

  2. 序列化效率比拼——谁是最后的赢家Newtonsoft.Json

    前言:作为开发人员,对象的序列化恐怕难以避免.楼主也是很早以前就接触过序列化,可是理解都不太深刻,对于用哪种方式去做序列化更是随波逐流——项目中原来用的什么方式照着用就好了.可是这么多年自己对于这东西 ...

  3. RapidJSON 代码剖析(一):混合任意类型的堆栈

    大家好,这个专栏会分析 RapidJSON (中文使用手册)中一些有趣的 C++ 代码,希望对读者有所裨益. C++ 语法解说 我们先来看一行代码(document.h): bool StartArr ...

  4. Memcached 服务器端命令

    memcached的基本命令(安装.卸载.启动.配置相关): -p 监听的端口   -l 连接的IP地址, 默认是本机    -d start 启动memcached服务   -d restart 重 ...

  5. css点滴

    1.vertical-align这个属性用于块元素的垂直,居中,行元素用line-height. text-align比如li span时,text-align用于上一句的li的元素时,span才会居 ...

  6. duilib学习 --- 360demo 学习

    我想通过360demo的学习,大概就能把握duilib的一般用法,同时引申出一些普遍问题,和普遍解决方法.并在此分享一些链接和更多内容的深入学习..... 原谅我是一个菜鸟,什么都想知道得清清楚楚.. ...

  7. 使用Fragment创建灵活的用户界面

      什么是Fragment         Fragment的作用像Activity一样,主要用于呈现用户界面,它依附于Activity存在,但比Activity更灵活. 当我们需要创建动态的,多面板 ...

  8. python实现计算器

    计算器功能 实现优先级解析,加减乘除四则运算 自定义小数位精度 实现思想: 先找到最里层括号,根据乘除,加减优先级,调用写好的乘除.加减运算函数算出括号内总值,再将原括号式用所得值替换,此过程循环进行 ...

  9. springmvc请求接收参数的几种方法

    一.通过@PathVariable获取路径中的参数 @RequestMapping(value="user/{id}/{name}",method=RequestMethod.GE ...

  10. 软件开发学习笔记 <二>软件开发模型、Up、Rup、敏捷Up

    软件开发过程(process) 是一个将用户需求转化为软件系统所需要的活动的集合. 软件生命周期(SDLC,Software Devlopment Life Cycle) 软件从孕育.诞生.成长.成熟 ...