​以下内容亲测,如果不对的地方,欢迎留言指正,不甚感激。^_^祝工作愉快^_^

Jmeter是一个非常好用的压力测试工具。  Jmeter用来做轻量级的压力测试,非常合适,只需要十几分钟,就能把压力测试需要的脚本写好。

压力测试,就是被测试的系统,在一定的访问压力下,看程序运行是否稳定/服务器运行是否稳定(资源占用情况)

比如: 2000个用户同时到一个购物网站购物,这些用户打开页面的速度是否会变慢,或者网站是否会崩溃。

做压力测试,一般要使用工具, 人工是没办法做的。最常用的工具是LoadRunner, 但是LoadRunner毕竟是收费软件,而且使用上也比较复杂。 现在越来越多的人开始使用Jmeter来做压力测试。 免费, 而且使用上非常简单。

一个简单的压力测试步骤:

1. 写脚本

2. 场景设计

3. 使用控制器,来控制模拟多少用户。

4. 使用监听器, 查看测试结果

本章目的让读者学会使用jmeter进行简单的接口测试和压力测试的一些方法。

作为一个Linux新手,在使用jdk时,或许会安装配置多次仍然导致无法使用情况,请按如下步骤一步一步安装并配置

相关软件下载地址

JDK:http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html?ssSourceSiteId=ocomen

JMeter:http://jmeter.apache.org/download_jmeter.cgi

JMeter插件:http://jmeter-plugins.org/downloads/all/

3.1.1 JDK的安装和环境变量配置

1、JDK版本选择

JDK:在作者编写该书时JDK版本已经更新到9(不支持jmeter3),本书就以jdk8版本为例,该版本即可以支持jmeter3也支持最新版jmeter4,如下图:

点击图标2按钮页面跳转到下载页面。

选择Linux版本的tar.gz文件点击下载到指定目录。

如果需要下载早期版本,在JDK下载页面中下拉到页面底部选择早起版本下载链接选在自己需要的版本:

2、查看下载JDK文件

Ubuntu系统下载文件默认放在“下载”目录中,即:

进入下载目录后查看已经下载完成的文件:jdk-8u151-linux-x64.tar.gz

3、安装JDK并配置环境变量

进入终端查看已经下载完成的文件:使用ctr+alt+t打开终端,进入终端。

1)在终端完成如下操作:

root@ranxf:/home/ranxf/下载# tar -zvxf jdk-8u151-linux-x64.tar.gz  # 解压文件到当前目录;

root@ranxf:/opt# tar -zvxf jdk-8u151-linux-x64.tar.gz -C /opt/  # 解压文件到指定目录,加参数-C,在此说明,我喜欢将新安装的文件放置在opt下,可根据个人喜好新建目录。

2)查看解压后的JDK目录:

3)配置环境变量:

进入vim编辑器后,按键盘“i”键为编辑模式,输入上面内容,保存前退出编辑按冒号“:wq”。

让环境变量立即生效:

总结,本节内容主要讲解安装JDK和在Ubuntu中配置jdk的环境变量,同时熟悉Ubuntu系统下的相关操作。

3.1.2 Jmeter的安装和目录解析

1、版本选择:

目前Jmeter版本已经更新到4.0版本了。

核心改进:

  • JMeter现在支持JAVA 9,

  • 新的边界提取元素可用于提供更好的性能提取容易;

  • 新的JSON声明元素可用于在JSON响应中声明;

  • 新的精确的吞吐量计时器元素可以产生具有给定恒定吞吐量的到达;

  • JMS点对点采样器通过读取,浏览和清除选项得到了增强;

  • 新添加的控制器现在默认使用Expression,这是性能最佳的选项。

  • UI也有了改变

有兴趣的同学可以到官网查看更多的内容。

为了在学习过程中,读者能找到更多的资料,本书将采用jmeter3.1版本为例:

到上面下载链接下载二进制文件apache-jmeter-3.1 .tgz到下载目录。

在终端直接解压apache-jmeter-3.1 .tgz到/opt/目录下即可安装成功:

看见以上内容已经安装成功。

2、jmeter目录解析

  • bin 包含启动、配置等相关命令

  • docs 官方本地文档目录

  • extras 辅助库

  • lib 核心库,包含JMeter用到的各种基础库和插件

  • licenses 包含non-ASF软件的许可证

  • printable_docs 可打印版本文档目录

  • LICENSE JMeter许可说明

  • NOTICE JMeter简单信息说明

  • README.mdJMeter官方基本介绍

下面我们重点看一下bin目录

bin目录下我们最关注几个文件:

  • jmeter.properties JMeter核心配置文件,各种配置基本在这完成

  • log4j.conf JMeter日志配置管理

  • jmeter.log JMeter运行日志记录,什么输出信息、警告、报错都在这里进行了记录

  • jmeter.sh linux下jmeter启动文件

  • shutdown.sh Linux下jmeter关闭文件

  • stoptest.sh Linux下jmeter测试停止文件

  • jmeter-server Linux下jmeter服务器模式启动文件

注:每一个.sh文件都对应一个.cmd文件,.cmd是Windows下的对应功能的文件。


3.1.3 Jmeter组件介绍

在jmeter中提供了一系列的不同的组件,每一种组件都提供了某类功能的实现,用于支持性能测试的实施。

学习、研究jmeter之前,深入了解jmeter的基本组件及其作用是必须的。接下来我们开始讨论基于jmetere进行性能测试必须掌握的组件,以便大家逐步掌握jemter的核心基本能力。

下面的几个组件是入门jmeter必须掌握的:

  • Thread Group

线程组是一系列线程的集合,每一个线程代表着一个正在使用应用程序的用户。在jmeter中,每个线程意味着模拟一个真实用户向服务器发起请求。

在jmeter中,线程组组件运行用户设置线程数量、初始化方式等等配置。

例如,如果你设置线程数为100,那么jmeter将创建并模拟测试100个用户请求到服务器端。

Samplers

我们常用的jmeter测试有HTTP、FTP、JDBC协议,以及其他各种支持的协议。

我们已经知道线程组件用于模拟用户请求至服务器端。

如何在线程组件中实现某种请求类型(比如如何发起HTTP请求?)。

我们将如何利用Samplers组件的元素来实现各类请求类型。

我们先看一下在jmeter中Samplers组件已经实现了哪些协议的支持。

HTTP Request

HTTP Request提供了HTTP/HTTPS协议的测试支持能力。

下面我们一起看看HTTP Request元素的基本配置说明,了解下基本的功能。

  • FTP Request

FTP Request元素提供了测试ftp服务器的能力,这个元素让我们能够去测试ftp的上传、下载功能。

下面我们看一下ftp元素的基本配置说明:

  • Listeners

在jmeter中Listeners提供了执行结果生成和显示能力的支持,提供了树形结构、图形结构、表结构和聚合模式。

树形结构:

图形结构:

表结构:

聚合报告:

聚合报告里面的值足以作为测试报告中的值了,期待吧……

  • Configuration

配置元件包含了Samplers下各种Sampler的默认配置设置,如果有配置默认配置,在Sampler下对应的sampler就会使用该默认配置。


3.1.4 jmeter安装插件管理

从http://www.jmeter-plugins.org/install/Install/ 下载插件管理包,如图:

将下载的包放至jmemter解压根目录的lib/ext下即可。插件安装后的内容后期补上,初学者可以进入下一节。

总结

本次就jmeter相关软件的安装和配置及关键配置项进行了说明,大家可以在掌握基本功能后深入的去研究下其他的一些配置,以便进一步的熟悉jmeter的原理和应用,初学者可以暂时不用考虑插件的功能,等待理清jmeter的基本接口测试之后再回头添加插件的一些高级功能。

3.1、Ubuntu系统中jmeter的安装和目录解析的更多相关文章

  1. JMeter的安装和目录解析

    Ubuntu系统中jmeter的安装和目录解析 作为一个Linux新手,在使用jdk时,或许会安装配置多次仍然导致无法使用情况(如无法登录系统等),请按如下步骤一步一步安装并配置 相关软件下载地址 J ...

  2. Linux日常之Ubuntu系统中sendmail的安装、配置、发送邮件

    一. 安装 1. sendmail必须先要安装两个包 (1)sudo apt-get install sendmail (2)sudo apt-get install sendmail-cf 2. u ...

  3. ubuntu系统中的VMware 安装win7 Ghost镜像的几个坑

    1.ghost镜像安装时要先分区 2.分区后要激活 3.VM(虚拟机安装win7 提示 :units specified don't exist, SHSUCDX can't install)解决方法 ...

  4. wireshark在ubuntu系统中的正确安装方法

    以前一直在使用wireshark这个网络工具,最近在用来抓包学习MQTT协议的时候,发现wireshark暂时还未加入对MQTT协议分析的原生支持,网上搜了一下,可以自己用插件的形式扩展wiresha ...

  5. Ubuntu系统中安装RPM格式包的方法

    Ubuntu的软件包格式为deb,而RPM格式的包则是Red Hat 相关系统所用的软件包.当我们看到一个想用的软件包时,如果他是RPM格式,而你的操作系统是Ubuntu,那岂不是很遗憾?其实,在Ub ...

  6. 在Debian/Ubuntu系统中安装*.sh与*.bin文件

    在Debian/Ubuntu系统中安装*.sh与*.bin文件的基本方法.一,安装*.sh文件运行命令行至文件目录下,执行:sudo sh *.sh直接运行在命令行中执行:sudo chmod +x ...

  7. 手把手教你如何在Ubuntu系统中安装Pycharm

    前几天带大家一起安装了Ubuntu14.04系统,没来得及上车的伙伴可以戳这篇文章:手把手教你在VMware虚拟机中安装Ubuntu14.04系统.今天小编带大家一起在Ubuntu14.04中安装Py ...

  8. Ubuntu系统中登陆阿里云服务器的方法

    如果您购买了阿里云服务器,恰巧又在使用Ubuntu操作系统,那么恭喜你来对地方了,今天给大家分享一下如何在Ubuntu中登陆阿里云服务器: 主要使用两款软件:1.SecureCRT:2.SecureF ...

  9. 在 Ubuntu 系统中部署 Git Server

    http://blog.csdn.NET/poisonchry/article/details/11849781 虽然有很多开源的Git仓库,不过并非所有都尽人意,譬如Github,Gitlab等,不 ...

随机推荐

  1. 用SQL语句创建触发器

    --假设XSCJ数据库中增加一新表XS_HIS,表结构和表XS相同,用来存放从XS--表 --中删除的记录.创建一个触发器,当XS表被删除一行,把删除的记录写到日--志表XS_HIS中. CREATE ...

  2. Zabbix-3.0.x使用OneAlert发送告警

    导读 OneAlert 是国内首个 SaaS 模式的云告警平台,集成国内外主流监控/支撑系统,实现一个平台上集中处理所有 IT 事件,提升 IT 可靠性.它能以史上第二快的速度,对事件进行智能的组织. ...

  3. Android TextView使用HTML处理字体样式、显示图片等

    一般情况下,TextView中的文本都是一个样式.那么如何对于TextView中各个部分的文本来设置字体,大小,颜色,样式,以及超级链接等属性呢?下面我们通过SpannableString的具体实例操 ...

  4. 第一个MapReduce的例子

    第一个MapReduce的例子 Hadoop Guide的第一个MapReduce的例子是处理气象数据的(数据来源ncdc),终于跑通了.总结一下步骤,安装hadoop不在本文中介绍 1 数据预处理 ...

  5. dbForge mysql数据库比对

    Comparison选项卡,新建一个表结构比较, (将source库的表结构变化应用到target库) 下面示例中,source用positec_uat,     target用positec_pro ...

  6. jstree的checkbox实例+详解

    jstree的checkbox实例较少,思索后决定进行一下整理,先上代码 $("#filtrate_row").on("loaded.jstree",funct ...

  7. Tips-Windows 10【多桌面视窗】操作

    Windows 10[多桌面视窗] 当你点击任务栏上的“task view”按键时,会在屏幕中间显示你当前正在使用的桌面,你可以点击“添加桌面”来创建一个新的桌面,在这个新的桌面你可以打开其他的应用程 ...

  8. git学习(6)多人协作

    git学习(6)多人协作 当我们从远程仓库克隆的时候,git会自动的把本地的master和远程的master对应起来,并且远程仓库的默认名称是origin 查看远程库的信息 $ git remote ...

  9. oracle脚本执行多条语句报错

    情况一: create table edu_group_parent ( group_id ) primary key not null, group_name ), group_url ), gro ...

  10. python yield的终极解释

    (译)Python关键字yield的解释(stackoverflow): http://stackoverflow.com/questions/231767/the-python-yield-keyw ...