Linux环境下搭建:ANT+JMETER+Jenkins 接口自动化

一、准备环境:

1、下载 JDK1.8

JDK下载地址:https://www.oracle.com/java/technologies/downloads/

# 配置jdk环境变量:
# 下载相应的jdk软件包,然后解压安装,我这里包名称为:
jdk-8u102-linux-x64.tar.gz
[root@localhost ~]# tar -zxvf  jdk-8u102-linux-x64.tar.gz -C /usr/local/ #解压到/usr/local/下面

[root@localhost ~]# vi /etc/profile  最后面加入以下语句:

export JAVA_HOME=/usr/local/jdk1.8.0_102    
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib      
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin
  [root@localhost ~]# source /etc/profile   #使环境变量马上生效
  [root@localhost ~]# java  --version     #查看java版本,看到jdk1.8.0_102版本即代表java jdk安装成功。

2、下载 ANT

ANT下载地址:https://ant.apache.org/bindownload.cgi

# ant环境变量:
# ant包名称为:apache-ant-1.9.14-bin.tar.gz
[root@localhost data]# tar -zxvf apache-ant-1.9.14-bin.tar.gz
# 比如放到:/data/apache-ant-1.9.14
[root@localhost opt]# vi /etc/profile      #加入如下内容
 
export ANT_HOME=/data/apache-ant-1.9.14
export CLASSPATH=$CLASSPATH:$ANT_HOME/lib
export PATH=$ANT_HOME/bin:$PATH:$HOMR/bin [root@localhost ~]# #source /etc/profile   #使环境变量马上生效
[root@localhost apache-jmeter-5.1.1]#ant -v
 命令行输入:ant -v        出现如下提示说明安装成功

3、下载:Jmeter

Jmter下载地址:https://jmeter.apache.org/download_jmeter.cgi

# 配置jmeter环境变量
# Jmeter:apache-jmeter-5.1.1.zip
# 解压到一个目录下面:unzip apache-jmeter-5.1.1.zip
# 比如:/data/apache-jmeter-5.1.1 [root@localhost opt]# vi /etc/profile      #加入如下内容
export JMETER_HOME=/data/apache-jmeter-5.1.1
export CLASSPATH=$CLASSPATH:$JMETER_HOME/lib
export PATH=$JMETER_HOME/bin:$PATH:$HOMR/bin

[root@localhost apache-jmeter-5.1.1]# source /etc/profile

[root@localhost apache-jmeter-5.1.1]#jmeter -v

命令行输入:jmeter –v

# 将 jmeter的extras目录中ant-jmeter-1.1.1.jar包拷贝至ant安装目录下的lib目录中
[root@localhost extras]# cp ant-jmeter-1.1.1.jar /data/apache-ant-1.9.14/lib/
# 修改Jmeter的bin目录下jmeter.properties文件的配置:
[root@localhost bin]# vi jmeter.properties
jmeter.save.saveservice.output_format=xml # 发邮件需要把(activation.jar,commons-email-1.2.jar,mail.jar)这几个jar包放到ant的lib下面

二、Jmeter脚本:

# 脚本目录:可以在jmeter的bin下面新建一个目录,比如为:jmeter_scripts
[root@localhost bin]# mkdir jmeter_scripts # 上传本地的脚本
[root@localhost bin]# cd jmeter_scripts
[root@localhost jmeter_scripts]# rz

三、build.xml代码:

<?xml version="1.0" encoding="UTF-8"?>
<project name="线上接口性能监控" default="all" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<property name="encoding" value="UTF-8" />
<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="/data/apache-jmeter-5.1.1/" />
<property name="report.title" value="线上接口性能监控"/>
<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="${jmeter.home}/work/resultLog/jtl" />
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="${jmeter.home}/work/resultLog/html" />
<!-- 生成的报告的前缀-->
<property name="ReportName" value="TestReport" />
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${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.jmeter.JMeterTask" />
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<!-- 声明要运行的脚本"*.jmx"指包含此目录下的所有jmeter脚本-->
<testplans dir="${jmeter.home}/bin/jmeter_scripts/易捷支付" includes="*.jmx" /> <property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target> <path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path> <target name="report">
<tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp>
<xslt
classpathref="xslt.classpath"
force="true"
in="${jmeter.result.jtlName}"
out="${jmeter.result.htmlName}"
style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl"> <param name="showData" expression="${show-data}"/> <param name="dateReport" expression="${report.datestamp}"/>
<param name="titleReport" expression="${report.title}:${report.datestamp}"/> </xslt> <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
<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="mail_to" value="接收邮件地址" />
<property name="mailport" value="25" />
<!--邮箱需要开通smtp服务-->
<property name="mailhost" value="smtp邮件服务器地址" /> <target name="mail"> <loadfile property="report" srcFile="${jmeter.result.htmlName}" encoding="${encoding}" />
<mail from="${mail_from}" tolist="${mail_to}" mailport="${mailport}" mailhost="${mailhost}" user="${mail_from}" password="${password}" subject="TestReport-${ant.project.name}" messagemimetype="text/html">
<message>
本轮构建的结果如下:
${report}
</message>
</mail>
<delete file="${jmeter.result.htmlName}" />
</target>
</project>

四、运行脚本:

cd进入脚本目录:/data/apache-ant-1.9.14/bin

输入:ant  或  ant -buildfile build.xml,执行结果:

测试结果邮件发送:

五、部署到持续集成平台

部署到持续集成平台可以实现脚本的定时运行,这是接口测试的核心。
这里我们选用了jenkins,jenkins是一个强大的持续集成系统,使用起来也很简单。
使用步骤如下:
1、 安装jenkins
把Jenkins的war包复制到tomcat的webapps下面
 
2、启动tomcat,访问URL:http://ip:端口/jenkins
注意:请将jenkins安装到一个空间比较大的系统盘中。因为jenkins运行起来,生成的文件比较占空间。 3、 用户注册:默认情况下是不启用任何安全策略,即任何人都可以访问页面且有读写权限。比较常用的安全配置方式即安全矩阵。
首先开启用户注册权限,默认情况下,我们在首页点击“系统管理”后,页面上方会有这个提示:
点击“安全设置”,(对应 url: http://ip:8080/configureSecurity/) -“启用安全”,进入下面页面并选择:
 
4、 保存后系统管理中就出现管理用户的选项。页面右上角也会出现登录/注册的选项。 点击注册:
 
5、 安全策略:
点击“系统管理-Configure Global Security” 进入安全设置页面,简单常用的安全策略就是安全矩阵:
 
6、 添加用户之后保存,这个安全矩阵即生效了。至于应该勾选哪些和不勾选哪些,则根据实际需求来决定了  说明 1:
其中: Overall 是全局权限, slave 是集群权限, job,run,view,scm 是业务权限。
其中 overall 中的 read 要勾选,否则用户登陆后什么也看不到。
overall:
Administer:系统管理员权限
read:浏览框架
job:
read:查看 job
build:执行构建
ancel:取消构建
run:
Delete:删除某次构建
Update:编辑某次构建信息
SCM:
Tag:为某次构建在 svm 上打标签。
1、安装完成后,配置一个项目
输入项目名称后,选择第一个选项:构建一个自由风格的软件项目, 同样,按语义理解“复制已有的 Item”只适用于已经创建了类似的项目 2、旧的构建保存了你在一次构建中的所有临时文件,如果构建没有保留的必要,就勾选丢弃旧的构建,同时设置保持构建天数和保持构建的最大个数两个参数。
注意:三个设置必须同时设置,否则无效
 
3、构建触发器,设置定时运行间隔,这里,设置间隔时间为每天8点运行一次
第一个参数代表的是分钟 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号各执行一次
0 10 * * * 每天10点执行一次 4、在构建》添加构建步骤下面,选择invoke ant,这里由于Jenkins和ant在一台机器上面,在build file里面直接填写ant的build.xml路径就可以了

5、 在项目页面,点击“立即构建”按钮,在相关连接页面,可以看到成功或失败的信息

6、 查看报告

ANT+JMETER+Jenkins 接口自动化的更多相关文章

  1. ant+jmeter+jenkins接口自动化测试一

    [Jmeter篇]jmeter+Ant+Jenkins接口自动化测试集成(一) 橙子探索测试发表于橙子探索测试订阅 90 一.简介 1.什么是ant? ant是构建工具,把代码从某个地方拿来,编译,再 ...

  2. ant +jmeter+jenkins接口自动化测试二

    [Jmeter篇]Jmeter+Ant+Jenkins接口自动化测试集成之半路逆转(二) 橙子探索测试发表于橙子探索测试订阅 72 [Jmeter篇]jmeter+Ant+Jenkins接口自动化测试 ...

  3. centos7搭建ANT+jmeter+jenkins接口测试自动化环境

    一.环境准备 因为用到了jmeter和apache-tomcat,centos7必须要有java环境,所以配置jdk和apache-tomcat什么的,就不多说了,自行操作 帮你们偷懒: ant下载地 ...

  4. 持续集成实践---基于ant+jmeter+jenkins接口CI

    背景: 大纲: jmeter入门教程 jenkins入门教程 ant介绍 jmeter+ant脚本自动执行实践 接口测试CI实践

  5. Linux+ant+jmeter+Jenkins接口持续集成自动化框架搭建

    Linux下安装ant并配置环境变量 1.从http://ant.apache.org 上下载tar.gz版ant 2.复制到/usr下 3.tar -vxzf apache-ant-1.10.1-b ...

  6. Jmeter+ant+Jenkins接口自动化框架搭建

    摘自:https://testerhome.com/topics/13389 一.背景  上一篇讲了Jmeter 接口自动化-脚本数据分离实例,我们知道怎么利用Jmeter去编写接口自动化脚本,但是接 ...

  7. 4月27号开学! 第6期《jmeter实战接口自动化+性能》课程,零基础也能学

    2019年 第6期<jmeter实战接口自动化+性能>课程,4月27号开学! 主讲老师:飞天小子 上课方式:QQ群视频在线教学 本期上课时间:4月27号-6月9号,每周六.周日晚上20:0 ...

  8. Python+Pytest+Allure+Git+Jenkins接口自动化框架

    Python+Pytest+Allure+Git+Jenkins接口自动化框架 一.接口基础 接口测试是对系统和组件之间的接口进行测试,主要是效验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系. ...

  9. Jmeter+Ant+Jenkins接口自动化框架

    最近应公司要求,搭建一套接口自动化环境.看到通知邮件,没有多想就确定了Jmeter路线.可能有些人会 说,为啥不用python,相对而言高大上一些.因为公司内部现在项目有用到Jmeter,正好可以结合 ...

  10. jmeter+ant+jenkins接口自动化环境搭建

    一.准备   1.安装jdk  --->点击查看安装教程 2.安装jmeter  ,官网下载jmeter解压,配置jmeter环境: JMETER_HOME (解压jdk路径) Path (;% ...

随机推荐

  1. springboot自带的MD5加密

    //md5DigestAsHex返回的是string类型 DigestUtils.md5DigestAsHex(user.getPassword().getBytes(StandardCharsets ...

  2. linux系统过滤文件,并且通过时间对过滤的文件排序

    命令如下所示: find /home/deep/tf/20220601/study -name '*.h5' |xargs ls -lta

  3. Python语言课程实验报告

    Python语言基础实验 一.实验目的和要求 1.了解Python的基本数据类型: 2.学习了解变量的定义与使用: 3.学会使用Python运算符: 4.掌握数据类型的实际应用. 二.实验环境 软件版 ...

  4. 青少年CTF-Hanser!![wp]

    一 题目描述 二 解题步骤 1. hanser.txt A‌‌​‎‏​‌​‎‏​‏‏‌​‎​‍‌​‍‍​‎‏​‏‏‌​‌‎​‌‏​‏‏‌​‍‏​‎​‏‎​‌‎​‎‍​‍‎​‏‎‎‏nemḍiq-nni ...

  5. springboot文件流下载

    1. 将文件以流的形式一次性读取到内存,通过响应输出流输出到前端 /** * @param path 想要下载的文件的路径 * @param response * @功能描述 下载文件: */ @Re ...

  6. Pytorch之数据处理

    使用TensorDataset和DataLoader来简化   from torch.utils.data import TensorDataset from torch.utils.data imp ...

  7. python菜鸟学习: 15 GUI界面化记事本

    # -*- coding: utf-8 -*-import tkinter as tkdef getNewCreate(): passdef getCharcount1(sss): # 添加字数统 s ...

  8. requests库获取指定关键词的图片,并保存到本地

    var code = "45f4267f-9476-44ca-ac68-6d32aad2d4e1" 源码地址:https://gitee.com/myrensheng/data_a ...

  9. vue中require动态加载图片

    <template> <img src="D:/images/01.png" alt="静态加载"> <img :src=&quo ...

  10. 在C#中Release与Debug的区别小案例

    我们都听说过C#写的代码 Release通常会比Debug性能要好一点跑得快一些. 先普及一些相关基础知识: (1)在CLR中将对sbyte.byte.short.ushort.int.uint.ch ...