Apache Jmeter是针对Java的一款性能测试工具,利用该工具可以实现自动化的批量测试和结果聚合,适合做接口压测。今天就来捋一捋软件安装的一些小细节和使用。

一、安装

Jmeter基于JDK,安装之前确保Java环境变量配置无误。在官网下载最新版本解压后,配置环境变量 JMETER_HOME 为安装目录并将 %JMETER_HOME%\bin 添加到Path中。启动安装目录下/bin/jmeter.bat,稍作等待弹出GUI窗口表明安装成功。需要注意命令行窗口和图形界面关闭任意一个另一个都会关闭。

在命令行窗口中会有一段提示:

======================================================================================================
Don't use GUI mode for load testing !, only for Test creation and Test debugging.
For load testing, use NON GUI Mode:
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
& increase Java Heap to meet your test requirements:
Modify current env variable HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" in the jmeter batch file
Check : https://jmeter.apache.org/usermanual/best-practices.html
======================================================================================================

这一段指的是仅建议用GUI界面进行脚本的创建和测试,如果要运行实际测试,使用命令行执行测试脚本,或编辑jmeter.bat,修改java堆大小相关的参数来满足测试需求。

默认的jmeter GUI使用英语,修改jmeter.properties中 language=zh-CN 可以默认以简体中文启动。

为了方便测试,右键点击jmeter.bat-->发送到桌面快捷方式-->右键快捷方式选择属性-->将目标设置为安装目录\bin\ApacheJMeter.jar,起始位置安装目录\bin,即可建立GUI快捷方式。

二、测试

这里我主要是对接口做压力测试,记录一下过程中遇到的坑和结果分析。

首先建立自己的测试计划。默认的测试计划颜色可能是灰色,此时为禁用状态,右键单击启用否则测试时报错  Error processing org.apache.jmeter.gui.action.Start 。启用后添加线程组,可以配置需要的线程数以及单个线程的循环执行次数,以及线程启动时间Ramp-Up时间。这个时间表示启动全部线程所用时间,为0时表示线程并发,否则线程将以T/N的时间间隔(T为改时间,N为总个数)启动。

接下来是添加具体的任务。这里我添加HTTP请求,填写请求协议、IP、端口号等信息,添加需要的参数值。为了模拟真实情况,请求的参数一般不完全相同,配置方法一般有三种。

  • 用户配置变量:右键HTTP请求——添加——配置元件——用户定义的变量,在参数调用处使用${变量名}调用参数。
  • 函数生成器:选项中的函数助手对话框(或Ctrl+Shift+F1)可以调用Jmeter提供的函数,常用函数之一是_Random,可以生成范围内随机整数。单纯需要随机变量可以添加——配置原件——随机变量,可以对输出格式和随机数种子进行设置。
  • 文件读取:添加——配置元件——CSV数据文件设置,可以将变量存储在CSV表格中,每个变量储存为一列,从文件中按行读取变量并且可以设置循环读取文件直至满足任务需求。

完成任务配置后,添加结果监听器。查看结果树可以对每个线程单词调用结果进行查看,包括请求内容和返回结果,适合进行测试计划的验证;对于压力测试等更多考虑统计性指标的测试,添加聚合报告来查看性能指标。

上图中Label表示请求名,#Samples表示请求次数(线程数*循环次数),Average为平均响应时间,Median、90%Line、95%Line、99%Line分别为对应比例的样本的最长响应时间,Min/Max为总体最小值/最大值,Error%为错误率,Throughput为吞吐量,这里表示为每秒完成的请求数量;Received KB/sec和Sent KB/sec分别表示接收量和发送量的每秒千字节表示。

本次测试的是业务在高并发场景下的运行性能,更侧重于承受上限和平均响应时长,因此没有用到断言。如果有必要,可以添加断言来判断是否获取了期望结果,具体用法等下次实际使用后再做总结。

性能测试工具——Jmeter使用小结(一)的更多相关文章

  1. 1 认识开源性能测试工具jmeter

    典型的性能测试工具主要有2个,Load Runner和jmeter.Load Runner是商业化的,Jmeter是开源的.下面我们认识一下开源性能测试工具jmeter. 1.jmeter是什么? A ...

  2. 性能测试工具 jmeter 分布式压力测试实操

    性能测试工具 jmeter 分布式压力测试实操 本文在Non-GUI Mode下进行,准备好三台有jdk环境,linux操作系统,同一局域网测试机器,运行两台slave,一台master机器,进行分布 ...

  3. 转 1 认识开源性能测试工具jmeter

    1 认识开源性能测试工具jmeter   典型的性能测试工具主要有2个,Load Runner和jmeter.Load Runner是商业化的,Jmeter是开源的.下面我们认识一下开源性能测试工具j ...

  4. 性能测试工具JMeter 基础(六)—— 测试元件: 线程组

    线程组的定义: 线程组是测试计划执行的入口,所有的逻辑控制器和取样器都必须在线程组下,其他的元件根据位置的不同作用域是不同的. 线程组是每个线程都是独立运行测试脚本,一个线程组就等于一个用户,通过多个 ...

  5. Web性能测试工具JMeter

    做Web方面的黑盒测试,也就是功能测试,基本不需要什么测试工具,都是直接打开浏览器访问,点一点界面就行. 现在流行的移动互联网应用,客户端和服务端的开发是分离的,两者开发进度肯定不一样,可能存在服务端 ...

  6. 性能测试工具JMeter

    JMeter介绍     Apache JMeter是Apache组织的开放源代码项目,具有极高的可扩展性,是一个100%纯Java桌面应用,用于压力/性能测试.JMeter可以用于测试静态或者动态资 ...

  7. Tools - 负载性能测试工具JMeter

    JMeter简介 HomePage:http://jmeter.apache.org/ Apache JMeter是Apache组织开发的基于Java的开源负载性能测试工具. 可以用于对服务器.网络应 ...

  8. 性能测试工具Jmeter你所不知道的内幕

    谈到性能测试,大家一定会联想到Jmeter和LoadRunner,这两款工具目前在国内使用的相当广泛,主要原因是Jmeter是开源免费,LoadRunner 11在现网中存在破解版本.商用型性能测试工 ...

  9. 阿里云PTS分享-用性能测试工具JMeter实现基于供应链业务上对于WebSocket 协议的压测

    性能测试PTS(Performance Testing Service)是面向所有技术相关背景人员的云化性能测试工具,孵化自阿里内部平台.有别于传统工具的繁复,PTS以互联网化的交互,面向分布式和云化 ...

随机推荐

  1. 2017ACM暑期多校联合训练 - Team 2 1011 HDU 6055 Regular polygon (数学规律)

    题目链接 **Problem Description On a two-dimensional plane, give you n integer points. Your task is to fi ...

  2. Ubuntu 下 CodeBlocks 修改用户自定义颜色主题 及 更新CodeBlocks到最新版本

    Code::Blocks默认的白色编辑器界面看久了眼睛很累, 所以想换成dark的主题, 眼睛会舒服些. 1. 安装好codeblocks后, 先运行一次, 关闭, 这时程序会提示你是否要保存defa ...

  3. MYSQL的隐式类型转换

    官方文档中是这么说的 当操作者使用不同类型的操作数,操作数类型兼容的出现使 转换.一些 发生隐式转换.例如,MySQL会自动 将数字转换为字符串的必要,反之亦然. 也可以将数字转换为字符串明确 使用( ...

  4. 大数据系列之Hadoop框架

    Hadoop框架中,有很多优秀的工具,帮助我们解决工作中的问题. Hadoop的位置 从上图可以看出,越往右,实时性越高,越往上,涉及到算法等越多. 越往上,越往右就越火…… Hadoop框架中一些简 ...

  5. 记一次java内存溢出的解决过程

    注:本文主要记录这次解决内存溢出问题的过程而不是具体问题. 最近在写一个搜索引擎,使用倒排索引结构进行文档检索,保存索引的基本思想是先将倒排列表保存到内存中一个有序Map里(TreeMap),然后当内 ...

  6. python调用api方式

    1.shell版本 #!/bin/bash #根据api提供商,获取指定时间格式 datestr=`xxx` #根据api提供商,获取指定加盐密码格式 pwdstr=`xxx` curl -s -X ...

  7. PHP 分割字串 Function 的速度比較(substr/sscanf/preg_match)---substr最快!

    固定長度的字串(假設是 06481a63041b578d702f159f520847f8), 要照固定格式做切割, 使用 PHP 要怎麼切會比較快? 註: 要將此字串切成 => 06 / 48 ...

  8. LoadRunner监控Linux的三种方法

    方法一.LR + SiteScope/nmon 方法二.使用rstatd包 1.下载rpc.rstatd-4.0.1.tar.gz 2.解压缩 tar -zxvf rpc.rstatd-4.0.1.t ...

  9. ubuntu下让进程在后台运行

    (1)输入命令: nohup 你的shell命令 & (2)回车,使终端回到shell命令行: (3)使用第二第三条,完全屏蔽掉信号 用disown -h jobspec来使某个作业忽略HUP ...

  10. 长沙理工大学第十二届ACM大赛-重现赛 K - 大家一起来数二叉树吧

    题目描述 某一天,Zzq正在上数据结构课.老师在讲台上面讲着二叉树,zzq在下面发着呆. 突然zzq想到一个问题:对于一个n个节点,m个叶子的二叉树,有多少种形态呐?你能告诉他吗? 对于第一组样例的解 ...