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线程组来完成该过程后,我们可以选择我们的自定义采样器。

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

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

jmeter 采样器作用

jmeter 采样器作用_实施自定义JMeter采样器相关推荐

  1. 实施自定义JMeter采样器

    随着我们采用不同的体系结构和实现方式,对通用压力测试工具的需求不断增长. Apache Jmeter是进行负载测试时最著名的工具之一. 它支持许多协议,例如ftp http tcp,并且可以轻松地用于 ...

  2. jmeter安装包_分布式执行jmeter脚本步骤(非GUI)

    备注:[Linux查看服务器是32位还是64位命令] uname -m getconf LONG_BIT 1.Linux环境安装jmeter 可参考https://www.cnblogs.com/su ...

  3. jmeter测试客户端_如何在JMeter中执行客户端Web性能测试?

    jmeter测试客户端 在本文中,我们将看到如何使用Jmeter插件进行客户端性能测试. 我将使用jmeter webdriver插件. 在开始本主题之前,请阅读我以前的文章中有关客户端性能测试的一些 ...

  4. jmeter压力测试_如何使用Jmeter进行压力测试?这篇入门讲解拿去不谢!

    一.下载安装jmeter 这里不多说了,大家可以自行下载. 二.运行jmeter.bat 在bin目录下,使用管理员方式运行jmeter.bat 随之会打开jmeter的GUI界面,注意不要关闭运行的 ...

  5. jmeter csv参数化_性能测试之Jmeter中如何设置参数化数据

    参数化配置 jmeter中进行参数化设置,右击测试计划或者线程组,add->config element->CSV Data Set Config参数1.png Allow quoted ...

  6. jmeter 线程执行顺序_性能测试之jmeter逻辑控制种类详解一

    逻辑控制器介绍 Jmeter逻辑控制可以对元件的执行逻辑进行控制,除Once only Controller仅一次控制器以外,其他控制器都可以可以嵌套其他种类的控制器,下面是jmeter5.3支持的控 ...

  7. jmeter性能测试报告_用 JMeter 做接口测试的优劣浅析

      2018年由软件质量报道做的调查报告表明,受调查的测试人员中约有40.67%的人使用JMeter作为接口测试的自动化测试工具(排在商业化或者开源工具中的第一),剩下的为Postman(28%),以 ...

  8. jmeter 循环使用csv数据_如何通过jmeter读取csv文件行数来设置循环控制器的总数...

    1.线程组里添加beanshell取样器 import java.io.BufferedReader; import java.io.FileReader; import java.io.IOExce ...

  9. jmeter性能分析_使用JMeter和Yourkit进行REST / HTTP服务的性能分析

    jmeter性能分析 我的上一篇文章描述了如何使用JMeter完成异步REST / HTTP服务的压力测试或负载测试. 但是,运行这样的测试通常表明被测系统不能很好地应对增加的负载. 现在的问题是如何 ...

最新文章

  1. 比尔盖茨聘请投资高手,26年亏掉4300亿美金!
  2. CodeChef--SEPT14小结
  3. centos7安装redis3.2.5
  4. db2和mysql性能_关于DB2数据库的性能分析记录
  5. mvc 普通上传, 图片转二进制上传
  6. macos ntfs插件_Mac下NTFS读写插件NTFS for Mac介绍
  7. LeetCode 1705. 吃苹果的最大数目(优先队列)
  8. St_geometry 初始用
  9. 12个免费在线的Web网站性能测试工具
  10. Dubbo视频教程--基础篇--第06节--Dubbo管理控制台的安装
  11. 关于在windows上首次编译运行pbrt-3
  12. SQLServer中统计年,季,月,周,日平均值
  13. matlab海底地形数据,海底地形建模器
  14. 华三交换机配置telnet远程登录和http、https登录
  15. face_recognition.face_encodings() 错误提示:IndexError: list index out of range
  16. Core Telephony Framework
  17. varchar和text的区别
  18. JavaCV 实现照片打马赛克功能
  19. Excel字符函数(1):利用3个函数提取邮箱中的域名
  20. Android清除WebView缓存

热门文章

  1. P3702-[SDOI2017]序列计数【矩阵乘法】
  2. P2485-[SDOI2011]计算器【BSGS,exgcd,快速幂】
  3. jzoj5363-[NOIP2017提高A组模拟9.14]生命之树【启发式合并,Trie】
  4. NOI.AC-保镖【贪心,对顶堆】
  5. jzoj4673,CF578D-LCS again【统计,字符串,容斥】
  6. Graph Theory Class(Min25求1~n质数和)
  7. 【树链剖分】春季大扫除(P6805)
  8. 【二分】抄书 (jzoj 2123)
  9. 图论复习——最小生成树MST
  10. play框架入门操作