工具篇 - JMeter组件手册04

前言

在jmeter中提供了一系列的不同的组件,每一种组件都提供了某类功能的实现,用于支持性能测试的实施。

请看下图,jmeter的核心组件构成。

学习、研究jmeter之前,深入了解jmeter的基本组件及其作用是必须的。接下来我们开始讨论基于jmetere进行性能测试必须掌握的组件,以便大家逐步掌握jemter的核心基本能力。

下面的几个组件是入门jmeter必须掌握的:

  • Thread Group
  • Samplers
  • Listeners
  • Configuration

Thread Group(线程组)

线程组是一系列线程的集合,每一个线程代表着一个正在使用应用程序的用户。在jmeter中,每个线程意味着模拟一个真实用户向服务器发起请求。

在jmeter中,线程组组件运行用户设置线程数量、初始化方式等等配置。

例如,如果你设置线程数为100,那么jmeter将创建并模拟测试100个用户请求到服务器端。

如下图所示:

Samplers

我们常用的jmeter测试有HTTP、FTP、JDBC协议,以及其他各种支持的协议。

在上节我们已经知道线程组件用于模拟用户请求至服务器端。

但还未讲解如何在线程组件中实现某种请求类型(比如如何发起HTTP请求?)。

在本节中,我们将演示如何利用Samplers组件的元素来实现各类请求类型。

我们先看一下在jmeter中Samplers组件已经实现了哪些协议的支持。如下图所示:

下面我们就重要的Samplers组件元素进行一一讲解,以便大家有个初步的了解。

  • BeanShell Sampler

这个组件元素允许我们在jmeter中写Bean Shell脚本,写这个脚本有什么作用?意味着你可以完全的控制和实现自己的需要。灵活定制,自然也就有难度,你得有点脚本功底。

参见图说明:

注:每一个Sampler都有自己独立的beanshell解析器,并且sampler只能在自己的线程中调用(意味着不可跨线程使用)。

  • FTP Request

FTP Request元素提供了测试ftp服务器的能力,这个元素让我们能够去测试ftp的上传、下载功能。

下面我们看一下ftp元素的基本配置说明:

注:我们经常在windows和linux直接通过ftp进行文件传输,建议勾选Use Binary Mode,避免编码问题。

  • HTTP Request

HTTP Request提供了HTTP/HTTPS协议的测试支持能力。

下面我们一起看看HTTP Request元素的基本配置说明,了解下基本的功能。

  • Java Request

Java Request提供了测试java API的支持,但要注意要测试的java API需要有对应的测试类,该测试类必须继承AbstractJavaSamplerClient。 示例如下:

待测类class Sum; -> 生成sum.jar

继承至AbstractJavaSamplerClient的测试类Class TestSum(AbstractJavaSamplerClient) -> 生成testSum.jar

注:

一个java测试应该要实现以下几个方法,以便jmeter java sampler可以正确调用:

方法

说明

Arguments getDefaultParameters()

用于获取jmeter java sampler传入的测试数据

SampleResult runTest(JavaSamplerContext arg0)

测试事务处理

void setupTest(JavaSamplerContext arg0)

初始化

void teardownTest(JavaSamplerContext arg0)

清理

更详细的后续出专题讲解,本篇不举具体示例了。

注意testSum.jar要能调用sum.jar。

将上述sum.jar、testSum.jar拷贝至jmeter安装目录的lib/ext下。

下面我们看看如何在jmeter配置java测试。

对于JDBC Request、JMS Point-to-Point、JSR223、SMTP、JUnit Request等Sampler组件元素就不一一说明了在后续的分享中,主要基于HTTP和java请求来分享实战。

Listeners(监听器)

在jmeter中Listeners提供了执行结果生成和显示能力的支持,提供了树形结构、表、图形和日志方式。

下面我们先看下几种结果显示示例图。

图形模式:

树模式:

表模式:

日志方式

Configuration Elements(即配置元件)

配置元件包含了Samplers下各种Sampler的默认配置设置,如果有配置默认配置,在Sampler下对应的sampler就会使用该默认配置。

下面我们看看我们主要用到的默认配置有哪些。

下面进行逐一的说明。

  • CSV Data Set Config CSV Data Set Config主要用于读取csv格式的文件中数据,实现参数化。
  • HTTP Cookie Manager HTTP Cookie Manager主要用于默认cookie管理。
  • HTTP Request Defaults HTTP Request Defaults用于配置HTTP request的默认值,例如IP、端口等等都设置好默认值后,在后续HTTP request元素里就不需要重复设置,节省时间。

总结

本次就jmeter常用的相关组件元素进行了大概的说明,以便大家有个基本的了解,为后续深入学习和实践打下基础。

原文发布于微信公众号 - 开源优测(DeepTest)

原文发表时间:2017-04-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏linux驱动个人学习

解析Linux中的VFS文件系统之文件系统的注册(二)

继上一篇文章:https://cloud.tencent.com/developer/article/1053882 3. 文件系统的注册 这里的文件系统是指可...

36660
来自专栏应兆康的专栏

Python Web - Flask笔记8

CSRF(Cross Site Request Forgery)跨站域请求伪造是一种网络攻击方式。

14210
来自专栏web编程技术分享

【Java框架型项目从入门到装逼】第五节 - 在Servlet中接收和返回数据

36370
来自专栏Linux驱动

第4阶段——制作根文件系统之分析init_post()如何启动第1个程序(1)

本章学习如何启动第一个应用程序 1.在前面的分析中我们了解到,在init进程中内核挂接到根文件系统之后,会开始启动第一个应用程序: kernel_init函数代...

25380
来自专栏大内老A

[WCF权限控制]基于Windows用户组的授权方式[上篇]

Windows用户组安全主体权限模式,顾名思义,就是将利用Windows安全系统将对应的Windows帐号所在的用户组作为该用户权限集的授权方式。认证和授权密不...

20390
来自专栏Java学习网

Java面试题系列之基础部分(七)——每天学5个问题

Java基础部分学习的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io的语法,虚拟机方面的语法,这些都是最基...

26960
来自专栏用户画像

程序中断和调用子程序有何区别

1)调用子程序发生的时间是已知的和固定的,即在主程序的调用指令(CALL)执行时发生主程序调用子程序过程,调用指令所在位置是已知的和固定的;而中断过程发生的时间...

13020
来自专栏xcywt

《程序员的自我修养》第二章学习笔记

第二章 编译和链接 2.1被隐藏了的过程 我们知道,一个程序由源代码到可执行文件往往由这几步构成: 预处理(Prepressing)-> 编译(Compilat...

20650
来自专栏happyJared

Linux私房菜:文件目录管理及常见命令

10710
来自专栏Java3y

看完这篇Linux基本的操作就会了

34860

扫码关注云+社区

领取腾讯云代金券