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. Vue 脱坑记

    问题汇总 Q:安装超时(install timeout) 方案有这么些: cnpm : 国内对npm的镜像版本 /* cnpm website: https://npm.taobao.org/ */ ...

  2. WordPress的SEO插件——WordPress SEO by yoast安装及使用

    插件:WordPress SEO by yoast 使用方法: 做好网站SEO一直是站长们的愿望,说简单也简单,但是说难也难,因为需要注意的地方太多,一个不小心被百度K了你都不知道怎么回事.这里和大家 ...

  3. Perl6多线程1 Thread : new / run

    先看一个小例子: ) { #默认参数 say $name; } sub B(:name($name)) { #默认参数为 any say $name; } A(); A(); B(); B(name ...

  4. selenium只打开一个浏览器窗口

    from selenium.webdriver import Remote from selenium.webdriver.chrome import options from selenium.co ...

  5. Machine Learning系列--TF-IDF模型的概率解释

    信息检索概述 信息检索是当前应用十分广泛的一种技术,论文检索.搜索引擎都属于信息检索的范畴.通常,人们把信息检索问题抽象为:在文档集合D上,对于由关键词w[1] ... w[k]组成的查询串q,返回一 ...

  6. 安装sudo apt-get install ros-kinetic-desktop-full,报错mv: 无法获取'/var/lib/ni/licenses.xml.dpkg-old' 的文件状态(stat): 没有。。。。

    安装sudo apt-get install ros-kinetic-desktop-full,报了一堆错误 mv: 无法获取'/var/lib/ni/licenses.xml.dpkg-old' 的 ...

  7. css给奇数行或偶数行添加指定样式

    odd表示奇数行,even表示偶数行; tr:nth-child(odd); .table-striped > tbody > tr:nth-child(odd) { background ...

  8. javascript sleep方法

    function sleep(numberMillis) {     var now = new Date();     var exitTime = now.getTime() + numberMi ...

  9. beego学习笔记(4):开发文档阅读(2)

    bee工具的安装和使用 bee 工具是一个为了协助快速开发 beego 项目而创建的项目,通过 bee 您可以很容易的进行 beego 项目的创建.热编译.开发.测试.和部署. go get gith ...

  10. 洛谷 P2043质因子分解 题解

    题目传送门 N的范围很小,所以使用O(n2)的算法就能过啦! #include<bits/stdc++.h> using namespace std; ],n; int main(){ c ...