JmeterAnt构建自动化测试平台

 一、jmeter

jmeter下载地址为:http://jmeter.apache.org/download_jmeter.cgi

下载完成后,解压文件,

加压后,到biin目录下,点击jmeter.bat启动jmeter(如果是linux环境,给jmeter.sh可执行的权限,然后执行jmeter.sh就可以启动jmeter)

安装下载jdk配置环境变量

二、ant

点击进入ant官网,找到下载选项。

http://ant.apache.org/

设置环境变量:

window中设置ant环境变量:

ANT_HOME    D:/ apache-ant-1.9.0

path             D:/ apache-ant-1.9.0/bin(按照其他的教程设置的不对)

classpath      D:/apache-ant-1.9.0/lib

ant验证:win+R  --  cmd

输入如下命令:ant -version

如果出现如下内容,说明安装成功:

三、Jenkins安装

http://jenkins-ci.org下载

点击setup安装

在浏览器输入http://localhost:8080/进行访问

(默认端口是8080,如果端口被占用,修改Jenkins安装目录下的配置文件,Jenkins.xml中httpport=8080,修改为不占用的端口8081)

操作步骤:

1、录制jmeter脚本(此处省略N。。。)

2、将jmeter安装目录下的extras目录中的“ant-jmeter-1.1.1.jar”这个jar放到ant的(安装目录)\lib目录下(关键)

3、配置jmeter的build.xml配置文件(D:\apache-jmeter-3.1\extras\build.xml)

在JMETER目录下新建一个testcase目录,把要运行的脚本放在此目录下,把编辑的新的build文件放在此目录下;在F:\apache-ant-1.9.4\bin目录下也放build文件(反正不知道对不对,刚开始没放的时候死活报错。。。。。就这样吧)

build.xml文件如下

 1 <?xml version="1.0" encoding="UTF8"?>
 2 
 3 <project name="Jmeter-TestCase" default="run" basedir=".">
 4     <tstamp>
 5         <format property="time" pattern="yyyyMMddhhmm" />
 6      </tstamp>
 7 
 8      <!--jmeter目录路径-->
 9      <property name="jmeter.home" value="D:\apache-jmeter-3.1" />
10      <!--jmeter生成报告的路径,二种格式-->
11      <property name="jmeter.result.jtl.dir" value="D:\apache-jmeter-3.1\TestCase\jtl" />
12      <property name="jmeter.result.html.dir" value="D:\apache-jmeter-3.1\TestCase\html" />
13 
14      <!--生成jmeter报告的前缀和定义结果集的路径-->
15      <property name="ReportName" value="TestReport" />
16      <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
17      <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
18      
19     <target name="run">
20          <antcall target="test" />
21          <antcall target="report" />
22      </target>
23      
24      <!--测试脚本-->
25      <target name="test">
26          <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
27          <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
28          <!--声明要运行的脚本-->
29             <testplans dir="D:\apache-jmeter-3.1\TestCase" includes="*.jmx" />
30             <property name="jmeter.save.saveservice.output_format" value="xml"/>
31             <property name="jmeter.save.saveservice.assertion_results" value="all"/>
32             <property name="jmeter.save.saveservice.bytes" value="true"/>
33             <property name="file_format.testlog" value="${format}"/>
34             <property name="jmeter.save.saveservice.response_data.on_error" value="${funcMode}"/>
35          </jmeter>
36      </target>
37 
38          
39     
40      <target name="report">
41          <xslt in="${jmeter.result.jtlName}"
42               out="${jmeter.result.htmlName}"
43               style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" />
44               <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
45          <copy todir="${jmeter.result.html.dir}">
46              <fileset dir="${jmeter.home}/extras">
47                  <include name="collapse.png" />
48                  <include name="expand.png" />
49              </fileset>
50         </copy>
51      </target>
52 
53  </project>

 

jmeter Ant xml 文件

  •   Ant关键元素

  Ant的构建是基于XML编写的,默认名称是build.xml

  project元素是ant构建文件的跟元素,ant构建文件至少包含一个project元素,每个project元素下,可包含多个target元素。

  (1)name属性

    用于指定project元素的名称

  (2)default属性

    用于指定project默认执行时所执行的target的名称

  (3)basedir属性

    用于指定jmeter的基路径的位置,该属性没有指定时,使用ant的构建文件的附目录作为基准目录

  • target元素

   是ant的基本执行单元,她可以包含一个或是多个具体的任务,多个target可以存在相互依赖关系。有    如下属性:

  (1)name属性

  (5)description属性

    是target功能的简单描述和说明

  • property属性

4、cd到进入jmeter的build目录下运行ant(我的是D:\apache-jmeter-3.1\TestCase)

 

生成的报告如下

 

5、 测试报告优化

  用jmeter自带的测试报告得到的测试报告信息并不是很全,这里参考网上的方法,做一个优化

  • 下载下载优化模板 jmeter-results-shanhe-me.xsl,拷贝到jmeter的extras目录中

        href="http://shanhe.me/download.php?file=jmeter.results.shanhe.me.xsl

  • 编辑D:\apache-jmeter-3.1\bin\jmeter.properties文件,设置需要输出的内容为true,并去掉前面的注释符号#,这里全部设置成true

  • 设置build文件的报告模板为优化后的模板jmeter-results-shanhe-me.xsl

 按前面的方式再次用ant构建测试,查看优化后的测试报告

 

6、部署到持续集成平台Jenkins

打开http://localhost:8080/

点击新建-输入项目名称-OK-在构建里面选择invoke_Ant-高级-输入jmeter的build文件的目录

 

 

 基本配置完成:

JOB主页,点击立即构建,执行测试,构建完成即可通过HTML_Report来查看测试结果

 

 继续构建基本完成,另外还 可以配置邮件插件来发送测试报告,设置构建时间来定时自动执行测试  (后续加上)

遇见的问题

1、运行ant的时候总是报错。如下提示java(tm) platform se binary 已停止工作

解决方式:

  • 重新配置jdk的环境变量
  • 我原先安装的是jdk8,还是报错,最后卸载重新安装了jdk7,问题就解决了!!!!!

2、在jenkins构建运行的时候报错:提示Java.exe不是内部程序说明的(其实我也不知道什么鬼啊,以为我成功了,结果卡在这里,各种百度,心酸。。。)

猜测应该是和jdk的环境变量有关系(不要问我怎么猜的。。。。我也不知道)

系统管理-系统设置-全局属性-Environment variables-添加jdk的环境变量

 

失败了这么多,最后才算是成功了

查看控制台的输出---这个和命令行ant run运行输出是一样哒。。。

3、记得安装报告的插件(在jenkines中安装报告的插件,还有其他的不想说了)

终于完成了。。。。。。。。。。

 

转载于:https://www.cnblogs.com/bell1991/p/7260846.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/369801.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

input复选框checkbox默认样式纯css修改

修改之前的样式 修改之后的样式 html <input type"checkbox" name"btn" id"btn1"><label for"btn1">按钮1</label> css input[type"checkbox"]{width:20px;height:20px;display: inline-block;text-al…

c++word书签_「职场必备」干货!WORD办公软件快捷键,小编整理拿走不谢

小编工作时的照片&#xff0c;不上镜CtrlShiftSpacebar创建不间断空格Ctrl -(连字符)创建不间断连字符CtrlB使字符变为粗体CtrlI使字符变为斜体CtrlU为字符添加下划线CtrlShift缩小字号CtrlShift>增大字号CtrlQ删除段落格式CtrlSpacebar删除字符格式CtrlC复制所选文本或对象…

struts.xml 配置

1.ActionSupport是默认的Action类,若某个action节点没有配置class属性&#xff0c;则ActionSupport即为待执行的Action类 2.在手工完成字段验证&#xff0c;显示错误消息&#xff0c;国际化等情况下&#xff0c;推荐继承ActionSupport 3.result是action节点的子节点&#xff0c…

前端学习---css基本知识

css基本知识 我们先看一个小例子&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body><div style"background-color:#2459a2;height:…

mysql 从库_mysql数据库主从配置

在一篇文章《离线安装mysql数据库》,讲解了离线安装mysql数据库的过程&#xff0c;本文将讲解mysql数据库的主从配置方法。mysql数据库进行主从配置后&#xff0c;可以实现数据库的备份、同时应用也可以实现读写分离&#xff0c;提高应用的并发量。1、主从原理从《高性能mysql》…

Java内联虚拟方法调用的性能

总览 动态编译的好处之一是&#xff0c;它能够支持在虚拟方法代码上进行广泛的方法内联。 虽然内联代码可以提高性能&#xff0c;但是代码仍然必须检查类型&#xff08;以防由于优化而更改了类型&#xff09;或在多个可能的实现之间进行选择。 这导致了问题。 通过接口调用的…

.Net Core 部署到 CentOS7 64 位系统中的步骤

建议使用 root 管理员账户操作 1、安装工具 1、apache 2、.Net Core(dotnet-sdk-2.0) 3、Supervisor(进程管理工具&#xff0c;目的是服务器一开机就启动服务器 上发布的ASP.NET Core Web网站) 2、安装apache 在安装apache之前&#xff0c;要先做一件事就是&#xff0c;把当前登…

【模板小程序】 十进制大数相乘(正数、负数、0均可),包含合法性检查

1 /*2 本程序说明&#xff1a;3 4 大数乘法(模拟乘法操作&#xff0c;取其中一个字符串&#xff0c;每一位分别相乘&#xff0c;最后移位加起来)5 6 时间复杂度&#xff1a;O(k1*k2),k1和k2分别为两字符串长度7 空间复杂度&#xff1a;O(1)8 9 */10 11 #include <iostream&g…

mysql更新字符串中某个字符串_mysql更新某个字符串字段的部分内容

如果现在需要Mysql更新字段重部分数据&#xff0c;而不是全部数据&#xff0c;应该采用何种方法呢&#xff1f;下面介绍了两种情况下Mysql更新字段中部分数据的方法&#xff0c;供您参考。Mysql更新字段中部分数据第一种情况&#xff1a;update tab set A concat(substr…

前端学习---html基础知识

HTML基本知识 学习html首先我们先看看HTML本质&#xff1a; web框架本质 我们在学socket&#xff0c;我们创建一个socketserver&#xff0c;然后运行起来&#xff0c;有一个client客户端要连接socket服务端&#xff0c;连接上之后&#xff0c;如果两边都没有close&#xff0…

Java 8最新消息

Java 8的开发再次开始主导新闻。 最近的帖子涵盖了扩展JDK 8的Milestone 7以确保其功能完整&#xff0c;Java 8中现在可用的Date / Time API以及对Java教程的更新以涵盖一些Java 8功能。 扩展JDK 8 M7 马克雷因霍尔德 &#xff08; Mark Reinhold &#xff09;以JDK 8 M6的身份…

插入排序-Java

1.算法描述 假定n是数组的长度&#xff0c; 首先假设第一个元素被放置在正确的位置上&#xff0c;这样仅需从1-n-1范围内对剩余元素进行排序。对于每次遍历&#xff0c;从0-i-1范围内的元素已经被排好序&#xff0c; 每次遍历的任务是&#xff1a;通过扫描前面已排序的子列表&a…

更改mysql数据库存放位置_更改mysql数据库存放位置

由于要做一个数据库的测试,所以选了台虚拟机进行,无奈硬盘分的太小,数据太大. 只能把数据放到新的硬盘上.所以要更改数据库的存储位置.1.新添加块硬盘,分区,挂载到/mysql下,新建lib文件夹.1.1 copy数据库文件, cp -Rp /var/lib/* /mysql/lib/1.2 修改lib权限为mysql. sudo cho…

前端:css

一,css介绍 CSS&#xff08;Cascading Style Sheet&#xff0c;层叠样式表)定义如何显示HTML元素。 当浏览器读到一个样式表&#xff0c;它就会按照这个样式表来对文档进行格式化&#xff08;渲染&#xff09;。 二,CSS语法 1,每个CSS样式由两个组成部分&#xff1a;选择器…

爬虫框架:scrapy

阅读目录 一 背景知识二 同步、异步、回调机制三 高性能一 背景知识 爬虫的本质就是一个socket客户端与服务端的通信过程&#xff0c;如果我们有多个url待爬取&#xff0c;采用串行的方式执行&#xff0c;只能等待爬取一个结束后才能继续下一个&#xff0c;效率会非常低。 需要…

为Openshift + MongoDb应用程序编写验收测试

验收测试用于确定是否满足规范要求。 它应该在与生产环境尽可能相似的环境中运行。 因此&#xff0c;如果您的应用程序已部署到Openshift中&#xff0c;则您将需要一个与生产环境中使用的帐户平行的帐户&#xff0c;以运行测试。 在这篇文章中&#xff0c;我们将为部署到Opensh…

《大道至简》第四章读后感

流于形式的沟通 此章主要概括沟通的方式和方法决定着我们的成败&#xff0c;在软件开发的过程中必然存在着沟通交流&#xff0c;有效的沟通可以达到事半功倍的效果。 在项目开发时&#xff0c;我们肯定需要面对客户&#xff0c;客户的需求就是我们的工作方向&#xff0c;然而我…

CSS 自适应布局

前言 本篇文章将介页面布局中的自适应布局&#xff0c;常见的自适应布局有以下2种&#xff1a;左列固定右列自适应、左右两列固定中间自适应。 1. 左列固定右列自适应布局方案 说明&#xff1a;左列固定右列自适应&#xff0c;也可以为右列固定左列自适应&#xff0c;常见于中…

mysql的表导出er关系图_使用Navicat生成ER关系图并导出的方法

平时管理数据库一般都是用cmd命令提示符&#xff0c;或是IDEA Intellij自带的Data source&#xff0c;使用Navicat比较少。这段时间&#xff0c;由于要对前后端交互的数据结构进行设计&#xff0c;直接写文档联系多表时有些困难&#xff0c;想着如果有关系图就直观很多。想到Na…

pycaffe简明文档

pycaffe简明文档 by ChrisZZ, imzhuofoxmail.com 2018年01月18日19:00:56 说明 caffe的python接口没有官方说明文档&#xff0c;例如查看一个函数的用法&#xff0c;pytorch能查到所有的用法&#xff0c;而pycaffe则需要自行去查看源码。于是手动写了一个很粗糙的文档&#xff…