jmeter组件介绍

性能测试

性能测试是什么

广义定义

给予协议模拟用户发出请求,对服务器形成一定负载,来测试服务器的性能的指标是否满足要求性能支出表关注点:时间性能、空间性能性能与页面无关

狭义定义

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


性能测试工具


性能测试工具

jmeter简介

我们为什么使用jmeter

开源、免费、基于java编写、科技城到其他系统可扩展各个功能插件支持接口测试、压力测试等多种功能、支持录制回放、入门简单相较于自己编写框架其他开源工具、有较为完善的ui界面、便于接口测试多平台支持、可在linux、windows、Mac上运行、支持多协议、

jmeter的作用

接口测试、面试说postman、因为方便好用

性能测试jmeter,也可以用postman,但是没有性能指标

数据库测试

jmeter怎么用

Windows下Jmeter下载安装,登录http://jmeter.apache.org/download_jmeter.cgi,根据自己平台,下载对应文件

使用jmeter测试快速入门


线程组是什么

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

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

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

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

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

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

线程数

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

准备时长(秒):

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

循环次数:

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

调度器

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

持续时间(秒)

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

启动延迟(秒)

测试延迟启动时间,会覆盖启动时间

启动时间

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

结束时间

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

创建http请求

指定请求域名,请求路径

一个HTTP请求有着许多的配置参数,下面将详细介绍:

名称:本属性用于标识一个取样器,建议使用一个有意义的名称。

注释:对于测试没有任何作用,仅用户记录用户可读的注释信息。

服务器名称或IP :HTTP请求发送的目标服务器名称或IP地址。

端口号:目标服务器的端口号。

方法:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。

Content encoding :内容的编码方式,默认值为iso8859

路径:目标URL路径(不包括服务器地址和端口)

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需要的配置信息,并根据实际的需要会修改请求的内容。

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

测试计划

1.测试计划就是一个完整的场景

2.“独立运行每个线程组” :勾选以后所有的线程组都是顺序执行的了。一般不勾选,让所有 的线程组并发启动。

3.“函数测试模式” :勾选后会有详细的请求记录,消耗资源,影响客户端性能。一般不勾选。

4.用户定义的变量:全局变量,测试计划上可以添加用户定义的变量。一般添加一些系统常用的配置。如果测试过程中想切换环境,切换配置,一般不建议在测试计划上添加变量

线程组

thread group(线程组)

这个就是我们通常添加运行的线程。通俗的讲一个线程组,可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。

取样器(Http请求)

名称:用于标识一个sample。建议使用一个有意义的名称

注释:对于测试没任何影响,仅用来记录用户可读的注释信息

服务器名称或IP:http请求发送的目标服务器名称或者IP地址,比如http://www.baidu.com

端口号:目标服务器的端口号,默认值为80,可不填

监听器

监听器(Listener)负责收集测试结果,同时也被告知了结果显示的方式。我们常用的包括:聚合报告、查看结果树、用表格查看结果,都支持将结果数据写入文件。其他的添加上去看看就行。聚合报告前面我们介绍过,后面是查看结果树和用表格查看结果的截图。

循环控制器


循环

事务控制器

作用: 事务控制器会生产一个额外的采样器,用来统计该控制器子结点的所有时间。

在线程组下创建事务控制器

断言---检查点

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

两个重要断言:响应断言和JSONAssertion

前置处理器和后置处理器

前置处理器(Pre Processors)和后置处理器(Post Processors)负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。我们主要在动态关联中用到后置处理器的正则表达式提取器

定时器

定时器(Timer)负责定义请求之间的延迟间隔

Jmeter组件参数化

参数化是什么

动态的获取并设置数据

为什么使用参数化

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

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

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

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

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

参数化实现之CSV Data Set Config

添加CSV Data Set Config:

添加界面:

通过这个组件可以动态获取并设置数据,实现批量添加操作

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

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

Jmeter正则表达式提取

使用正则提取

运用Jmeter正则提取器,可以从请求的响应结果中取到需要的内容,从而实现关联。关联是请求与请求之间存在数据依赖关系,需要从上一个请求获取下一个请求需要回传回去的数据

正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

Jmeter脚本录制和压测

在进行测试的时候,可能有好多脚本或者界面需要操作测试,并且有些测试链接需要重复多线程高并发进行测试,我们一般会针对这一些操作,进行一个脚本录制,录制好之后,之后测试就可以在这个基础上进行测试。

Jemeter脚本录制方式

web端:BadBoy脚本录制app端:使用Jmeter自带的代理服务器进行脚本录制

Android手机端脚本录制

前提:电脑和手机在同一网络段上

1、添加http代理服务器

2、在线程中添加录制控制器

3、在http代理服务器中指定录制脚本的路径,默认端口8888

4、查看本地的ip(wifi热点)

5、设置移动端代理,IP和端口号

6、启动点击”ok”

7、打开手机app,抓取接口

8、点击”停止”按钮,结束录制

安装badboy脚本软件

打开badboy软件

badboy脚本录制

点击录制按钮进行脚本录制,完成打开搜狗搜索,搜索测试岗位薪资操作,然后停止,回放,(回放的时候,会因为编码原因导致乱码,需要手动调乱码问题)

添加验证点

验证点的作用就是验证脚本是否按照我们测试的思路执行,判断脚本执行过程中是否存现问题

badboy参数化

所谓参数化,是指请求的某个参数提前设定多个值,在具体请求的时候,去获取提前设定的值,不同的业务场景设置的参数不一致。

导出Jmeter脚本


在Jmeter中导入badboy生成的脚本,验证测试


badboy并发测试

选择tools run background

badboy测试报告

在badboy-->view--->report下可以看到测试报告


















































Jmeter脚本录制和压测

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

推荐阅读更多精彩内容

  • 一. 性能测试 1.性能测试是什么 广泛定义:基于协议模拟用户发出请求,对服务器形成一定负载,来测试服务器的性能指...
    c_dab5阅读 176评论 0 0
  • 一、性能的测试 1.1.1性能测试广义定义 基于协议模拟用户发出请求,对服务器形成一定负载,来测试服务器的性能指标...
    KindYou阅读 285评论 0 0
  • 一. 性能测试 性能测试是什么? 1 广义定义 基于协议模拟用户发出请求,对服务器形成一定负载,来测...
    MouN明星阅读 281评论 0 0
  • 一. 性能测试 1.1. 性能测试是什么 1.1.1 广义定义 基于协议模拟用户发出请求,对服务器形成一定负载,来...
    筱屈阅读 171评论 0 0
  • 一. 性能测试 1.1. 性能测试是什么 1.1.1 广义定义 基于协议模拟用户发出请求,对服务器形成一定负载,...
    BabyQg阅读 422评论 0 0