一、目的:

为能够将相关系统性能测试做为常规化测试任务执行,且可自动无人值守定时执行并输出性能测试结果报告及统计数据,因此基于Jmeter+maven+Jenkins构建了一套性能自动化测试平台

二、环境准备:

1、选定Linux服务器(一台或多台均可,目前为10.0.4.109),安装jmeter(直接解压缩已下载好的jmeter zip包即可使用),做为测试负载机

JDK版本要求:1.8

jmeter版本要求:3.1

启动jmeter测试负载机:

1)进入/data0/java/apache-jmeter-3.1

2)执行start.sh(自己编写一个简单的启动jmeter负载机脚本)

3)启动后可查看日志jmeter-server.log

2、建立一个maven项目(已建立好,项目可通用,只需将调试好的jmeter脚本放置在对应目录下即可)

Teamcode上搜索fangdd/testcode/jmeter-performance-platform

1)将本机调试好的jmeter脚本放置于项目的src/test/jmeter目录下

脚本命名建议:

Xx项目_config_env_xx环,示例:agent_config_env_test.jmx 即表示为经纪人项目测试环境对应jmeter脚本,且启动线程数与运行时长可通过读取jmeter的 user.properties 配置来设置(推荐)

Xx项目_env_xx环,示例:agent_env_test.jmx 即表示为经纪人项目测试环境对应jmeter脚本,且启动线程数与运行时长不可通过配置配置,在脚本中已设置为固定值(不推荐)

2)配置pom(项目中已配置好,可通用,无需重复配置)

3)Jenkins安装Performance plugin插件,用于解析jmeter生成jtl结果文件并生成统计图表

三、关键配置说明:

1、jmeter-maven-plugin插件配置说明

该插件主要用于驱动远程jmeter负载机执行测试

通过命令clean test -Djmeter.jmx=xxx.jmx指定需要执行的jmeter脚本

例:

执行经纪人jmeter性能测试脚本:clean test -Djmeter.jmx=agent_config_env_test.jmx

1)execution配置要执行插件目标命令

2)使用<testFilesIncluded>选择执行用例

3)设置时间戳格式

4)使用<resultsDirectory>指定结果路径,使用<ignoreResultFailures>忽略错误

5)remoteConfig设置远程jmeter负载机列表

2、jmeter-analysis-maven-plugin插件配置说明

该插件主要用于分析jmeter生成测试结果文件,source配置指向jmeter结果文件生成路径,targetDirectory配置解析处理后生成报告存储路径

3、jmeter配置说明:

#number of threads to use

jmeter.threads=50    配置需要启动的线程数

#delay of the test in seconds

jmeter.delay=0       配置启动延时时间,单位:秒

#duration of the test in seconds

jmeter.duration=60    配置运行持续时长,单位:秒

#how long till all threads are up and running in seconds

jmeter.rampup=10    配置所有线程全部启动时长(即所有线程在多长时间内全部启动完毕),单位:秒

四、jmeter脚本关键设置说明及规范:

1、添加用户自定义变量,并设置如下变量值

名称                   值                   描述

threads          ${__P(jmeter.threads,0)}       线程数

delay            ${__P(jmeter.delay,0)}        启动延时(秒)

duration         ${__P(jmeter.duration,0)}      持续时间(秒)

rampup         ${__P(jmeter.rampup,0)}       加压时间(秒)

2、线程组设置中引用如上设置的自定义变量

3、jmeter脚本如需引用第三方jar包或配置文件,且jmeter自带lib下未包含此jar包,则将所需引用jar包与配置文件放置于jmeter  lib/ext目录下即可,然后重新启动jmeter即可自动加载引用

4、可将Jenkins执行完毕后,jmeter生成.jtl结果文件下载至本机,通过jmeter聚合报告监听器浏览查看性能测试数据

1)进入Jenkins对应性能测试项目工作空间如下如所示路径,下载.jtl结果文件至本机

2)启动本机jmeter,添加聚合报告监听器

3)点击“浏览”并选择已下载.jtl文件,即可在本地查看jmeter性能测试报告数据

五、Jenkins添加对应项目性能测试job,可配置定时执行:

具体配置可参考已有项目:http://ci-sz.fangdd.net/job/perfmance/job/agent-perfmance-test/

Jenkins执行jmeter性能测试前,请确认jmeter负载机服务已启动

效果图:

六、参考文档:

Jmeter+maven+Jenkins构建云性能测试平台

http://www.cnblogs.com/zhengah/p/5168338.html

jmeter-maven-plugin使用,以及jmeter与Jenkins集成

http://blog.csdn.net/kittyboy0001/article/details/34109089

https://github.com/afranken/jmeter-maven-plugin-example

基于Jmeter+maven+Jenkins构建性能自动化测试平台的更多相关文章

  1. Jmeter+maven+Jenkins构建云性能测试平台(mark 推荐)

    转自:http://www.cnblogs.com/victorcai0922/archive/2012/06/20/2555502.html Jmeter+maven+Jenkins构建云性能测试平 ...

  2. Jmeter+Ant+Jenkins构建接口自动化测试平台(Windows)

    一.首先先介绍下我的环境: 1. win10系统 2. ant版本:apache-ant-1.10.1(作用:执行脚本,便于后期的持续集成,下载地址:http://ant.apache.org/bin ...

  3. Jmeter+ant+Jenkins构建接口自动化测试时构建失败 提示:Fatal Error! 字符引用 "&#原因

    Jmeter+ant+Jenkins构建接口自动化测试时构建失败 提示:Fatal Error! 字符引用 "&#原因:接口响应数据中有&#

  4. 基于 Jmeter 的 web 端接口自动化测试平台

    简介 基于之前的react+unittest+flask的接口自动化平台开发经验,和趟过的坑,我重新开发了这个接口自动化平台.平台前端采用的antd+dva+umi的antd-pro模板,结合平台业务 ...

  5. Jmeter+ant+Jenkins构建接口自动化测试

    1.已写好jmeter脚本 2.安装ant并将ant-jmeter-1.1.1.jar文件放入ant/lib目录,用于调用jmeter 3.修改jmeter的jmeter.properties文件(将 ...

  6. Jmeter +Maven+jenkins+eclipse 接口自动化测试

    背景: 首先用jmeter录制或者书写性能测试的脚本,用maven添加相关依赖,把性能测试的代码提交到github,在jenkins配置git下载性能测试的代码,配置运行脚本和测试报告,配置运行失败自 ...

  7. 基于 Jmeter 的 web 端接口自动化测试平台(转载)

    框架 功能点 批量导入har包生成接口用例 接口用例分组树形展示 用例编辑失焦自动保存 用例编写提供快捷调试模块 支持多类型参数,json+文本两种校验 支持同一个项目中接口参数传递 提供即时任务+每 ...

  8. 自动化测试框架:jmeter + maven+ jenkins

    原理:jenkins驱动maven执行,maven驱动jmeter执行 前提条件:windows安装了jmeter.maven.tomcat.jenkins 安装方法参考汇总目录中对应的博文:http ...

  9. jmeter+ant+jenkins搭建接口自动化测试环境

    jmeter+ant+jenkins搭建接口自动化测试环境(基于win) 1.jmeter jmeter依赖java运行环境,所以需要提前下载jdk并配置好环境变量 官网下载(http://jmete ...

随机推荐

  1. Detours修改段属性漏洞

    v:* { } o:* { } w:* { } .shape { }p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-botto ...

  2. 【51】java设计模式-工厂设计模式剖析

    工厂设计设计模式的分类: 工厂模式在<Java与模式>中分为三类: 1)简单工厂模式(Simple Factory):不利于产生系列产品: 2)工厂方法模式(Factory Method) ...

  3. ip地址扫描

    自己写的一个ip地址扫描脚本,功能是输入ip地址和掩码,通过ping检测整个网段的ip地址,输出ping的结果. 主要的几个函数如下: 1.ip地址转化为数值,方便计算 ip2num() { ip=$ ...

  4. C#基础随手笔记之基础操作优化

    对数据的查询,删除等基本操作是任何编程语言都会涉及到的基础,因此,研究了一下C#中比较常用的数据操作类型,并顺手做个笔记. List查询时,若是处理比较大的数据则使用HashSet<T>类 ...

  5. SAP BADI的“多次使用”(multiple use)

    SAP中的某些BADI是不允许多用(multiple use)的,即不能同时存在多个活动的增强实施类.如下图中的这种,无论为其创建多少个实施类,都只有活动的那一个会被触发: tips : 业务加载项定 ...

  6. MySql 行转列 存储过程实现

    同学们在使用mysql的过程中,会遇到一个行转列的问题,就是把多条数据转化成一条数据 用多列显示. 方法1. 实现方式用下面的存储过程,表名对应的修改就行. BEGIN declare current ...

  7. Mybatis Generator实现分页功能

    Mybatis Generator实现分页功能 分类: IBATIS2013-07-17 17:03 882人阅读 评论(1) 收藏 举报 mybatisibatisgeneratorpage分页 众 ...

  8. Gradle初探

    (一):创建一个Gradle项目 1. 环境准备 1.1. 先上Gradle官网下载最新版的程序,地址:https://gradle.org/gradle-download/. 1.2. 配置环境变量 ...

  9. jsoup 使用总结1--添加header

    jsoup 使用总结1--添加header 大部分时候,我们使用jsoup解析网页的是否都是直接Jsoup.connect(url); 孰不知,我们可以添加header,例如 Host, Refere ...

  10. [译文]Domain Driven Design Reference(二)—— 让模型起作用

    本书是Eric Evans对他自己写的<领域驱动设计-软件核心复杂性应对之道>的一本字典式的参考书,可用于快速查找<领域驱动设计>中的诸多概念及其简明解释. 其它本系列其它文章 ...