jenkins持续集成构建
  q2rViTiemRgY 2023年11月02日 55 0


 一、环境准备:

1Jdk1.6 或 以 上 : http://www.oracle.com/technetwork/java/javase/downloads/index.html

命令行输入:java -version,出现如下提示说明安装成功

jenkins持续集成构建_jenkins

2、ANT 下载:http://ant.apache.org/bindownload.cgi

ant 环境变量: ANT_HOME:F:\apache-ant-1.9.4

Path:%ANT_HOME%\bin; CLASSPATH:%ANT_HOME%\lib

命令行输入:ant -v,出现如下提示说明安装成功

jenkins持续集成构建_jenkins_02

3、Jmeter 下载:http://jmeter.apache.org/download_jmeter.cgi

二、Jmeter 脚本:

1、脚本目录:D:\apache-jmeter-2.13\work

jenkins持续集成构建_jenkins_03

2、脚本内容

jenkins持续集成构建_html_04

三、build.xml 代码:

<?xml version="1.0" encoding="UTF-8"?>

<project name="ant-jmeter-test" default="all" basedir="."> <tstamp>

<format property="time" pattern="yyyyMMddhhmm" /> </tstamp>
<property name="encoding" value="UTF-8" />

<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="D:\apache-jmeter-2.13" />
<!-- jmeter 生成 jtl 格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="D:\apache-jmeter-2.13\work\resul

tLog\jtl" />

<!-- jmeter 生成 html 格式的结果报告的路径-->

<property name="jmeter.result.html.dir" value="D:\apache-jmeter-2.13\work\re sultLog\html" />

<!-- 生成的报告的前缀-->
<property name="ReportName" value="TestReport" />
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${Report

Name}${time}.jtl" />
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${Re

portName}${time}.html" />

<target name="all">

<antcall target="test" /> <antcall target="report" /> <antcall target="mail" />

</target>

<target name="test">

<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jme ter.JMeterTask" />

<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}"> <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有 jmeter 脚本--> <testplans dir="D:\apache-jmeter-2.13\work" includes="*.jmx" />

<property name="jmeter.save.saveservice.output_format" value="xml"/> </jmeter>

</target>

<target name="report">
<xslt in="${jmeter.result.jtlName}"

out="${ jmeter.result.htmlName}" style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" />

<!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需 要手动拷贝 -->

<copy todir="${jmeter.result.html.dir}"> <fileset dir="${jmeter.home}/extras">

<include name="collapse.png" />

<include name="expand.png" /> </fileset>

</copy>

</target>
<property name="mail_from" value="邮箱地址" />
<property name="password" value="邮箱登录密码" />
<!--mail_to: 发 送 列 表 , 多 个 之 间 逗 号 间 隔

<property name="mailhost" value="smtp.exmail.qq.com" /> -->

<property name="mail_to" value="接收邮件的邮箱地址" /> <property name="mailport" value="25" />
<property name="mailhost" value="smtp.qq.com" />

<target name="mail">

<loadfile property="report" srcFile="${jmeter.result.htmlName}" encoding=" ${encoding}" />

<mail from="${mail_from}" tolist="${mail_to}" mailport="${mailport}" mailho st="${mailhost}" user="${mail_from}" password="${password}" subject="TestRepo

rt-${ant.project.name}" messagemimetype="text/html"> <message>

本轮构建的结果如下:

${report} </message>

</mail>

<delete file="${jmeter.result.htmlName}" /> </target>

</project>

四、运行脚本:

jenkins持续集成构建_apache_05

 执行结果:

D:\apache-jmeter-2.13\work>ant
Buildfile: D:\apache-jmeter-2.13\work\build.xml

all:

test:
[jmeter] Executing test plan: D:\apache-jmeter-2.13\work\api_2065.jmx ==> D:\

apache-jmeter-2.13\work\resultLog\jtl\TestReport201511090354.jtl
[jmeter] Creating summariser <summary>
[jmeter] Created the tree successfully using D:\apache-jmeter-2.13\work\api_2

065.jmx
[jmeter] Starting the test @ Mon Nov 09 15:54:53 CST 2015 (1447055693166) [jmeter] Waiting for possible shutdown message on port 4445
[jmeter] summary = 1 in 22s = 0.0/s Avg: 21118 Min: 21118 Max: 211

18 Err: 1 (100.00%)
[jmeter] Tidying up ... @ Mon Nov 09 15:55:15 CST 2015 (1447055715021) [jmeter] ... end of run
[jmeter] Executing test plan: D:\apache-jmeter-2.13\work\轨迹分析.jmx ==> D:\

apache-jmeter-2.13\work\resultLog\jtl\TestReport201511090354.jtl
[jmeter] Creating summariser <summary>
[jmeter] Created the tree successfully using D:\apache-jmeter-2.13\work\轨迹

分析.jmx
[jmeter] Starting the test @ Mon Nov 09 15:55:16 CST 2015 (1447055716113) [jmeter] Waiting for possible shutdown message on port 4445
[jmeter] summary = 1 in 0.4s = 2.8/s Avg: 105 Min: 105 Max: 1

05 Err: 0 (0.00%)
[jmeter] Tidying up ... @ Mon Nov 09 15:55:16 CST 2015 (1447055716566) [jmeter] ... end of run

report:
[xslt] Processing D:\apache-jmeter-2.13\work\resultLog\jtl\TestReport201511

090354.jtl to D:\apache-jmeter-2.13\work\resultLog\html\TestReport201511090354. h
tml

[xslt] Loading stylesheet D:\apache-jmeter-2.13\extras\jmeter-results-detai l-report_21.xsl

[copy] Copying 2 files to D:\apache-jmeter-2.13\work\resultLog\html

BUILD SUCCESSFUL Total time: 26 seconds

3、测试报告目录: D:\apache-jmeter-2.13\work\resultLOg\html

jenkins持续集成构建_html_06

四:最后,说一个我在使用过程中碰到一个问题,上面 build.xml 文件第 29 行有 一 句 必 须 要 加 上 : <property name="jmeter.save.saveservice.output_format" value="xml"/>,否则会报如下的错误:

report:
[xslt] Processing

D:\Tools\apache-jmeter-2.13\demo\report\jtl\TestReport201509210923.jtl to D:\Tools\apache-jmeter-2.13\demo\report\html\TestReport201509210923.html

[xslt] Loading stylesheet D:\Tools\apache-jmeter-2.13\extras\jmeter-results-detail-report_21.xsl

[xslt] : Error! 前言中不允许有内容。

[xslt] : Error! com.sun.org.apache.xml.internal.utils.WrappedRuntimeException:

前言中不允许有内容。

[xslt] Failed to process D:\Tools\apache-jmeter-2.13\demo\report\jtl\TestReport201509210923.jtl

因为不加上这一句,生成的.jtl 文件是文本文件不是 xml 文件,使用 xsl 去转换.jtl 文件时就会报错。

五、部署到持续集成平台


部署到持续集成平台可以实现脚本的定时运行,这是接口测试的核心。


这里我们选用了 jenkins,,jenkins 是一个强大的持续集成系统,使用起来也很 简单。

使用步骤如下:

1、 安装 jenkins
把 Jenkins 的 war 包复制到 tomcat 的 webapps 下面

jenkins持续集成构建_jenkins_07

2、启动 tomcat,访问 URL:http://ip:端口/jenkins

注意:请将 jenkins 安装到一个空间比较大的系统盘中。因为 jenkins 运行起 来,生成的文件比较占空间。
出现如下界面说明 jenkins 部署成功

jenkins持续集成构建_apache_08

3、 使用 jenkins

1)注册 jenkins 用户
第一次进入 jenkins 界面需要设置全局安全才能够注册用户

jenkins持续集成构建_jenkins_09

jenkins持续集成构建_apache_10

 点击应用按钮,保存按钮。

保存过后,就可以注册 jenkins 用户了

jenkins持续集成构建_jenkins_11

2)新建一个项目

jenkins持续集成构建_jenkins_12

 

jenkins持续集成构建_apache_13

旧的构建保存了你在一次构建中的所有临时文件,如果构建没有保留的必要,就 勾选丢弃旧的构建,同时设置保持构建天数和保持构建的最大个数两个参数。

注意:三个设置必须同时设置,否则无效

4、 设置定时运行间隔,这里,设置间隔时间为每天 8 点运 行一次

jenkins持续集成构建_html_14

第一个参数代表的是分钟 minute,取值 0~59; 第二个参数代表的是小时 hour,取值 0~23; 第三个参数代表的是天 day,取值 1~31;

第四个参数代表的是月 month,取值 1~12;
最后一个参数代表的是星期 week,取值 0~7,0 和 7 都是表示星期天 特殊格式; * 指所有有效的值 M-N 指定值的范围 M-N/ X 或*/ X 是指以 X 为步长,指定的区域或整个有效范围区间的值 A,B,...,Z 列举多个值 eg.H/15 * * * * 每十五分钟执行一次 H(0-29)/10 * * * * 每小时的 0-29 分内每隔十分钟执 行一次 H 9-16/2 * * 1-5 每个工作日的 9-16 点内每隔两小时执行一次 H H 1,15 1-11 * 1-11 月的每月 1 号和 15 号各执行一次

JENKINS

新建项目流程

通过设置 invoke ant,就可以调用 ant,执行打包过程。在这里,也就是执行生成 测试报告的步骤

jenkins持续集成构建_jenkins_15

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
q2rViTiemRgY