jmeter 采样器作用_实施自定义JMeter采样器

jmeter 采样器作用

随着我们采用不同的体系结构和实现方式,对通用压力测试工具的需求不断增长。

关于负载测试, Apache Jmeter是最知名的工具之一。 它支持许多协议,例如ftp http tcp,并且可以轻松地用于分布式测试。

Jmeter还为您提供了一种创建自定义采样器的简便方法。 例如,如果您需要对HTTP终结点进行负载测试,而该终结点需要用于签名标头的特定过程,那么自定义采样器将派上用场。

目标是实现一个自定义采样器项目,该项目将对一个简单功能进行负载测试。

在此示例中,我使用gradle 。

group 'com.gkatzioura.jmeter'
version '1.0-SNAPSHOT'apply plugin: 'java'sourceCompatibility = 1.6repositories {mavenCentral()
}dependencies {compile 'org.apache.jmeter:ApacheJMeter_java:2.11'compile 'org.json:json:20151123'testCompile group: 'junit', name: 'junit', version: '4.11'
}task copySample(type:Copy,dependsOn:[build]) {copy {from project.buildDir.getPath()+'/libs/jmeter-sampler-1.0-SNAPSHOT.jar'into 'pathtoyourjmeterinstallation/apache-jmeter-2.13/lib/ext/'}
}

我包括对项目的ApacheJMeter依赖项,因为采样器将必须扩展AbstractJavaSamplerClient。 copySample任务会将jar复制到所有采样器所在的Jmeter的lib / ext路径中。

采样器将调用一个简单的函数:

package com.gkatzioura.jmeter;/*** Created by gkatzioura on 30/1/2016.*/
public class FunctionalityForSampling {public String testFunction(String arguement1,String arguement2) throws Exception {if (arguement1.equals(arguement2)) {throw new Exception();}else return arguement1+arguement2;}}

CustomSampler类扩展AbstractJavaSamplerClient类并调用testFunction。 通过覆盖getDefaultParameters函数,我们可以应用可与请求一起使用的默认参数。

package com.gkatzioura.jmeter;import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;import java.io.Serializable;/*** Created by gkatzioura on 30/1/2016.*/
public class CustomSampler extends AbstractJavaSamplerClient implements Serializable {private static final String METHOD_TAG = "method";private static final String ARG1_TAG = "arg1";private static final String ARG2_TAG = "arg2";private static final Logger LOGGER = LoggerFactory.getLogger(CustomSampler.class);@Overridepublic Arguments getDefaultParameters() {Arguments defaultParameters = new Arguments();defaultParameters.addArgument(METHOD_TAG,"test");defaultParameters.addArgument(ARG1_TAG,"arg1");defaultParameters.addArgument(ARG2_TAG,"arg2");return defaultParameters;}@Overridepublic SampleResult runTest(JavaSamplerContext javaSamplerContext) {String method = javaSamplerContext.getParameter(METHOD_TAG);String arg1 = javaSamplerContext.getParameter(ARG1_TAG);String arg2 = javaSamplerContext.getParameter(ARG2_TAG);FunctionalityForSampling functionalityForSampling = new FunctionalityForSampling();SampleResult sampleResult = new SampleResult();sampleResult.sampleStart();try {String message = functionalityForSampling.testFunction(arg1,arg2);sampleResult.sampleEnd();;sampleResult.setSuccessful(Boolean.TRUE);sampleResult.setResponseCodeOK();sampleResult.setResponseMessage(message);} catch (Exception e) {LOGGER.error("Request was not successfully processed",e);sampleResult.sampleEnd();sampleResult.setResponseMessage(e.getMessage());sampleResult.setSuccessful(Boolean.FALSE);}return sampleResult;}}

编译完成后,必须将创建的jar复制到JMeter安装目录的lib / ext目录。 同样,如果有更多依赖项需要导入,则还应该将它们复制到JMeter安装目录的lib路径中。

通过将Java Sampler添加到JMeter线程组来完成该过程后,我们可以选择我们的自定义采样器。

屏幕截图-来自-2016-01-31-013006

  • 您也可以在此处找到源代码。

翻译自: https://www.javacodegeeks.com/2016/02/implement-custom-jmeter-samplers.html

jmeter 采样器作用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/336719.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

xp系统 javafx_使用JavaFX构建React系统

xp系统 javafxJavaFX是用于在Java中构建图形应用程序的新标准库,但是许多程序员仍然对Swing甚至(高音)AWT感到困惑。 在Java诞生20年来,发生了很多事情。 两年前,当我开始研究Speedment UI的JavaFX库时,我发…

html手机端图片点击放大缩小快捷键,PS放大缩小图片的快捷键是什么?PS放大缩小图片的操作技巧...

PS放大缩小图片的快捷键是什么?PS怎么放大缩小图片?使用PS处理图片可是个精细的活儿,为了让图片处理得更加完美,我们经常需要将图片放大来处理,修改好之后又要缩小图片看下整体效果,这样来回切换其实挺麻烦…

webstorm html代码提示设置,Webstorm设置代码提示

下载路径: https://github.com/virtoolswebplayer/ReactNative-LiveTemplate本插件可以配合Webstorm设置代码提示。Mac下安装Webstorm2016.1为例安装路径在终端:$ cd ~/Library/Preferences/$ ls找到Webstorm版本$ open WebStorm2016.1先将ReactNative.x…

arcgis adf数据_使用ADF列表视图的主从数据

arcgis adf数据从UI角度来看,最近ADF Faces 表组件不再被认为很酷。 对于显示数据集合, 列表视图今天应该很酷。 这并不意味着我们根本不应该使用af:table 。 在某些情况下(经常是:)),表比列表视图更适合。…

javafx 内存占用_JavaFX:TouchGesture内存泄漏?

javafx 内存占用在我的一个项目中,最近几天我在与内存泄漏作斗争(是……“耦合”),我得出的结论是可能存在与触摸/滚动手势有关的问题。 在下面的示例中,我有两个按钮。 第一个创建具有一千行的列表视图,第…

cucumber jvm_用Cucumber JVM编写BDD测试

cucumber jvmCucumber JVM是编写BDD测试的出色工具。在本文中,我想对Cucumber JVM的BDD进行介绍。 让我们开始吧… 什么是BDD? 简而言之,BDD试图解决“通过示例理解需求”的问题 BDD工具 有许多可用于BDD的工具,有趣的是&#…

模拟模型学习 几何布朗运动_Java的几何布朗运动

模拟模型学习 几何布朗运动维纳过程是一个连续时间的随机过程,以纪念诺伯特维纳。 通常用于用随机成分表示噪音或财务状况。 可以计算几何布朗运动以可视化某些界限(以分位数表示)以暗示绝对范围。 为了进行计算,需要以下参数&am…

动态调整线程池_调整线程池的重要性

动态调整线程池无论您是否知道,您的Java Web应用程序很可能都使用线程池来处理传入的请求。 这是许多人忽略的实现细节,但是迟早您需要了解如何使用该池以及如何为您的应用程序正确调整池。 本文旨在说明线程模型,线程池是什么以及正确配置线…

java系统架构师有的特质_Java中特质模式的定义

java系统架构师有的特质在本文中,我将介绍特征的概念,并为您提供一个具体示例,说明如何在Java中使用它们以减少对象设计中的冗余。 我将首先提出一个虚构的案例,其中可以使用特征来减少重复,然后以使用Java 8的特征模式…

tdd java_Java TDD简介–第2部分

tdd java再次问好! 在上一篇博客文章中,我在没有紧密引用Java的情况下总体上解释了TDD理论 ,但是在这一部分中,我们开始进行TDD实践。 我们的目标是遍历TDD的所有阶段:从需求分析到测试代码的重构。 我们将在具有Java&…

计算机怎么没有桌面文件夹名称大全,你的电脑文件总是找不到?是时候学习文件夹分类整理了...

我们常常说做好办公整理,我们工作起来才更有效率;此处的办公整理不单单是对办公桌整理整齐,电脑里面的文件也需要定期整理,你有没有发现常常找一个文件的时候却总是找不到?那么此时就应该学习文件夹分类整理了&#xf…

selenide_使用Selenide进行有效的UI测试

selenide等待奇迹 圣诞节是奇迹的时刻。 在新的一年的前夕,我们都会制定下一个计划。 我们希望所有问题都将在最后一年消失,在来年出现奇迹。 每个Java开发人员都梦想着奇迹,使他成为世界上最有效的Java开发人员。 我想向你展示这样的奇迹…

win10无法更改计算机设置,Win10“无法保存ip设置,请检查一个或多个设置并重试”的解决方法...

近期有网友想要在Win10系统中手动设置本机IP地址,但是填写完毕之后却提示了“无法保存ip设置,请检查一个或多个设置并重试”,那么遇到这个问题,我们要如何解决呢?下面装机之家分享一下Win10“无法保存ip设置,请检查一个或多个设置…

24段魔尺拼图指南_拼图项目动手指南

24段魔尺拼图指南Jigsaw项目将把模块化引入Java平台,根据原始计划,它将在12月10日完成功能。 所以我们在这里,但拼图在哪里? 在过去的六个月中肯定发生了很多事情: 原型问世 ,内部API的迫在眉睫的删除引起…

sql 解析 java_将Java 8流解析为SQL

sql 解析 java当Java 8发行并且人们开始流式处理各种东西时,不久之后他们就开始想象如果可以以相同的方式使用数据库将有多大的潜力。 本质上,关系数据库由以表状结构组织的巨大数据块组成。 这些结构非常适合进行过滤和映射操作,如SQL语言的…

杭州电子科技大学保研计算机,杭州电子科技大学计算机学院计算机科学与技术(一级学科)保研细则...

杭州电子科技大学计算机学院计算机科学与技术(一级学科)保研细则信息,是考研之前需要获取相应的考研信息,比如考试大纲、招考专业、招考目录等等基本信息,这些内容是进行考研前期工作的必要准备。考生可以从各院校的研招网进行查询&#xff0…

返回路径平面上的间隙_裁切机的上刀下刀如何调整?

每天都在使用裁切机时,由于各种因素往往会出现上刀、下刀现象(也称凸刀、凹刀现象),给后面的套准带来困难。在此小编对上刀、下刀现象的产生原因做一分析与总结。01千斤压力不够(1)机械压力弹簧弹力不够。此时必须增大压力,如果增大到最大位置…

pcb板材的tg是什么_做到这6点,PCB过回焊炉不会出现板弯及板翘!

【维文信PCBworld】在PCB板子过回焊炉容易发生板弯及板翘,大家都知道,那么如何防止PCB板子过回焊炉发生板弯及板翘,下面就为大家阐述下:1.降低温度对PCB板子应力的影响既然「温度」是板子应力的主要来源,所以只要降低回…

java-ee-api_刷新器-Java EE 7概览

java-ee-api随着红帽JBoss企业应用平台7(EAP 7)的迫在眉睫,甚至WebLogic Server刚刚获得Java EE 7认证,我认为现在应该是时候对Java Enterprise Edition 7进行一些更新了。功能,并指向更多资源。 Java EE 7 –开发人员…

层 数据仓库_小尝试:基于指标体系的数据仓库搭建和数据可视化

关于作者:小姬,某知名互联网公司产品专家,对数据采集、生产、加工有所了解,期望多和大家交流数据知识,以数据作为提出好问题的基础,挖掘商业价值。0x00 前言我将整理文章分享数据工作中的经验,因…