[jmeter]linux下自动测试环境+持续集成ant+jmeter+Apache(httpd)环境搭建与使用
前言:考虑搭建一个接口性能自动化测试平台,时间又比较紧急,所以就现想到了用jenkins+ant+jmeter完成,考虑到在linux环境中本身就可以设置定时任务,暂时该自动化用例还不与项目集成关联,所以先完成ant+jmeter+Apache(httpd)的搭建,这里Apache是为了方便报告读取。
一、环境准备
Apache服务安装:
linux环境中,最好用的安装软件命令,当然是yum莫属(如果其他环境,例如ubuntu请自行用wget)
1、查看httpd包是否可用:# yum list | grep httpd
2、安装Apache:# yum install httpd
ant安装:
下载路径:http://ant.apache.org/bindownload.cgi,界面“Current Release of Ant”目录下找到最新版本即可,这里我用的是apache-ant-1.10.1-bin.zip,下载下来后养成好习惯,MD5校验一下,防止安装包损坏。
安装步骤:
1、上传安装包到linux服务器,并解压安装包,用uzip命令即可;
2、到文件夹目录,将解压后的文件夹挪到opt目录下(根据自己的需求):mv apache-ant-1.10.1 ./opt/
3、配置环境变量:sudo vim /etc/profile,并增加如下设置
export ANT_HOME="/opt/apache-ant-1.10.1" -------这个路径是你安装包路径,请根据实际情况修改
export PATH="${ANT_HOME}/bin":$PATH
4、使配置生效:source /etc/profile
5、安装完成验证:#ant -version

如果显示命令不存在,请查看环境变量是否正确即可。
jmeter安装:
下载路径:http://jmeter.apache.org/download_jmeter.cgi,界面“Binaries”目录下找到最新版本即可,这里我用的是apache-jmeter-3.2.tgz,下载下来后养成好习惯,MD5校验一下,防止安装包损坏。
安装步骤:
1、上传安装包到linux服务器,并解压安装包,用tar -xzvf 命令即可;
2、到文件夹目录,将解压后的文件夹挪到opt目录下(根据自己的需求):mv apache-jmeter-3.2 ./opt/
3、配置环境变量:sudo vim /etc/profile,并增加如下设置
export JMETER="/opt/apache-jmeter-3.2" -------这个路径是你安装包路径,请根据实际情况修改
export CLASSPATH=${JMETER}/lib/ext/ApacheJMeter_core.jar:${JMETER}/lib/jorphan.jar:$JMETER/lib/logkit-2.0.jar:${CLASSPATH}
export PATH=${JMETER}/bin/:${PATH}
4、使配置生效:source /etc/profile
5、安装完成验证:#jmeter -v

如果显示命令不存在,请查看环境变量是否正确即可。
二、报告配置
1、jmeter报告的界面配置文件:/opt/apache-jmeter-3.2/extras/目录下jmeter-results-detail-report_21.xsl和jmeter-results-report_21.xsl
2、报告路径展示等配置文件,可以自行配置,我配置在了testplan里面/opt/apache-jmeter-3.2/testplan/build.xml
<?xml version="1.0" encoding="UTF-8"?> <project name="ant-jmeter-test" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<!-- 需要改成自己本地的jmeter目录-->
<property name="jmeter.home" value="/opt/apache-jmeter-3.2/"/>
<!-- jmeter生成的jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="/opt/apache-jmeter-3.2/testplan/report/jti" />
<!-- jmeter生成的html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="/var/www/html/report/" />
<!-- ʺ生成的报告的前缀-->
<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="run">
<antcall target="test" />
<antcall target="report" />
</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="/opt/apache-jmeter-3.2/testplan/" 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="dateReport" expression="${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>
</project>
三、简单验证
1、执行测试计划:
进入testplan目录,将测试计划传入,执行ant命令即可(标红的是报告名称)

2、查看报告:http://[服务器IP]:[端口]/report/[报告名称].html

page下面那个后面+ 点开是每个请求详情。具体报告还需要优化,待续
四、问题处理
1、执行ant命令之后,报错taskdef class org.programmerplanet.ant.taskdefs.jmeter.JMeterTask cannot be found

解决方案:将JMeter所在目录下的extras子目录里面的ant-JMeter-1.1.1.jar复制到Ant所在目录lib子目录下,再次执行,成功!

[jmeter]linux下自动测试环境+持续集成ant+jmeter+Apache(httpd)环境搭建与使用的更多相关文章
- Linux下Jenkins+git+gradle持续集成环境搭建
Linux下Jenkins+git+gradle持续集成环境搭建 来源:IT165收集 发布日期:2014-08-22 21:45:50 我来说两句(0)收藏本文 一.项目介绍 和 linux ...
- 环境部署(七):linux下Jenkins+Git+JDK持续集成
前面几篇博客介绍了linux下安装Jenkins.Git.JDK以及Git基础教程和Git关联github等内容,这篇博客,介绍下如何在linux服务器中利用它们构建持续集成环境... 一.准备工作 ...
- linux下一个oracle11G DG建立(一个):准备环境
linux下一个oracle11G DG建立(一个):准备环境 周围环境 名称 主库 备库 主机名 bjsrv shsrv 软件版本号 RedHat Enterprise5.5.Oracle 11g ...
- Linux下自动备份MySQL数据库并上传到远程FTP服务器
Linux下自动备份MySQL数据库并上传到远程FTP服务器且删除指定日期前的备份Shell脚本 说明: 1.备份MySQL数据库存放目录/var/lib/mysql下面的xshelldata数据库 ...
- Linux下自动备份Oracle数据库并删除指定天数前的备份
说明: Oracle数据库服务器 操作系统:CentOS IP:192.168.0.198 端口:1521 SID:orcl Oracle数据库版本:Oracle11gR2 具体操作: 1.root用 ...
- Linux下自动清除MySQL日志文件
MySQL运行过程中会生成大量的日志文件,占用不少空间,修改my.cnf文件配置bin-log过期时间,在Linux下自动清除MySQL日志文件 [mysqld] expire-logs-days= ...
- Jmeter接口数据流测试及持续集成部署:(一)Jmeter环境搭建:安装JDK、安装Jmeter、安装Fiddler、安装ant
Jmeter环境搭建 1.安装JDK 官方下载地址:https://www.oracle.com/java/technologies/downloads/ 安装方法:双击jdk安装包,一直下一步安装即 ...
- Windows 环境下进行的jenkins持续集成
一台服务器作为代码仓库,一条服务器做持续集成代码仓库目前常见的github.gitlab.gitee持续集成常用Jenkins 服务器的配置这边都以Windows为例进行介绍 1. 安装Jenkins ...
- Jenkins+Maven+Svn搭建持续集成环境持续集成和自动部署
Jenkins和Hudson有很深的渊源,Jenkins目前更新频繁,目前选用Jenkins为持续集成工具和自动部署 Jenkins的使用有很多的介绍,主要记录如下要点: 192.168.1.240: ...
随机推荐
- 设置 ExpressRoute 和站点到站点并存连接
配置站点到站点 VPN 和 ExpressRoute 共存连接具有多项优势. 可以将站点到站点 VPN 配置为 ExressRoute 的安全故障转移路径,或者使用站点到站点 VPN 连接到不是通过 ...
- MySQL Group Replication配置
MySQL Group Replication简述 MySQL 组复制实现了基于复制协议的多主更新(单主模式). 复制组由多个 server成员构成,并且组中的每个 server 成员可以独立地执行事 ...
- 使用 sar 和 kSar 来发现 Linux 性能瓶颈
作者: Vivek Gite 译者: LCTT qhwdw | sar 命令用用收集.报告.或者保存 UNIX / Linux 系统的活动信息.它保存选择的计数器到操作系统的 /var/log/sa/ ...
- MDT概念说明
转自:http://www.winos.cn/html/21/t-39621.html http://hi.baidu.com/popweb/item/95ea6cf3aea966b5 ...
- UNIX高级环境编程(2)FIle I/O - 原子操作、共享文件描述符和I/O控制函数
引言: 本篇通过对open函数的讨论,引入原子操作,多进程通信(共享文件描述符)和内核相关的数据结构. 还会讨论集中常见的文件IO控制函数,包括: dup和dup2 sync,fsync和fdatas ...
- Apache源码安装--httpd-2.2.34
一.下载源码包 二.将源码包移动/usr/src/目录 三.解压源码包,并进入目录:tar -xzvf httpd-2.2.34.tar.gz,cd httpd-2.2.34 四.安装依赖包:yum ...
- http协议的状态码——400,401,403,404,500,502,503,301,302等常见网页错误代码
http协议的状态码 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态码. 100(继续) 请求者应当继续提出请求.服务器返回此代码表示已收到请求的第一部分,正在等待其余部分. 101( ...
- 数据库学习之中的一个: 在 Oracle sql developer上执行SQL必知必会脚本
1 首先在開始菜单中打开sql developer: 2. 创建数据库连接 点击左上角的加号 在弹出的对话框中填写username和password 測试假设成功则点击连接,记得角色要写SYSDBA ...
- Golang context包解读
Context 通常被译作 上下文 ,一般理解为程序单元的一个运行状态.现场.快照,而翻译中 上下 又很好地诠释了其本质,上下上下则是存在上下层的传递, 上 会把内容传递给 下 . 在Go语言中,程序 ...
- 【转】python中的对象拷贝
转自:https://www.cnblogs.com/bhlsheji/p/5352330.html python中.进行函数參数传递或者返回值时,假设是一般的变量,会拷贝传递.假设是列表或字典则是引 ...