CentOS下搭建自动化测试基础框架:Jenkins+Maven+TestNG+ReportNG
1. 安装JDK
1.1 卸载系统默认已安装的open-jdk
rpm -qa|grep java 查出来openjdk相关的应用,把查出来的所有都要通过下面的命令给卸载掉
rpm -e --nodeps 应用A
rpm -e --nodeps 应用B
再次通过java -version和javac -version来确认openjdk确实已经被删除。
1.2 下载Oracle JDK
根据自己的操作系统下载对应版本的JDK,我的是64位CentOS,所以用的是jdk-8u77-linux-x64.tar.gz.
下载方法:
1、(推荐)在windows下将文件下载下来,通过ssh工具将文件传到linux环境下。
2、使用wget命令下载文件,参考http://blog.csdn.net/bichir/article/details/42522113
1.3 安装JDK
tar -xvzf jdk-8u77-linux-x64.tar.gz -C /opt/jdk18 将tar.gz文件解压到/opt/jdk18下,解压后jdk主目录为/opt/jdk18/jdk1.8.0_77
1.4 配置jdk环境变量
vi /etc/profile,在文件最后加上下面几句话后保存退出:
export JAVA_HOME=/opt/jdk18/jdk1.8.0_77
export JAVA_BIN=$JAVA_HOME/bin
export JAVA_LIB=$JAVA_HOME/lib
export CLASSPATH=.:$JAVA_LIB/tools.jar:$JAVA_LIB/dt.jar
export PATH=$JAVA_BIN:$PATH
运行source /etc/profile是设置立即生效。
1.5 检查JDK是否安装成功
java -version
javac -version
2. 安装maven
2.1. tar -xvf apache-maven-3.3.3-bin.tar.gz -C /opt/下,解压后maven主目录是/opt/apache-maven-3.3.3
2.2. 配置maven环境变量:
vi /etc/profile,在文件最后加上下面几句话后保存退出:
export MAVEN_HOME=/opt/apache-maven-3.3.3
export PATH=${PATH}:${MAVEN_HOME}/bin
运行source /etc/profile是设置立即生效。
2.3. 检查是否安装成功
运行mvn -v
3. 安装jenkins(根据官网说明进行,https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Red+Hat+distributions)
3.1 添加jenkins的源
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
3.2 安装jenkins
sudo yum install jenkins
安装完成之后,产生目录/usr/lib/jenkins,该目录下有一个jenkins.war
jenkins配置文件/etc/sysconfig/jenkins,“端口”,“JENKINS_HOME”等都可以在这里配置。
默认的JENKINS_HOME是/var/lib/jenkins/
Jenkins日志文件是/var/log/jenkins/jenkins.log
3.3 启动jenkins
sudo service jenkins start
如果启动出现错误:“Starting Jenkins -bash: /usr/bin/java: No such file or directory”。
这时就需要“vi /etc/init.d/jenkins”,把java路径加上(如下):
# Search usable Java. We do this because various reports indicated
# that /usr/bin/java may not always point to Java 1.5
# see http://www.nabble.com/guinea-pigs-wanted-----Hudson-RPM-for-RedHat-Linux-td25673707.html
for candidate in /etc/alternatives/java /usr/lib/jvm/java-1.6.0/bin/java /usr/lib/jvm/jre-1.6.0/bin/java /usr/lib/jvm/java-1 .5.0/bin/java /usr/lib/jvm/jre-1.5.0/bin/java /opt/jdk18/jdk1.8.0_77/bin/java
do
[ -x "$JENKINS_JAVA_CMD" ] && break
JENKINS_JAVA_CMD="$candidate"
done
3.4 登录Jenkins
如果没有特别配置端口,使用http://<ip address>:8080/登录Jenkins,并进行相关配置(插件安装、权限配置、View/Job创建等等)。
4. 创建一个maven项目
我是用的windows下得eclipse创建的maven项目,项目中以TestNG组织的测试用例,并用ReportNG作为测试报告样式,POM文件如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.uncommons</groupId>
<artifactId>GridTest</artifactId>
<version>1.0</version> <!-- maven 运行测试name -->
<name>Report_Test</name>
<url>http://maven.apache.org</url> <!-- maven 引用远程库 -->
<repositories>
<repository>
<id>java-net</id>
<url>http://download.java.net/maven/2</url>
</repository>
</repositories> <!-- maven 参数配置,这里引用不同的testng.xml -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<xmlFileName>res/testNg.xml</xmlFileName>
</properties> <pluginRepositories>
<pluginRepository>
<id>apache.snapshots</id>
<url>
http://people.apache.org/repo/m2-snapshot-repository/
</url>
</pluginRepository>
</pluginRepositories> <!-- maven 引用依赖不同的jar -->
<dependencies> <dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server</artifactId>
<version>2.48.2</version>
<scope>test</scope>
</dependency> <dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency> <!-- 依赖testNg -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8.8</version>
<scope>test</scope>
</dependency> <!-- 依赖reportNg 关联testNg-->
<dependency>
<groupId>org.uncommons</groupId>
<artifactId>reportng</artifactId>
<version>1.1.4</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
</exclusion>
</exclusions>
</dependency> <!-- 依赖Guice -->
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>3.0</version>
<scope>test</scope>
</dependency>
</dependencies> <build>
<plugins>
<!-- 添加插件,添加ReportNg的监听器,修改最后的TestNg的报告 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<includes>
<include>**/*Tests.java</include>
<include>Tests*.java</include>
</includes>
<properties>
<property>
<name>usedefaultlisteners</name>
<value>false</value>
</property>
<property>
<name>listener</name>
<value>org.uncommons.reportng.HTMLReporter, org.uncommons.reportng.JUnitXMLReporter</value>
</property>
</properties>
<suiteXmlFiles>
<suiteXmlFile>${xmlFileName}</suiteXmlFile>
</suiteXmlFiles>
<workingDirectory>target/</workingDirectory>
<forkMode>always</forkMode>
</configuration>
</plugin>
</plugins>
</build>
</project>
5. 将maven项目提交到svn
6. 配置Jenkins
使用浏览器打开Jenkins页面,“系统管理”--》“系统设置”
6.1 配置JDK和Maven环境

6.2 新建一个maven项目 “LinuxJenkinsTest1”
6.3 配置该maven项目
6.3.1 配置svn

6.3.2 构建触发器的配置
我配置的jenkins是用来运行测试用例的,我的设计是运行mvn clean compile test

7. 运行完测试之后,将报告以邮件的形式发送给指定邮箱
7.1 构建后执行一个shell脚本,将测试报告目录打包为tar.gz,稍后将该文件通过邮件发送

GenerateReportsForMail.sh内容如下:
#!/bin/bash
tar -zcvf surefirereports.tar.gz target/surefire-reports
7.2 安装Email Extension Plugin
安装完之后,在系统管理下多了一个Extended E-mail Notification,我的配置如下,具体配置请参考Email Extension Plugin的说明书

7.3 在具体的项目中配置

这就是我的配置过程,总算写完了,NND。
CentOS下搭建自动化测试基础框架:Jenkins+Maven+TestNG+ReportNG的更多相关文章
- Centos下搭建 nginx+uwsgi+python
python做web应用最麻烦的还是配置服务器了,此话不假,光中间件就有好几种选择,fastcgi.wsgi.uwsgi,难 免让人眼花缭乱. 而听说uwsgi的效率是fastcgi和wsgi的10倍 ...
- CentOS下搭建LNMP+WordPress+http2.0教程
此文是本人CentOS下搭建WordPress的一些笔记,环境搭建时间::将看过的几篇文章总结下来,形成一条龙长文.不用大家再找来找去. 本文大概分为此几部分: 一.基础命令更新: 二.服务器加速(非 ...
- CentOS下搭建LAMP环境详解
前言:在这里将介绍如何在CentOS下搭建LAMP环境(全部使用源码编译安装),用于web服务器开发. •LAMP: Linux + Apache + PHP + Mysql. •系统: CentOS ...
- 在CentOS下搭建Android 开发环境
在CentOS下搭建Android 开发环境 目录 1.环境搭建 1.1.JDK安装 1.2.Eclipse安装 1.3.ADT安装 1.4.Android SDK安装 1.5.Android NDK ...
- centos下搭建python双版本环境
目录 centos下搭建python双版本环境 一.安装python3 1.理清自带python位置 2.更新用于下载编译python3的相关包 3.安装pip 4.用pip安装wget 5.用wge ...
- Centos下搭建LAMP+PHP
Centos下搭建LAMP+PHP LAMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写: Linux,操作系统 Apache,网页服务器 MariaDB或MySQL,数据库管 ...
- Centos下搭建DNS域名解析服务器
Centos下搭建DNS域名解析服务器 DNS 即Domain Name System(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种机制.其中通过域 ...
- Jenkins + Maven + TestNG参数化调用测试用例
希望实现的场景:Jenkins中的Job可针对不同浏览器,不同环境,运行不同的测试用例集,但测试用例只保持一份. 具体实现的思路:在运行Jenkins Job时传入参数,运行 mvn test 命 ...
- Maven+TestNG+ReportNG/Allure接口自动化测试框架初探(上)
转载:http://www.51testing.com/html/58/n-3721258.html 由于一直忙于功能和性能测试,接口自动化测试框架改造的工作被耽搁了好久.近期闲暇一些,可以来做点有意 ...
随机推荐
- 对接网易云信音视频2.0呼叫组件集成到vue中,实现web端呼叫app,视频语音通话。
项目中需要实现视频通话功能,经过公司的赛选,采用网易云信的视频通话服务,app小伙伴集成很顺利.web端需要实现呼叫app端用户.网易云信文档介绍不全,vue的demo满足不了需求,和客服人员沟通,只 ...
- iNeuOS工业互联网操作系统,增加设备驱动的自定义参数模板,适配行业个性化设备的应用场景
目 录 1. 概述... 2 2. 平台演示... 2 3. 应用过程... 2 1. 概述 增加设备驱动的自定义参数模板,适配行业个性化设备的应用场景. ...
- 初识python 之 爬虫:爬取双色球中奖号码信息
人生还是要有梦想的,毕竟还有python.比如,通过python来搞一搞彩票(双色球).注:此文仅用于python学习,结果仅作参考.用到知识点:1.爬取网页基础数据2.将数据写入excel文件3.将 ...
- Echart可视化学习(一)
文档的源代码地址,需要的下载就可以了(访问密码:7567) https://url56.ctfile.com/f/34653256-527823386-04154f 正文: 创建需要的目录结构及文件 ...
- 解决maven每次更新都编程java1.5
Maven: 每次更新Maven Project ,JAVA 版本都变为1.5 本文转载自:http://www.cnblogs.com/Hxinguan/p/6132446.html 问题: 1.创 ...
- println打印的原理
由于out是System类中的一个不可变的变量 println方法在PrintStream类中 并且在打印都时候都会转换成字符串
- HDURomantic
Problem - 1004 (hdu.edu.cn) 扩展欧几里得解决线性同余方程.先得到gcd的解,再恢复原解,因为知道通解的一般形式,所以通过模来得到最小正整数解.另一个可以通过相减,或者一样的 ...
- IK 分词器
目录 IK 分词器-介绍 IK 分词器-安装 环境准备:Maven 安装 IK 分词器 IK 分词器-使用 IK 分词器-介绍 现有问题:ES 默认对中文分词并不友好,实际上是把中文进行了每个字的分词 ...
- 手把手教你分析解决MySQL死锁问题
在生产环境中如果出现MySQL死锁问题该如何排查和解决呢,本文将模拟真实死锁场景进行排查,最后总结下实际开发中如何尽量避免死锁发生. 一.准备好相关数据和环境 当前自己的数据版本是8.0.22 mys ...
- 【采坑小计】thanos receiver的官方文档中,并未说明tsdb落盘的配置方式
官方文档的地址在:https://thanos.io/tip/components/receive.md/ 一开始以为落盘的时间间隔是:--tsdb.retention=15d 实际测试中发现,tha ...