从零开始做一个Jmeter性能测试

安装Jmeter

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

2、解压下载文件,然后将bin目录添加到系统环境变量PATH里。

3、确保已安装java 8

4、点击jmeter bin目录下的ApacheJMeter.jar文件或者在打开本机终端或输入jmeter启动jmeter客户端

Jmeter相关介绍

1、测试计划(TestPlan),运行jmeter测试的一个基本单位

2、线程组(ThreadGroup),类似于loadrunner里的groups

3、逻辑控制器(LogicController),用来定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列

4、 配置元件(ConfigElment),维护Sampler需要的配置信息

5、定时器(Timer),负责定义请求(线程)之间的延迟间隔,模拟对服务器的连续请求

6、前置处理器(Pre Processors),前置处理器常常用来修改请求的设置

7、后置处理器(Post Processors),后置处理器则常常用来处理响应的数据

8、取样器(Sampler),模拟各种请求

9、断言(Assertions),用于来判断请求响应的结果是否如用户所期望,是否正确。它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试。

10、监听器(Listener),负责收集测试结果,同时也被告知了结果显示的方式。功能是对取样器的请求结果显示、统计一些数据(吞吐量、KB/S……)等。

11、工作台WorkBench,可以用来暂存,但是保存后会消失

Jmeter实例(餐饮系统批量上传和批量下载为例)

1、添加一个线程组,这里我们用默认参数

Number of Threads 设置并发数

Ramp-Up Period 设置什么时候启动完

Loop Count 设置迭代次数

2、添加两个Sampler,批量上传和批量下载

配置服务器IP,方法,路径,请求参数

3、由于批量上传的请求数据timemapStr会用到批量下载返回数据中的list,添加一个后置处理器–正则表达式处理器

引用名称:设置正则返回的变量名

正则表达式:()的数据是需要返回的数据

模板:上面如果有多个括号,N>0,$N$代表提取第几个括号里的内容;N=0表示提取所有提取表达式的内容

匹配数组:0代表数据;-1代表所有;N代表第N个匹配到的

缺省值:假如没有匹配到,设置的默认值

4、设置响应断言

支持正则匹配和多个匹配模式

5、添加配置元件和定时器

随机数:上传请求参数里的订单id每次随机生成

固定定时器:每个线程每次迭代时会延迟5000毫秒

CSV Data Set Config:设置终端名称的取值

6、添加监听器,并运行测试:

查看结果树:可以取样器的结果、请求参数、响应数据

聚合报告:主要展示接口名、迭代次数、响应时间参数,错误率,吞吐量,发送的数据量和接收到的数据量

图形结果:显示数据、平均值、中值、偏离、吞吐量

用表格查看结果:显示开始时间,线程名字,接口名,取样器响应时间,请求状态,收到的Bytes,发送的Bytes,延迟,连接时间

概要报表:

与聚合报告报表展示类似

Response Time Graph:响应时间曲线图

Aggregate Graph:聚合曲线图

no GUI 方式运行(建议运行方式)

jmeter -n -t <test JMX file> -l <test log file> -e -o <Path to output folder>
<test log file> 指生成的原生jtl文件

会生成如下图所示的文件

打开index.html,会看到一个html版的测试报告

时间: 2024-11-05 23:38:09

从零开始做一个Jmeter性能测试的相关文章

手把手教你从零开始做一个好看的 APP

前言 从零开始,手把手带你实现一个「专注睡前的 APP」.睡觉之前如果能有一个 APP,能让我们写一写这一天的见闻或者心得,同时又能看一会段子.瞄一会好看的妹子,放松一下疲惫的身心那该多好,这也是我完成这个 APP 的原因.APP 的全部代码我已经分享到?Github?上了,需要的直接 点击这里,如果喜欢的话,麻烦给个 star,谢谢啦. 本文为这一系列文章的总述,如果觉得篇幅过长,请点击下面的连接 手把手教你从零开始做一个好看的 APP - Day one 手把手教你从零开始做一个好看的 AP

《从零开始做一个MEAN全栈项目》(1)

欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 在本系列的开篇,我打算讲一下全栈项目开发的优势,以及MEAN项目各个模块的概览. 为什么选择全栈开发?     对于初学者来说,学习一门新的语言和技术的体验总是让人愉快的,也会满足于掌握了一些新的东西并且解决了一些实际问题.在一个小组中采用全栈开发时,你可以更加有效地把握项目全局概念,这也有利于让你了解项目中的不同模块以及它们之间是如何协同工作的.你会对你们的产品中他人的贡献更加清晰,你也就了解了这款产品如何

《从零开始做一个MEAN全栈项目》(2)

欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习.   上一节简单介绍了什么是MEAN全栈项目,这一节将简要介绍三个内容:(1)一个通用的MEAN项目的技术架构,(2)为什么我们要打造单页应用,(3)本系列项目的技术架构和开发计划.希望通过这三个问题,我们能够对本项目产生一个全局视角. 实现一个常见的MEAN全栈项目的核心就是RESTful API.这个接口通常是用MongoDB, Express, Node.js实现的,而单页应用(SPA)由AngularJ

Jmeter初步使用二--使用jmeter做一个简单的性能测试

经过上一次的初步使用,我们懂得了Jmeter的安装与初步使用的方法.现在,我们使用Jmeter做一个简单的性能测试.该次测试,提交的参数不做参数化处理,Jmeter各元件使用将在介绍在下一博文开始介绍并使用. 首先,打开Jmeter工具,并建立一个测试计划(测试脚本).启动jmeter后,jmeter会自动生成一个空的测试计划,我们可以基于该测试计划建立自己的测试计划. 步骤: 步骤一:添加线程组 一个性能测试请求负载是基于一个线程组完成的.一个测试计划必须有一个线程组.测试计划添加线程组非常简

从零开始学会做一个简单的APP

本人是矿大学信息安全的大三狗,混了两年日子之后幡然醒悟决定做些自己早就想做的事情,学校的联通宽带是按时长收费的,但是每次查询已用时长和所扣费用步骤都十分的繁琐,大二的时候都想着要自己做一个APP来帮助大家减少这些繁琐的步骤,终于拖了半年多才开始做.从只有一点Java基础到最后做出来可用的APP只用了一个星期的时间,以下是干货内容.(其实我就是想来求红包的!如果能拿到红包那就是我学计算机挣来的第一桶金了!) 我们最先要上的是成果图,还有在学校发的帖子:http://tieba.baidu.com/

Jmeter性能测试 入门

Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率. 熟练使用Jmeter后, 能用Jmeter搞定的事情,你就不会使用LoadRunner了. [小坦克Jmeter教程],将会覆盖Jmeter的各个功能,并且会通过丰富的实例,让读者快速掌握Jmeter的各种用法 . 本文将通过一个实际的测试例子, 来讲解Jmeter的基本用法.本文的最后提供了本篇文章的脚本. 不喜欢看文章的同学直接看脚本也能看懂 阅读目录 Jmeter介绍

转:jmeter性能测试---登录百度进行搜索

在做web程序性能测试时,loadrunner和jmeter是两款常用的工具,两者比较起来,jmeter非常轻巧,且开源免费,上手快.这里简单介绍下jmeter的使用,以登录百度进行搜索为例. jmeter运行需要jdk环境,这个不多做介绍.软件界面: 右击“测试计划”,添加一个线程组 线程组界面可以配置线程的数量,“Ramp-Up Period(in seconds):"这个参数是 配置这些线程组在多少时间内完全启动(可以把时间设置长点,这样防止一开始就对服务器造成很大压力),还可以配置循环次

jmeter性能测试—登录百度进行搜索(图解)(一)

在做web程序性能测试时,loadrunner和jmeter是两款常用的工具,两者比较起来,jmeter非常轻巧,且开源免费,上手快.这里简单介绍下jmeter的使用,以登录百度进行搜索为例. jmeter运行需要jdk环境,这个不多做介绍.软件界面: 右击“测试计划”,添加一个线程组 线程组界面可以配置线程的数量,“Ramp-Up Period(in seconds):"这个参数是 配置这些线程组在多少时间内完全启动(可以把时间设置长点,这样防止一开始就对服务器造成很大压力),还可以配置循环次

JMeter性能测试3.0时代之-多维度的图形化HTML报告

在上一篇博客JMeter性能测试3.0时代之-全新JMeter插件管理中我说会写真正的JMeter 3.0新特性,时隔两周,总算在这个周末,暂停其他安排,来继续这个未完成的系列.本文主要介绍JMeter3.0引入的新特性:Dashboard Report,图形化的HTML格式多维度测试报告.借助这个特性,可以很大程度上降低我们搭建基于JMeter的性能测试平台时,在结果展示上的难度,将更多的经历放在后端的平台功能而不是去临时学习前端图表库. 一.为什么谈这个新特性 在JMeter3.0之前,官方