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

[经验分享] CentOS下搭建自动化测试基础框架:Jenkins+Maven+TestNG+ReportNG

[复制链接]

尚未签到

发表于 2018-1-8 09:11:23 | 显示全部楼层 |阅读模式
  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>  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。    

运维网声明 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-432827-1-1.html 上篇帖子: Jenkins任务启动的后台进程被自动kill 下篇帖子: Jenkins 使用 maven 出现C:\Windows\system32\config\systemprofile的解决
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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