基于Jmeter+maven+Jenkins构建性能自动化测试平台

摘要:
1、 目的:为了将相关系统性能测试作为常规测试任务执行,并自动执行无人值守和定时执行,并输出性能测试结果报告和统计数据,基于Jmeter+maven+Jenkins构建了一套性能自动化测试平台。2.环境准备:1.选择一个Linux服务器(可以使用一个或多个,当前为10.0.4.109),安装jmeter(直接提取下载的jmeter zip包以供使用)。作为测试加载机器,JDK版本要求:1.8 jmeter版本

 

一、目的:

为能够将相关系统性能测试做为常规化测试任务执行,且可自动无人值守定时执行并输出性能测试结果报告及统计数据,因此基于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构建性能自动化测试平台》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇二十、异常捕获及处理详解QT TCP/IP下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Selenium Grid + Maven + TestNG + Jenkins 完成Selenium 分布式并发测试

Selenium Grid 是什么?   Selenium Grid 是一个可以方便的让你脚本运行在不同的平台以及不同的浏览器上的一个框架。Selenium Grid 分1和2两个版本,其中Selenium Grid 2的发布还晚于Selenium 2.0,也就是说Selenium Grid 2 并不是和Selenium 2.0 一起发布的,但是Selen...

【环境巡检】使用jmeter+ant+Jenkins+企业微信自动化巡检_ant调用jmeter脚本并生成报告(2)

 一、分析准备  接上文,目前jmeter、jdk等已经准备完成。本文从安装ant及配置相关jmeter配置说起。 二、ant调用jmeter生成报告 1)、安装ant 1、安装包下载 下载地址 http://ant.apache.org/bindownload.cgi,下载后解压到指定位置即可   2、配置环境变量       ANT_HOME 为 a...

Jmeter请求头中添加了Authorization,但是在结果树里面的headers中显示没有获取到token

今天使用jmeter遇到了一个问题,看了大半天没找到原因。 前情回顾:新建了一个user_token文件,文件中存了1个参数token。用csv数据文件设置导入user_token文件,在请求头中Authorization中输入变量${token},但是在结果树中查看发现request headers中并没有获取到Authorization。    但是...

饿了么全链路压测平台的实现与原理

背景 在上篇文章中,我们曾介绍过饿了么的全链路压测的探索与实践,重点是业务模型的梳理与数据模型的构建,在形成脚本之后需要人工触发执行并分析数据和排查问题,整个过程实践下来主要还存在以下问题: 测试成本较高,几乎每个环节都需要人力支撑,费时费力。 由于测试用例较多,涉及的测试机范围较广,手工执行容易犯错,线上测试尤其危险。 记录结果和测试报告极不方便,需要...

Jmeter生成HTML性能测试报告

一、报告生成的两种方式 1、已有jtl文件生成报告 jmeter -g test.jtl -o /html #-g:后面为jtl文件的路径 #-o:后面为生成的html文件存放的路径 2、执行压测过程中生成测试报告 jmeter -n -t test.jmx -l test.jtl -e -o /html #-n:以非GUI模式运行jmeter #-...

jenkins 配置 ssh连接远程服务器并执行相关命令

1、安装 Publish over SSH 插件 2、将将Jenkins所在机子的public_key添加到待部署服务器的root/.ssh/authorized_keys 3、系统管理设置界面拉到底部设置 Publish over SSH设置Passphrase(生成密码的时候输入的密码)、 Key(Private_key) 、ssh server Na...