利用JMeter进行性能测试

一、JMeter介绍
二、Jmeter安装
三、工作原理
四、脚本录制
五、运行JMeter进行测试
六、JMeter主要组件介绍
七、参数化设置
八、动态数据关联
九、使用插件进行服务器性能监控
十、JMeter中进行分布式测试

一、JMeter介绍

JMeter,一个100%的纯Java桌面应用,它是Apache组织的开放源代码项目,它是功能和性能测试的工具。JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、Java对象、数据库和查询、ftp服务器或者其他资源)。原先Jmemer是为Web/HTTP测试而设计的,但是它已经扩展以支持各种各样的测试模块。它和用于HTTP和SQL数据库(使用JDBC)的模块一起运送。它可以用来测试静止资料库或者活动资料库中的服务器的运行情况,可以用来模拟对服务器或者网络系统加以重负荷以测试它的抵抗力,或者用来分析不同负荷类型下的所有运行情况。它也提供了一个可替换的界面用来定制数据显示,测试同步及测试的创建和执行。

Jmeter的使用说明地址:http://jakarta.apache.org/jmeter/usermanual/index.html

JMeter 的特性:

a) 能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC)。

b) 完全的可移植性和100% 纯Java。

c) 完全 Swing 和轻量组件支持(预编译的JAR使用 javax.swing.*)包。

d) 完全多线程 框架允许通过多个线程并发取样和 通过单独的线程组对不同的功能同时取样。

e) 精心的GUI设计允许快速操作和更精确的计时。

f) 缓存和离线分析/回放测试结果。

g) 高可扩展性

h) 可链接的取样器允许无限制的测试能力。

i) 各种负载统计表和可链接的计时器可供选择。

j) 数据分析和可视化插件提供了很好的可扩展性以及 以及个性化。

k) 具有提供动态输入到测试的功能(包括Javascrīpt)。

l) 支持脚本变成的取样器(在1.9.2及以上版本支持BeanShell)。

二、Jmeter安装

1.先安装JDK

JDK官网下载地址:

http://www.oracle.com/technetwork/java/javase/downloads/index.html

根据自己的需求选择自己想要下载的JDK版本

这边以下载JDK1.8为例

安装JDK

安装JDk的步骤如下:

点击下载的JDK文件jdk-8u181-windows-i586.exe,点击下一步直至安装完成,然后开始配置环境:

点击我的电脑----属性----高级----环境变量----在系统变量中----点击新建,

变量名:JAVA_HOME
变量值:JDK的安装路径,如当前的安装路径是 D:\.XN\Java\JDK\JDK1.8.1
变量名:CALSSPATH
变量值:.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;

找到 path 变量名—>“编辑” 添加(变量之间用";"隔开):可以加在最前面 也可以加在最后面 最后面记得在前面加分号隔开,最前面记得在最后面加上分号隔开。

变量名:PATH
变量值:;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

将path应该添加的路径放在path的最后面,在Windows命令提示符(cmd)下验证 Java 是否成功:
java -version

如果有多个JDK路径的话,JAVA_HOME 的路径改掉就可以,指向你想要使用的JDK路径,所以以后如果要更新JDK的话 不一定需要卸载原先的JDK

安装jmeter是必须安装JDK的。

2.Jmeter官网下载地址:

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

百度搜索Apache JMeter官网,点击进去之后,在页面左侧找到Download标签下的“Download Releases”,点击此标签,页面进入新的页面,点击此页面Binaries标签下的“apache-jmeter-4.0.zip”,下载jmeter,下载后解压文件,

新增环境变量JMETER_HOME,填好路径之后,点击确定,

变量名:JMETER_HOME
变量值:Jmeter的安装路径 D:\.XN\apache-jmeter-4.0
变量名:CLASSPATH
变量值:%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar; 

找到jmeter安装bin目录中的jmeter.bat执行文件,执行,出现以下界面说明执行安装成功。

此时会弹出两个界面,一个是命令窗口,一个是JMeter窗口,意味着JMeter已经安装成功了,执行成功弹出的dos不可关闭

JMeter汉化

方法1:启动Jmeter找到 options ->choose language ->chinese(Simplified),但是设置完重新启动后还会变为默认英文。

方法2:永久汉化

在Jmeter的安装目录下的bin目录中找到 jmeter.properties这个文件,用文本编辑器打开,在#language=en下面插入一行language=zh_CN,这样,Jmeter就默认中文了。

2、更改界面背景:

选项->外观中多种风格可以选,具体颜色可以自行实验,更改外观后Jmeter需要重新启动才能生效。

在Jemter点击.bat之后启动不了,要在电脑的环境变量中增加 path 中增加   ;%SystemRoot%\system32;%SystemRoot%

三、工作原理

JMeter可以作为Web服务器浏览器之间的代理网关,以便捕获浏览器的请求和Web服务器的响应,进而生成性能测试脚本。有了性能测试脚本,JMeter就可以通过线程组来模拟真实用户对Web服务器的访问压力。

 四、脚本录制

①Web脚本录制:利用BadBoy进行脚本录制 利用JMeter的代理服务器功能进行脚本录制。

通过Badboy的官方网站(http://www.badboy.com.au)下载Badboy的最新版本,点击continue

点击“continue”后,就可以看到当前Badboy最新版本下载,对应版本点击download进行下载

安装Badboy。安装过程同一般的Windows 应用程序没有什么区别,安装完成后你可以在桌面和Windows开始菜单中看到相应的快捷方式——如果找不到,可以找一下Badboy安装目录下的Badboy.exe 文件,直接双击启动Badboy; 启动Badboy,你可以看到下面的界面。

在地址栏(图中红色方框标注的部分)中输入你需要录制的Web应用的URL——这里我们以http://www.baidu.com 为例 。

点击 开始录制 按钮(图中蓝色圆圈标注的部分)或者红色的圆形录制按钮开始录制。 开始录制后,你可以直接在Badboy内嵌的浏览器(主界面的右侧)中对被测应用进行操作,

所有的操作都会被记录在主界面左侧的编辑窗口中(图中黄色方框标注的部分)——在这个试验中,我们在baidu的搜索引擎中输入 JMeter 进行搜索。不过录制下来的脚本并不是一行行的代码,而是一个个Web对象——这有点像LoadRunner的VuGen中的Tree View视图; 录制完成后,点击工具栏中的“停止录制”按钮(图中紫色方框标注的部分),完成脚本的录制;

选择“File -> Export to JMeter”菜单,填写文件名“baidu.jmx”,将录制好脚本导出为JMeter脚本格式。

也可以选择“File -> Save”菜单保存为Badboy脚本; 启动JMeter并打开刚刚生成的测试脚本,就可以用JMeter进行测试了。

 

②Web脚本录制:《利用JMeter的代理服务器功能进行Web脚本录制》

jmeter的代理服务器的作用:

Web代理(proxy)服务器是网络的中间实体。 代理位于Web客户端和Web服务器之间,扮演“中间人”的角色。
本来你请求一个网络,是直接你的电脑->你要请求的网站,然后现在加了代理服务器,是先把网络发到代理服务器,那边去处理,你的电脑->代理服务器->你要请求的网站,作用就是可以操作数据

在测试计划中添加线程组,在线程组中添加逻辑控制器-录制控制器。

在工作台中添加非测试元件-HTTP代理服务器。 端口:即代理服务器的监听端口,我们设为8080。

目标控制器选择:使用录制控制器; 分组选择:每个组放入一个新的控制器。 分组: 对请求进行分组。“分组”的概念是将一批请求汇总分组,可以把url请求理解为组。

1.“不对样本分组”:所有请求全部罗列

2.“在组间添加分隔”:加入一个虚拟的以分割线命名的动作,运行同“不对样本分组”,无实际意义

3.“每个组放入一个新的控制器”:执行时按控制器给输出结果

4.“只存储每个组的第一个样本”:对于一次url请求,实际很多次http请求的情况,这个选项很好用,因为我们常常是不关心后面的那些请求的。

App脚本录制:《利用JMeter的代理服务器功能进行app脚本录制》

“测试计划”中添加“线程组”; “工作台”中添加“HTTP代理服务器”;

配置代理服务器:Global Settings下面的端口配置:9988,HTTPS Domains配置:http://10.200.52.88,目标控制器配置:测试计划>线程组(端口:随意设置;

ip:电脑的ip)如右图设置 注意:电脑和手机处于一个局域网。电脑和手机连接共一个WIFI,或者电脑提供热点让手机连接

a、线程组

如果是录制方式打开的jmx脚本默认会场景线程组,如果是手工生成脚本则需要首先添加线程组,右键点击测试计划,选择添加,添加线程组,这里的线程组相当于loadrunner中的用户组。

十、JMeter中进行分布式测试

作为一个纯 JAVA 的GUI应用,JMeter对于CPU和内存的消耗还是很惊人的,所以当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至还会引起JAVA内存溢出的错误。

不过,JMeter也可以像 LoadRunner 一样通过使用多台机器运行所谓的代理来分担负载产生器自身的压力,并借此来获取更大的并发用户数,我们只需手动配置一下即可。

1、在所有期望运行JMeter作为 负载产生器的机器上安装JMeter,并确定其中一台机器作为 控制器,其他的机器作为 代理。然后运行所有 代理 机器上的JMeter-server.bat文件—假定我们使用两台机器172.20.80.47和172.20.80.68作为 代理; 2、在Controller 机器的JMeter安装目录下找到 bin 目录,再找到 jmeter.properties 这个文件,使用记事本或者其他文字编辑工具打开它;

3、在打开的文件中查找“remote_hosts=”这个字符串,你可以找到这样一行“remote_hosts=127.0.0.1”。其中的 127.0..0.1 表示运行JMeter代理的机器,这里需要修改为“remote_hosts=172.20.80.47,172.20.80.68”;

4、保存文件,并重新启动控制器机器上的JMeter,并进入启动 ->远程启动菜单项。就会看到我们刚才添加的两个代理的地址,选中即可运行,如果想同时启动所有代理,选择远程全部启动即可。 要进行分布式测试代理机器上需要添加环境变量,即添加用户变量JMETER_HOME=d:\jmeter,系统变量中的path中添加d:\jmeter\bin(假设jmeter放在d盘根目录下)。

【一】JMeter的介绍安装和使用的更多相关文章

  1. Jmeter系列(2)- Jmeter工具介绍、Jmeter安装目录介绍、Jmeter面板介绍

    如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html Jmeter支持哪些测试场景? Jme ...

  2. 【JMeter】插件安装

    安装插件的方法有两种,一种是传统的方式,即官网下载,本地配置,重启jmeter.现在有一种快捷的方法可以自定义安装插件-插件管理器 JMeter 插件管理器的使用方法很简单:不要手动安装各种插件,它提 ...

  3. JMeter ----与WebDriver安装与测试

    JMeter ----与WebDriver安装与测试 主要内容 JMeter安装 WebDriver安装 一个简单的JMeter+WebDriver示例 环境与参考 jvm版本: 1.8.0_65 j ...

  4. JMeter (1) —— JMeter与WebDriver安装与测试(101 Tutorial)

    JMeter (1) -- JMeter与WebDriver安装与测试(101 Tutorial) 主要内容 JMeter安装 WebDriver安装 一个简单的JMeter+WebDriver示例 ...

  5. 3. 初识jmeter及JDK安装

    jmeter 介绍 Apache JMeter™应用程序是开源软件,100%纯Java应用程序,旨在加载测试功能行为和测量性能.它最初是为测试Web应用程序而设计的,但后来扩展到其他测试功能. Jme ...

  6. 压力测试(二)-Jmeter基本介绍

    1.Jmeter基本介绍和使用场景 简介 1.压测不同的协议和应用 1) Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …) 2) SOAP / RES ...

  7. jmeter学习之安装篇(一)

    一.Jmeter简介 Jmeter是Apache组织开发的基于Java开源项目,设计之初是用于做性能测试的,同时它在实现对各种接口的调用方面做的比较成熟,因此,常被用做接口功能测试和性能测试. Jme ...

  8. 一、jmeter基础介绍及http请求取样器

    jmeter的下载安装这里不再赘述,百度都有, 1.jmeter是以线程的方式来运行的:2.通过非GUI运行对负载机的资源消耗更小:3.控制机.负载机 安装JDK时jdk路径与jmeter路径避免有中 ...

  9. webpack 介绍 & 安装 & 常用命令

    webpack 介绍 & 安装 & 常用命令 webpack系列目录 webpack 系列 一:模块系统的演进 webpack 系列 二:webpack 介绍&安装 webpa ...

随机推荐

  1. StackOverflow: 你没见过的七个最好的Java答案

    StackOverflow发展到目前,已经成为了全球开发者的金矿.它能够帮助我们找到在各个领域遇到的问题的最有用的解决方案,同时我们也会从中学习到很多新的东西.这篇文章是在我们审阅了StackOver ...

  2. 【大数据系统架构师】0.3 MySQL数据库

    1. MySQL的基本操作 2. SQL语句 3. 高级查询 1)聚合函数.分组查询 2)联合查询.连接查询 3)子查询 4. 高级应用 1)视图与索引 2)数据可视化管理 5. 使用JDBC操作数据 ...

  3. python 面向对象十一 super函数

    python 面向对象十一 super函数   super函数用来解决钻石继承. 一.python的继承以及调用父类成员 父类: class Base(object): def __init__(se ...

  4. python中xml解析

    import xml.dom.minidom input_xml_string = '''<root><a>hello</a></root>'''#打开 ...

  5. 【数据结构】单链表&&静态链表详解和代码实例

    喜欢的话可以扫码关注我们的公众号哦,更多精彩尽在微信公众号[程序猿声] 01 单链表(Singly Linked List ) 1.1 什么是单链表? 单链表是一种链式存储的结构.它动态的为节点分配存 ...

  6. 【转】IntelliJ Idea取消Could not autowire. No beans of 'xxxx' type found的错误提示

    1.问题描述 在Idea的spring工程里,经常会遇到Could not autowire. No beans of 'xxxx' type found的错误提示.但程序的编译和运行都是没有问题的, ...

  7. selenium定位不到元素

    selenium定位不到元素时,网上大部分查到都是iFrame的切换问题,然后是多窗口.句柄的处理问题, 在初学是遇到定位不到元素,一直在找上面的问题,发现都不是上面的问题, 后来才发现是页面刷新的问 ...

  8. IIS 配置 url 重写...

    <?xml version="1.0"?> <configuration> <system.webServer> <rewrite> ...

  9. SQL 每行随机产生数字

    Id,Amount) from Customer

  10. Scala 中 for 循环 和 generator 的使用例子

    这个例子是,从每个list中,找到age最大的那个node. class Node(vName: String, vAge: Int) { // Entity class var name: Stri ...