Jmeter使用文档(windows)
1. 安装jdk并配置环境变量
以1.8为例:
(1)安装jdk1.8;
(2)在系统变量里点击新建,变量名填写JAVA_HOME,变量值填写JDK的安装路径“C:\Program Files\Java\jdk1.8.0_40”,环境变量位置如图1

图1
(3)在系统变量里点击新建变量名填写CLASSPATH,变量值填写“.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar”。注意不要忘记前面的点和中间的分号。
(4)在系统变量里找到Path变量,这是系统自带的,不用新建。双击Path,由于原来的变量值已经存在,故应在已有的变量后追加上“;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin”。注意前面的分号。
(5) 在系统的CMD命令提示符下输入"java -version",能看到相应帮助信息,说明jdk安装成功。
2. 安装jmeter并配置环境变量
(1) 安装Jmeter,解压“apache-jmeter-2.11.rar”到c盘根目录下:“C:\apache-jmeter-2.11”。
(2)在用户变量中,新建变量名“JMETER_HOME”,变量值为:“C:\apache-jmeter-2.11;”。
(3)修改“CLASSPATH”,添加: “;%JMETER_HOME%/lib/ext/ApacheJMeter_core.jar;%JMETER_HOME%/lib/logkit-2.0.jar;”若”CLASSPATH”之前为空,则添加“.;%JMETER_HOME%/lib/ext/ApacheJMeter_core.jar;%JMETER_HOME%/lib/logkit-2.0.jar;”
3. 运行jmeter
直接打开 C:\apache-jmeter-2.11/bin/jmeter.bat 即可
4. 测试步骤
(1)添加线程组,如图2

图2
添加完页面如图3:

图3
图中数据含义:每1秒钟跑10个线程,循环10次;即每隔1/10秒钟发送一个请求,共请求100次。
(2)添加HTTP请求

图4
将测试内容正确填写后:
(3)添加头信息管理器,如图6、图7

图6

图7
(4)添加监听器

图8
5.结果分析
(1)聚合报告:

注:这里的Error是指超过30秒的请求数。
图9

图10
聚合报告可通过Save Table Data按钮导出为Excel表格:

图11
(2)查看结果树:
注:运行过程中,“查看结果树”显示对号的返回结果也可能是错误的,统计结果时需要注意;为确保运行结果的正确性,同时需要关注“请求”数据和“响应数据”是否符合预期值。
(3)用表格查看结果:

图14
参数含义:
Sample:每个请求的序号
Start Time:每个请求开始时间
Thread Name:每个线程的名称
Label:Http请求名称
Sample Time:每个请求所花时间,单位毫秒
Status:请求状态,如果为勾则表示成功,如果为叉表示失败。
Bytes:请求的字节数
注:
开测按钮为绿色的右向箭头
在每组开测前,需点击清除按钮将上一组的测试数据清空。

图15
6、随机参数
为避免使用固定参数造成的测试误差,需要将用到的参数随机读取,步骤如下:
右键添加--配置元件--CVS data set config:

图16
然后点击添加的cvs data,做如下配置:

图17
filename 为params.csv文件存放的位置,params.csv可先建一个文本文件,然后更改后缀名即可,里面的数据为一行一个“empId,socialId,sn”,中间用英文逗号隔开,各值不需要加引号,如图18:

图18
http请求的参数设置处改为如下设置:

图19
此时清空上次测试数据,点击“启动”按钮后参数即为params.csv文件里的随机读取值,可从“查看结果树”的“请求”里查看每次发送数据是否是随机的。
7.录制脚本
7.1 通过JMeter自身设置录制脚本
1、创建一个http代理服务器(右键点击“工作台”--->“添加”--->“非测试元件”--->“http代理服务器”)

图20
作如下设置:

图21
2、设置IE浏览器
“internet选项”--->“连接”--->“局域网设置”

图22

图23
3、点击jmeter上的“启动”按钮,打开浏览器输入需要录制web项目地址,jmeter会自动记录IE所访问的一系列页面,访问结束后点击“停止”结束录制,脚本自动出现在jmeter项目下。

图24
7.2通过badboy录制脚本
1、安装并打开人badboy工具,点击工栏目上的红色圆形按钮,在地址栏目中输入被测试项目的地址。

开始访问地址,badboy会记录访问过程,形成脚本。

2、录制完成后,点击工具栏旁边黑色按钮,结束录制;选择“文件”-”Export to Jmeter” 保存文件。

3、打开Jmeter工具,选择“文件”-->“打开”选择刚才保存的文件(.jmx类型),将文件导入进来就可以执行了。

8、jmeter编写自定义Java测试代码进行并发测试
举一个简单的Java自定义测试代码例子,使用Java编译器编写测试代码,实现功能为:在测试前输入任意一个字符串,判断该字符串的长度是否大于5,如果大于则测试结果成功,否则测试结果失败,然后再放到Jmeter中模拟10个用户测试,同时运行这段代码,具体实现如下:
1)打开Java编译器,新建一个项目"TestLength",然后新建包"com.jmeter".
2) 从Jmeter的安装目录lib/ext中拷贝两个文件"ApacheJMeter_core.jar"和"ApacheJMeter_java.jar"到"TestLength"的项目中,然后引入这两个JAR文件.
3) 在"com.jmeter"包中新建类,名字叫"TestLength",不过这个类要继承"AbstractJavaSamplerClient"类,如果项目引入步骤二中的两个文件,就可以找到"AbstractJavaSamplerClient"类了.
4) "TestLength"类在继承"AbstractJavaSamplerClient"类的同时也会继承四个方法,分别是"getDefaultParameters","setupTest","runTest"和"teardownTest"方法.
u getDefaultParameters方法主要用于设置传入的参数;
u setupTest方法为初始化方法,用于初始化性能测试时的每个线程.
u runTest方法为性能测试时的线程运行体;
u teardownTest方法为测试结束方法,用于结束性能测试中的每个线程.
5) 具体实现代码如下.
package com.jmeter;
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.log.Logger;
/**
* Created with IntelliJ IDEA.
* User: tancp
* Date: 15-11-10
* Time: 上午11:12
* To change this template use File | Settings | File Templates.
*/
public class TestLength03 extends AbstractJavaSamplerClient {
//输出到Jmeter控制台的日志类
private Logger log=getLogger();
//运行结果
private SampleResult results;
//Jmeter控制台输入的参数
private String testStr;
//设置传入的参数,可设多个,已设置的参数显示在jmeter参数列表中
public Arguments getDefaultParameters(){
log.info("execute getDefaultParameters!!!!!!");
Arguments params=new Arguments();
//定义一个参数,显示到Jmeter参数列表中,第一个参数为显示名,第二个参数为默认值
params.addArgument("testStr","");
return params;
}
//初始化方法,每个线程执行一次,在测试方法运行前执行
public void setupTest(JavaSamplerContext arg0){
log.info("Execute setupTest......");
results=new SampleResult();
testStr=arg0.getParameter("testStr",""); //初始化
if(testStr!=null&&testStr.length()>0){
results.setSamplerData(testStr);
}
}
//测试执行循环体
public SampleResult runTest(JavaSamplerContext arg0){
log.info("execute runTest$$$$$$");
//用于设置运行结果的成功或失败,如果是"false"则表示结果失败,否则则表示成功
if(testStr.length()<5){
log.info("fail......");
results.setSuccessful(false);
}else{
log.info("Success@@@@@@");
results.setSuccessful(true);
}
return results;
}
//结束方法,实际运行时每个线程仅执行一次,在测试方法运行结束后执行
public void teardownTest(JavaSamplerContext arg0){
log.info("execute teardownTest######");
}
}
6) 把上面的例子打包,然后把生成的"TestLength.jar"文件拷贝到Jmeter的安装目录lib/ext下.
7) 打开bin\jmeter.bat运行Jmeter,进入Apache Jmeter控制台。
添加一个线程组。
然后在该线程组下面添加一个Java请求(在Sampler中)

图25
在Java请求的类名称中选择咱们刚创建的类"com.jmeter.TestLength",在下面参数列表的"testStr"后面输入要测试的字符串,然后添加一个监听器(聚合报告)。

图25
设置一下模拟的用户数就可以测试了.如果测试不成功,Jmeter会在它自己输出框中抛出这个字符串.
8)查看日志(包含jmeter自身日志和自定义java程序的日志),日志位置如图:

图26
日志信息如图:

图27
注:此日志文件每次关闭jmeter时都会格式化
附
术语含义:
1、线程组:测试里每个任务都要线程去处理,所有我们后来的任务必须在线程组下面创建。可以在“Test Plan(鼠标右击) -> 添加 ->Threads(Users) -> 线程组”来建立它,然后在线程组面板里有几个输入栏:线程数、Ramp-Up Period(in seconds)、循环次数,其中Ramp-Up Period(in seconds)表示在这时间内创建完所有的线程。如有8个线程,Ramp-Up = 200秒,那么线程的启动时间间隔为200/8=25秒,这样的好处是:一开始不会对服务器有太大的负载。
2、取样器(Sampler):可以认为所有的测试任务都由取样器承担,有很多种,如:HTTP请求。
3、断言:对取样器返回的请求结果给出判断是否正确。
4、monitor:它的功能是对取样器的请求结果显示、统计一些数据(吞吐量、KB/S……)等
样本数目:总共发送到服务器的请求数。
最新样本:代表时间的数字,是服务器响应最后一个请求的时间。
吞吐量(throughput ):服务器每分钟处理的请求数。
平均值:总运行时间除以发送到服务器的请求数。
中间值:时间的数字,有一半的服务器响应时间低于该值而另一半高于该值。
偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。
样本数目:也就是上面所说的请求个数,成功的情况下等于你设定的并发数目乘以循环次数。
平均:每个线程请求的平均时间
最新样本:表示服务器响应最后一个请求的时间
偏离:服务器响应时间变化、离散程度测量值的大小,换句话说,就是数据的分布。
Jmeter使用文档(windows)的更多相关文章
- JMeter使用文档
JMeter使用文档 1.JMeter安装步骤 1.1Windows环境 a.安装jdk(对应windows系统位数) http://www.oracle.com/technetwork/java/j ...
- 环境搭建文档——Windows下的Python3环境搭建
前言 背景介绍: 自己用Python开发了一些安卓性能自动化测试的脚本, 但是想要运行这些脚本的话, 本地需要Python的环境. 测试组的同事基本都没有安装Python环境, 于是乎, 我就想直接在 ...
- SOSP 文档 - Windows Azure 存储:具有强一致性的高可用性云存储服务
之前,我们在第 23 届 ACM操作系统原理研讨会 (SOSP)上发布了一篇文章,其中介绍了 Windows Azure存储的内部详细信息. 您可以在此处找到该文章.此次大会还发布了一段视频讲话( ...
- 环境搭建文档——Windows下的Git搭建详解
Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理.具体安装步骤如下: 第一步:先从官网下载最新版本的Git 官网地址:https://git-scm.com/do ...
- 利用ShowDoc自动生成api接口文档
最近在做新项目,感觉写完一个接口 还要去再写一遍api文档 挺浪费时间的,所以借用ShowDoc的api开放功能 自动生成api文档. 首先 去 https://www.showdoc.cc/ 注册一 ...
- Vs2012帮助文档安装介绍
Vs2012的帮助文档:Microsoft Help Viewer.exe,vs2010对应的是1.0,vs2012对应的是2.0,版本号以此类推 与早期的chm格式的msdn帮助文档不同在于: 1. ...
- jmeter_02_目录文档说明
jmeter目录文档说明 bin目录是可执行文件 jmeter.bat 是启动文件 可以启动jmeter. 使用notpad++ 等文本编辑器打开 bat文件 可以配置jvm的参数 比如堆内存[Hea ...
- 在Windows Server 2012中如何快速开关桌面上经典的“计算机、我的文档”等通用图标
我们都知道,在Windows Server 2012系列的服务器版本中都已经引入了Modern的现代界面作为默认的用户交互界面,同时满足视觉一致化,新版的服务器管理程序也做成了扁平化.因此传统的计算机 ...
- 【Windows编程】系列第十一篇:多文档界面框架
前面我们所举的例子中都是单文档界面框架,也就是说这个窗口里面的客户区就是一个文档界面,可以编写程序在里面输入或者绘制文本和图形输出,但是不能有出现多个文档的情况.比如下面的UltraEdit就是一个典 ...
随机推荐
- 正则表达式Pattern ,Matcher
正则表达式:符合一定规则的表达式 作用:用于专门操作字符串 特点:用于一些特定的符号来表示一些代码的操作,这样就简化代码的书写 学习正则表达式就是要学习一些特殊符号的使用 好处:简化对字符串复杂的操作 ...
- Android开发过程中遇到的问题集合(—)
1. Re-installation failed due to different application signatures. 将原来的软件包删除掉,然后又一次安装一次就好了.在命令行上执行:a ...
- linux程序设计——取消一个线程(第十二章)
12.7 取消一个线程 有时,想让一个线程能够要求还有一个线程终止,就像给它发送一个信号一样. 线程有方法能够做到这一点,与与信号处理一样.线程能够被要求终止时改变其行为. pthread_ca ...
- SQL优化的一些总结 SQL编写一般要求
SQL编写一般要求---SQL语句尽可能简单---分解联接保证高并发---同数据类型的列值比较---不在索引列做运算---禁止使用SELECT *---避免负向查询和%前缀模糊查询---保持事务(连接 ...
- Mac 下Versions的 svn无法上传 .a 文件的问题
Xcode自带的svn和Versions以及一些其它工具都默认ignore".a"文件. 解决办法有两个: 方法一:使用命令行添加文件([转]原文在这) 1.打开终端,输入cd,空 ...
- jquery.validate.js 验证表单时,在IE当中未验证就直接提交的原因
jquery.validate.js 验证表单时,在IE当中未验证就直接提交的原因 今天利用了jquery.validate.js来验证表单,发现在火狐.谷歌浏览器当中都可以进行验证,但是在IE系列浏 ...
- 如何从一个1G的文件中找到你所需要的东西
如何从一个1G的文件中找到你所需要的东西,这个问题貌似面试的时候会经常问到.不过不论你用什么语言,肯定逃脱不了按指针读或者按块读. 这里介绍python的用法.本人亲自实验了,速度还可以. 如果你的文 ...
- centos关机与重启命令详解
Linux centos关机与重启命令详解与实战 Linux centos重启命令: 1.reboot 普通重启 2.shutdown -r now 立刻重启(root用户使用) 3.shutdo ...
- dede 文章列表页如何倒序排列
{dede:arclist row='6' typeid='18' orderway='asc'} <li>;<a href="[field:arcurl/]"& ...
- R中导入excel乱码的解决办法
本文操作系统环境为win10,使用Rstdio. 要说明windows下在使用Rstdio的时候,在使用xlsx包,导入excel表乱码的解决办法. 1.我们先安装xlsx包 install.pack ...