原创

性能测试专题:Jmeter的详细入门介绍

jmeter介绍

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许适用正则表达式创建断言

jmeter体系结构介绍

jmeter的体系结构主要包括取样器、监听器、前置处理器、配置元件、后置处理器、控制器、定时器、线程组等。

其基本原理是建一个线程池,多线程运行取样器产生大量负载,如果取样器中有参数化的需求,可以通过配置元件或者前置处理器来完成,如果与关联处理需求可以通过后置处理器完成,如果想要设置运行场景,比如模拟多少用户,运行时间,可以设置线程组,如果想要模拟并发场景,可以利用定时器,想要控制业务的执行逻辑,可以通过控制器来完成。下面我们分别来介绍一下各个组件的功能.

取样器

取样器可以用来模拟用户操作,向服务器发出请求,可以是http、websocket或者自定义java请求等,

image-20200704203925352

以上是我本地安装jmeter5.0所支持的请求类型,取样器的访问路径是:测试计划->thread group->add->sampler

断言

断言是用来验证结果是否正确

image-20200704204217143

可以设置响应断言、xml断言、BeanShell断言等,对于复杂的断言,可以通过BeanShell脚本来设置,BeanShell是一种类java的脚本语言,而且还是一个小巧的java源码解析器,可以直接调用java程序。

监听器

image-20200704204800012

jmeter的测试结果需要添加监听器来收集,监听器有两个任务:

1、添加结果监听,并且可以保存测试结果到文件,这些结果数据可以供再次分析使用

2、展示结果,jmeter可以通过表格以及图形的方式展现结果,方便分析

前置处理器

image-20200704204921106

在测试脚本开发过程中,我们可能在请求发送前会做一些环境初始化或者参数准备的工作,就可以通过前置处理器开完成,比如数据库连接、用户参数设置等等

配置元件

image-20200704205012474

在性能测试时,往往需要模拟大量用户的操作,这个时候就需要进行参数化操作,这就需要配置元件来处理,比如CSV Data Set Config,可以从文件中读取测试数据,还比如说可以添加header、cookie等。还可以用来记录服务器的返回数据,比如HTTP Cache Manager,会自动记录服务返回的cache信息。总而言之,配置元件就是提供数据给取样器,然后取样器再发出请求。

后置处理器

image-20200704205758493

后置处理器,一般放在取样器之后,用来处理服务器返回的结果,比如sessionid、token的提取,可以通过正则、json路径表达式等进行提取,还有jmeter的关联就是通过后置处理器完成。

控制器

image-20200704210053371

控制器主要是用来对业务逻辑进行控制,比如说只登陆一次,进行条件判断等。后面我们会对每种控制进行介绍。

定时器

image-20200704210333230

在进行性能测试的时候,有时需要模拟请求在同一时刻发送,这个时候就需要定时器来完成。

线程组

性能测试需要模拟大量用户的负载情况,线程组就是干这个事情的,在线程组,可以设置运行的线程数,运行时长等

以上是jmeter的组成部分,下面在介绍两个其他的功能

Test Fragment

image-20200704211020543

Test Fragment是一个辅助组件,此节点下可以方式任何jmeter组件,但是它不会被运行,具体有以下两个作用

  • 在脚本开发的过程中可以用来备份元件

  • Test Fragment下的元件可以被模块控制器调用,可以用它来模块化请求,类似于将功能封装,给其他有需要的地方调用

工作台

在jmeter4.0以前,jmeter有个工作台的tab,不过在4.0以后,就没有工作台了,这块儿的功能都被移到了非测试元件下面:

image-20200704212203951

主要有以下功能:

  • 设置代理服务器可以用来录制http请求
  • 设置服务器监控,Http mirror server,不过一般不用这个功能,会给服务器增加压力的
  • Property Display 显示当前jmeter的属性相关信息。
  • 备份脚本

总结

以上是我对jmeter大致的功能进行了一个简单的介绍,后面陆续会有文章,对每一个功能进行的详细的介绍。

正文到此结束
该篇文章的评论功能已被站长关闭
本文目录