[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: ...
随机推荐
- Oracle EBS AP 已经完全付款的发票仍然可以选择并进行零金额的付款
1>找出相应的发票; SELECT DISTINCT ai.invoice_id, ai.invoice_num invoice_num, pv.segment1 vendor_num, pv. ...
- Maven构建时跳过部分测试
当遇到以下场景: 其他人写的单元测试影响统计结果 一些需要调用外部接口的测试暂不运行 需要在非本机环境上运行一些不回滚的单元测试 则有必要选择以下方法跳过部分测试. 在测试用例前加上注解 @Ignor ...
- 铁乐学python_Day39_多进程和multiprocess模块2
铁乐学python_Day39_多进程和multiprocess模块2 锁 -- multiprocess.Lock (进程同步) 之前我们千方百计实现了程序的异步,让多个任务可以同时在几个进程中并发 ...
- [EffectiveC++]item46:需要类型转换时请为模板定义非成员函数
- [2018HN省队集训D6T2] girls
[2018HN省队集训D6T2] girls 题意 给定一张 \(n\) 个点 \(m\) 条边的无向图, 求选三个不同结点并使它们两两不邻接的所有方案的权值和 \(\bmod 2^{64}\) 的值 ...
- 各版本eclipse的maven配置
1.indgo(3.7) install new software: http://download.eclipse.org/releases/indigo
- kafka 消费者和生产者测试类
pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www. ...
- [Java多线程] LinkedBlockingQueue
java.util.concurrent包下的新类.LinkedBlockingQueue就是其中之一,是一个阻塞的线程安全的队列,底层采用链表实现. LinkedBlockingQueue Link ...
- 豆瓣电影top250爬取并保存在MongoDB里
首先回顾一下MongoDB的基本操作: 数据库,集合,文档 db,show dbs,use 数据库名,drop 数据库 db.集合名.insert({}) db.集合名.update({条件},{$s ...
- java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x8E' for column 'nick' at row 1
java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x8E' for column 'nick' at row 1 mysql报错 ...