JMeter篇02:JMeter内部原理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JMeter篇02:JMeter内部原理相关的知识,希望对你有一定的参考价值。

参考技术A 上一篇文章 ,我们介绍了JMeter的安装。

在使用JMeter这款工具之前,首先要了解JMeter是如何工作的,也就是JMeter的内部原理,理解了原理,我们才能更好地使用工具。

X维度实际上是描述的是不同的组件,这些组件是独立的个体,我们依靠这些组件完成性能测试中负载的模拟,这些组件分别是:

Y维度实际上是对性能测试进行了一个划分,Y1是负责模拟用户请求的部分,Y2是负责验证结果正确的部分,因为这两部分同时需要线程组,所以是相交的。

Z维度只有一个监听器(Listener),监听器用来负责结果的收集,监听器不仅可以放在线程组之内,也可以放在线程组之外,所以监听器与它们是相交的。

JMeter是以线程的方式运行的,通过线程组来驱动多线程运行测试脚本,对被测服务器发起负载,每一个负载机上都可以运行多个线程组。

JMeter的场景运行,基于操作方式,可以分为两种:

基于运行架构,也可以分为两种,即(本地化运行或称单机运行)、远程运行,不论是GUI模式还是非GUI模式,都支持本地运行与远程运行。

远程运行的逻辑是:

JMeter中一个脚本,就是一个测试计划,也是一个管理单元。JMeter的请求模拟、并发数(即设置的线程数,一个线程代表一个虚拟用户)的设置都在脚本文件中一起设置。

至于JMeter中的其他元件,都是为这些要素服务的。

学习完JMeter的基础原理后,我们再来看下JMeter的工作目录,更好地了解JMeter。JMeter的工作目录下主要有以下的文件夹/文件:

本篇文章框架性地介绍了JMeter的组成及运行原理,实际上与大多数的性能测试工具原理上是相似的,比较理论化,虽然这些理论比较枯燥,但这是后续学习JMeter的一个基础,有了理论,才能更好地实践。

JMeter的运行逻辑主要是:

同时JMeter也支持远程运行,弥补单台机器负载不够的情况。

JMeter压力测试教程(入门篇)


JMeter压力测试教程(入门篇)

  1. 前言

  Jmeter 是Apache组织开发的基于Java的压力测试工具,开源并且支持多个操作系统,是一款很好的HTTP测试工具。本篇文章主要的目的是帮助没有接触过Jmeter的人快速上手,迅速掌握Jmeter的基本工程配置流程,并可以使用GUI界面进行基础的测试工作。

  2. 基本测试

  首先打开Jmeter软件。

JMeter压力测试教程(入门篇)

  2.1 添加线程组

  所有的测试工作都是从新建一个线程组开始的。

JMeter压力测试教程(入门篇)

  它的作用其实是为了模拟用户,所以也叫Users。一个线程组模块可以包含多个线程,每个线程代表一个用户,这样可以模拟高并发下的请求,并根据网站的响应信息来判断网站的相关性能。

JMeter压力测试教程(入门篇)

  线程组包含很多属性,目前我们只关注线程属性那一块。其中线程数代表访问的并发数,默认是1。Ramp-Up Period 表示多长时间内容启动所有线程,如果时间很短,会造成网站的瞬间高并发,默认值是1秒。循环次数是表示执行多少次,默认值为1,表示执行一次结束,这里可以勾选永远,让其一直运行下去。

  这些属性暂时不用动,因为还没有将工程配置好,测试工程配置的时候使用单次测试容易排查问题,以后压力测试直接修改该面板的值即可。

  2.2 添加HTTP请求

  因为是HTTP接口,这里添加一个HTTP请求,用来访问网站的API接口。

JMeter压力测试教程(入门篇)

  HTTP请求面板主要的目的是设置测试时候HTTP请求的相关信息,模拟浏览器访问或者其他程序访问后台的相关配置。

JMeter压力测试教程(入门篇)

  该面板主要的配置包括协议、服务器IP、端口、方法、路径和参数等内容,接下来可以将测试样例的相关信息填入。

  1. 请求接口(GET):

  2. 响应信息:

  (json格式的)国家 、省(自治区或直辖市)、市(县)、运营商

  3. 返回数据格式:

  {"code":0,"data":{"ip":"210.75.225.254","country":"\u4e2d\u56fd","area":"\u534e\u5317",

  "region":"\u5317\u4eac\u5e02","city":"\u5317\u4eac\u5e02","county":"","isp":"\u7535\u4fe1",

  "country_id":"86","area_id":"100000","region_id":"110000","city_id":"110000",

  "county_id":"-1","isp_id":"100017"}}

  其中code的值的含义为,0:成功,1:失败。

  因为是GET请求,所以具体内容填写如下:

JMeter压力测试教程(入门篇)

  该接口的参数比较简单,只有一个ip参数,如果复杂的可以添加多个或者直接在路径后面添加也可,例如:/service/getIpInfo.php?ip=xxx.xxx.xxx.xxx。

  2.3 添加结果树

  现在基本配置已经OK,但是这样执行后返回的结果却没有地方查看。为了方便查看结果,这里添加View Results Tree面板,有很多其它的结果查看面板,大家可以自己尝试一下。

JMeter压力测试教程(入门篇)

  结果树主要是观察服务器响应信息,并支持将结果写入文件。

  2.4 添加HTTP镜像服务器

  在运行测试之前,如何验证我们发送的信息是否有误?如何可以理直气壮的告诉别人自己发送的测试请求没有问题?这里推荐添加HTTP镜像服务器进行校验测试。

  HTTP镜像服务器并不是测试组件,而是用来用来校验的非测试组件,具体添加位置在工作台。

JMeter压力测试教程(入门篇)

  添加后,默认端口为8081,如果和你电脑上的端口不冲突,直接开启即可。

JMeter压力测试教程(入门篇)

JMeter压力测试教程(入门篇)

  点击运行按钮进行测试。

JMeter压力测试教程(入门篇)

......

JMeter压力测试教程(入门篇)

 
推荐阅读

点击阅读☞

点击阅读☞

点击阅读☞

点击阅读☞

点击阅读☞


上文内容不用于商业目的,如涉及知识产权问题,请权利人联系小编,我们将立即处理。


点击“阅读原文”,查看全文内容

以上是关于JMeter篇02:JMeter内部原理的主要内容,如果未能解决你的问题,请参考以下文章

jmeter如何使用内部插件监控压测资源信息

JMeter笔记2 | JMeter原理及测试计划要素

Jmeter运行原理

Jmeter 结构原理介绍

第二章:JMeter 工作原理

jmeter之GUI运行原理