性能测试工具-jmeter的使用

实习一段时间了,感到压力,以我目前的水平,还只停留在功能测试上,不能学会性能测试,就永远只能是实习生,不管工作时间多久。目前公司的一个测试流程并不是特别规范,而且对测试的一个要求也不高,所以目前学到的都仅仅只是皮毛。隐隐担忧。。。

不过,我也知道,任何事都是靠自己的,其他事物皆是辅助,所以想要提升自己还是要不断学习呀。公司那么多大牛,要好好利用身边的资源呀。
接下来将系统性的学习JMeter,并在学习的过程中整理一系列关于JMeter性能测试工具的使用,撸起袖子加油干
本篇来自《全站性能测试修炼宝典JMeter实战》一书,挺不错的一本书,推荐给大家,有机会可以去看看。

1、JMeter简介

JMeter是一款100%纯java开发的开源桌面应用软件,可用来模拟用户负载来完成性能测试工作。JMeter
JMeter结构图可拆解成一个三维空间:
JMeter结构图

  • X1~X5 是负载模拟的一个过程,使用这些组件来完成负载的模拟

  • Y1:包含的是负载模拟部分,负责模拟用户请求

  • Y2:结果验证部分,负责验证结果正确性

  • Z:负载结果的收集,实践上只有一个组成部分——监听器,监听器不仅可以放在线程组之内,也可以放在线程组之外,所以在图中看到它们是相交的

2、JMeter基本原理

  • 建立一个线程池,多线程运行取样器产生大量负载,在运行过程中通过断言来验证结果的正确性,通过监听器来记录测试结果。
  • 如果取样器中有参数化的需求,可以通过配置元件前置处理器来完成;
  • 如果有关联需求,可以通过后置处理器来完成;
  • 如果想要设置运行场景,比如模拟多少用户,运行多长时间,就设置线程组
  • 如果想要模拟并发场景,可以利用定时器来设置;
  • 如果想要控制业务的执行逻辑,比如登录只运行一次,我们可以用控制器来完成。

3、JMeter的组成部分

3.1 线程组

【线程组】用于模拟大量用户负载,此元件中可以设置运行的线程数(就是模拟多用户,一线程就是一个用户)
访问路径:【测试计划】——【线程组】
在这里插入图片描述

3.2 取样器

【取样器/采样器】用来模拟用户操作,向服务器(被测试系统)发出Http请求、WebService(SOAP/XML-RPC Requests)请求或者Java请求等。
取样器元件有23个,基本涵盖了我们常见的各种协议,如Http、FTP、JAVA、JMS、LDAP、MAIL、MongoDB、SMTP、TCP、Junit等,还支持BeanShell脚本。
 取样器的访问路径:【测试计划】—— 【线程组】—— 【Sampler】, 常见的取样器如下图:
  在这里插入图片描述
常用的取样器为HTTP请求,我们可以把HTTP请求元件看成是一个没有界面的浏览器,它可以发送Http请求,接收服务器的响应数据。

3.3 断言

【断言】用来验证结果是否正确,类似于LoadRunner中的检查点。可以帮助我们来判断请求是否成功返回且是否符合要求。就是用一个预设的结果(值、表达式、时间长短等条件)与实际结果匹配,匹配到则成功,反之失败。

常用的是响应断言,对于复杂的断言可以通过BeanShell脚本来完成

断言的访问路径:【测试计划】—— 【断言】
在这里插入图片描述

3.4 监听器

【监听器】收集JMeter的测试结果,JMeter结果收集程序的设计模式就是监听器模式。JMeter的监听器有两个任务:

  • 添加结果监听,并且可以保存测试结果到文件,这些结果数据可以供再次分析使用。
  • 展示结果,JMeter可以以表格及图形的形式展示结果,方便测试人员分析测试结果。在开发测试脚本时,不可避免需要调试,监听器也提供了辅助(比如查看结果树,我们可以在其中看到请求与响应的数据)

监听器的访问路径:【测试计划】—— 【监听器】,详情如下图:

【取样器】、【断言】、【监听器】组合在一起就可以帮助我们完成发送请求、验证结果及记录结果三项工作。
在这里插入图片描述

3.5 前置处理器

【前置处理器】在取样器发送请求之前做一些环境或参数的准备工作
例如:在对数据进行操作前需要建立一个数据库连接,那么前置处理器可以完成这个工作
前置处理器的访问路径:【测试计划】—— 【前置处理器】

在这里插入图片描述

3.6 配置元件

【配置元件】为取样器提供预备数据、然后由取样器发出请求;还可以用来记录服务器的返回数据,比如:Http Cache Manager,自动记录服务器返回的Cache信息。

性能测试中为了模拟大量用户操作往往需要参数化,JMeter中的参数化可以通过配置元件来完成,比如:CSV Data Set Config,可以帮助我们从文件中读取数据。另外JMeter也提供了从多函数来帮助我们生成动态数据。

配置元件的访问路径:【测试计划】—— 【配置元件】,详情如下图:

在这里插入图片描述

3.7 后置处理器

【后置处理器】一般放在取样器之后,用来处理服务器的返回结果。(专门用来对响应数据做处理的元件,JMeter中的关联也是通过后置处理器来完成)
比如一个Web程序在登录后返回一个SessionID,这个SessionID在登录之后的业务过程中会做为验证条件,验证用户是否合法登录了。我们利用取样器模拟这个请求时就需要带上这个属性,那么如何获取呢? 首先我们要知道这个SessionID从哪里来?——它是由服务器返回的。我们需要用什么工具获取它?JMeter提供了元件,比如正则表达式提取器,它支持正则表达式的方式来提取数据。
访问路径:【测试计划】——【后置处理器】,详情如下图:
在这里插入图片描述

3.8 控制器

【控制器】逻辑控制器可以控制采样器(samplers)的执行。由此可知,控制器需要和采样器一起使用,否则控制器就没有什么意义了。放在控制器下面的所有的采样器都会当做一个整体,执行时也会一起被执行。

比如在收邮件时,只需要登录一次邮箱就可以查看多封邮件,这个场景在JMeter中只需要使用控制器中的“一次控制器”就可以控制登录的次数。

控制器的访问路径:【测试计划】——【线程组】—— 【逻辑控制器】

在这里插入图片描述

3.9 定时器

【定时器】用于在模拟大量用户在同一时间处理系统业务,起到集合的功能(常用于并发测试)
访问路径:【测试计划】—— 【线程组】—— 【定时器】
在这里插入图片描述
下一篇☞JMeter运行原理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值