jmeter

一. 性能测试

指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

二jmeter使用

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

安装JAVA环境:JDK1.8下载、安装和环境配置教程 - vkd - 博客园

三. 使用Jmeter测试快速入门

1. 线程组是什么

进程: 一个正在执行的程序对应一个进程

线程: 一个进程有多个执行线程

线程组:  按照线程性质对线程分组。查看任务管理器(爱奇艺有多个)

三者关系: 一个进程有多个线程组,一个线程组有多个线程

2.创建线程组


3.线程组主要包含三个参数:

线程数、准备时长(Ramp-Up Period(in seconds))、循环次数。

 线程数:虚拟用户数。一个虚拟用户占用一个线程。设置多少虚拟用户数在这里也就是设置多少个线程数。

 准备时长(秒):设置的虚拟用户数需要多长时间全部启动。如果线程数为20 ,准备时长为10 ,那么需要10秒钟启动20个线程。也就是每秒钟                                   启动2个线程。

循环次数:每个线程发送请求的次数。如果线程数为20 ,循环次数为100 ,那么每个线程发送100次请求。总请求数为20*100=2000 。如果勾选   了“永远”,那么所有线程会一直发送请求,一直到选择停止运行脚本。

调度器:设置线程组启动的开始时间和结束时间(配置调度器时,需要勾选循环次数为永远)

 持续时间(秒):测试持续时间,会覆盖结束时间

启动延迟(秒):测试延迟启动时间,会覆盖启动时间

 启动时间:测试启动时间,启动延迟会覆盖它。当启动时间已过,手动只需测试时当前时间也会覆盖它。

 结束时间:测试结束时间,持续时间会覆盖它

4.1创建http请求

4.2指定请求域名,请求路径

4.3设置对应的查看内容

 4.4查看表格信息

Sample:每个请求的序号

Start Time:每个请求开始时间

Thread Name:每个线程的名称

Label:Http请求名称

Sample Time:每个请求所花时间,单位毫秒

Status:请求状态,如果为勾则表示成功,如果为叉表示失败。

Bytes:请求的字节数

样本数目:也就是上面所说的请求个数,成功的情况下等于你设定的并发数目乘以循环次数

平均:每个线程请求的平均时间

最新样本:表示服务器响应最后一个请求的时间

偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布

4.5 查看结果树

4.6聚合报告参数说明

lable:对应每一个http请求,显示的是http请求的Name,如百度http请求name为baidu

#Samples:表示这一次的测试中一共发出了多少请求,如上图所示,sougou和baidu的http请求每个都发出30个请求

Average:平均响应时间,指的是所有的请求的平均响应时间,如上图的30个请求的总的响应时间除以30得出的平均响应时间,默认的情况下是单个请求的平均响应时间,但当使用了“事务控制器”时,则以事物为单位显示平均响应时间

Median:中位数,也就是50%用户的响应时间

90%Line:90%用户的响应时间

Min:最小响应时间

Max:最大的响应时间

Error%:本次测试中出现错误的请求的数量/请求的总数,如上图所示,本次的测试中,sougou的http请求66.6%的请求出错,而baidu的请求则没有出错的请求

Throughput:吞吐量,默认情况下表示每秒完成的请求数,如上图所示,每秒完成的请求数分别为6.6个每秒,6.2个每秒

4.7图形结果

样本数目:总共发送到服务器的请求数。

最新样本:代表时间的数字,是服务器响应最后一个请求的时间。

吞吐量:服务器每分钟处理的请求数。

平均值:总运行时间除以发送到服务器的请求数。

中间值:有一半的服务器响应时间低于该值而另一半高于该值。

偏离:表示服务器响应时间变化、离散程度测量值的大小。

四. Jmeter主要组件介绍

测试计划:使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器。

线程组:代表一定数量的并发用户,它可以用来模拟并发用户发送请求。实际的请求内容在Sampler中定义,它被线程组包含。可以在“测试计划->添加->线程组”来建立它,然后在线程组面板里有几个输入栏:线程数、Ramp-Up Period(in seconds)、循环次数,其中Ramp-Up Period(in seconds)表示在这时间内创建完所有的线程。如有8个线程,Ramp-Up = 200秒,那么线程的启动时间间隔为200/8=25秒,这样的好处是:一开始不会对服务器有太大的负载。线程组是为模拟并发负载而设计。

取样器(Sampler):模拟各种请求。所有实际的测试任务都由取样器承担,存在很多种请求。如:HTTP 、ftp请求等等。

监听器:负责收集测试结果,同时也被告知了结果显示的方式。功能是对取样器的请求结果显示、统计一些数据(吞吐量、KB/S……)等。

断言:用于来判断请求响应的结果是否如用户所期望,是否正确。它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试。这个限制对于有效的测试是非常有用的。

逻辑控制器:允许自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。

定时器:负责定义请求(线程)之间的延迟间隔,模拟对服务器的连续请求。

配置元件维护Sampler需要的配置信息,并根据实际的需要会修改请求的内容。

前置处理器和后置处理器负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。

4.1取样器(Http请求)

4.2监听器

4.3循环控制器

4.4事务控制器

4.5断言---检查点

4.6前置处理器和后置处理器

4.7 定时器


五. Jmeter组件参数化

5.1. 参数化是什么

动态的获取并设置数据

5.2. 为什么使用参数化

执行批量操作,批量添加批量删除,人工效率太低

运用程序代替人工获取并设置数据,安全高效

比如:对被测系统的用户名和密码进行参数化,来模拟多个用户同时登录系统

5.3. 参数化实现之用户自定义变量

通过这个功能,能实现多接口共享数据,修改一条即可修改全部

5.4. 参数化实现之CSV Data Set Config

添加CSV Data Set Config

5.5. 使用Jmeter函数助手(文件中不要出现中文):

1、点击 选项-->函数助手 调出函数助手对话框2、选择 _CSVRead 函数(下图第一个框)3、函数参数:1)第一个参数:填写文件路径。2)第二个参数:文件列号是从0开始的,第一列0、第二列1、第三列2、依次类推,然后点击【生成】按钮,则会自动生成我们需要的参数化函数。3)复制生成的参数化函数,copy过程需要使用的地方即可。4)_Random函数是从某数据段随机读取数据替换参数,当需要添加多条数据记录且某些字段需要唯一性时使用。

六. Jmeter正则表达式提取

6.1使用正则提取


字符描述

*匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。

+匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。

?匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 、 "does" 中的 "does" 、 "doxy" 中的 "do" 。? 等价于 {0,1}。

( )标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。

.匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 . 。

构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容

  • 线程组是什么 进程: 一个正在执行的程序对应一个进程 线程: 一个进程有多个执行线程 线程组: 按照线程性质对线程...
    dou527阅读 480评论 0 1
  • JMeter 一、 性能测试 1、 性能测试是什么 基于协议模拟用户发出请求,对服务器形成一定负载,来测试服务器的...
    在摘棉花阅读 339评论 0 0
  • 1 Jmeter安装配置 使用Jmeter前首先要安装JDK,配置JDK环境变量。Jmeter不需要安装,下载后...
    茶小汐阅读 2,919评论 0 8
  • JMeter 一、 性能测试 1、 性能测试是什么 基于协议模拟用户发出请求,对服务器形成一定负载,来测试服务器的...
    零落满身尘埃阅读 292评论 0 0
  • 性能测试 1、广义定义 基于协议模拟用户发出请求,对服务器形成一定负载,来测试服务器的性能指标是否满足要求性能指标...
    王佳豪_7733阅读 410评论 0 0