Apache JMeter:随心所欲进行负载测试

这是有关使用Apache JMeter进行负载测试的第二篇文章,请在此处阅读第一篇文章: 有关对关系数据库进行负载测试的分步教程。
JMeter有很多采样器 。 如果您需要JMeter不提供的采样器,则可以编写自定义采样器。 (自定义采样器在JMeter术语中称为“ Java请求”

这篇文章将逐步向您展示如何编写JMeter Java Request。

步骤1:准备开发环境

将这两个jar文件添加到java类路径。

  1. $ JMETER_HOME / lib / ext / ApacheJMeter_core.jar
  2. $ JMETER_HOME / lib / ext / ApacheJMeter_java.jar

(如果使用的是Eclipse,请将这些文件作为外部jar文件添加到Java构建路径。)

步骤2:扩展AbstractJavaSamplerClient

设置类路径后,通过扩展AbstractJavaSamplerClient创建一个自定义采样器,并覆盖以下方法。

public Arguments getDefaultParameters() {...}
public void setupTest(JavaSamplerContext context) {...}
public void teardownTest(JavaSamplerContext context) {...}
public SampleResult runTest(JavaSamplerContext context) {...}

getDefaultParameters
如果需要测试参数的初始值,请实现getDefaultParameters 。 JMeter将在其Java请求配置GUI中显示参数。 (请参见下图中红色矩形的内容。)这是一个示例实现:

public Arguments getDefaultParameters() {Arguments defaultParameters = new Arguments();defaultParameters.addArgument("memcached_servers", "localhost:11211");defaultParameters.addArgument("username", "testuser");defaultParameters.addArgument("password", "testpasswd");return defaultParameters;
}

setupTest
在这里,您可以读取测试参数并初始化测试客户端。 JMeter对于每个测试线程仅调用一次此方法。

拆解测试
收拾残局。

运行测试
用这种方法编写测试逻辑。 JMeter将在每次执行测试线程时调用runTest方法。 这是一个典型的runTest实现:

@Override
public SampleResult runTest(JavaSamplerContext context) {SampleResult result = new SampleResult();boolean success = true;result.sampleStart();//// Write your test code here.//result.sampleEnd();result.setSuccessful(success);return result;
}

result.sampleStart()result.sampleEnd()之间经过的时间用于计算被测应用程序的平均响应时间。

步骤3:部署您的自定义采样器

完成后,在$ JMETER_HOME / lib / ext /目录中创建一个jar文件(包含您的自定义采样器)。 JMeter将在Java请求配置页面中显示您的Java请求。

您可以通过在测试计划中添加侦听器来查看测试结果。 “关于负载测试关系数据库的分步教程”一文中介绍了如何在测试计划中添加侦听器。

参考:根据我们的JCG合作伙伴 Ilkin Ulas提供的Apache JMeter进行负载测试 , 一切取决于您 。 所有您的博客都属于我们博客。


翻译自: https://www.javacodegeeks.com/2012/05/apache-jmeter-load-test-whatever-you.html

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

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

相关文章

致敬词

见义勇为致敬词 面对灾难和死神,你们大义凛然、知险而上,把平安和生机留给他人,把困难和危险留给自己。巍巍乎高山景行,铮铮然铁骨侠风;壮志谱传奇,热血写春秋。你们是:百姓英雄,平安…

经常使用计算机的孩子,常玩电脑对孩子负面影响大,家长们不容小觑!

相信不少的家庭都会备有电脑,人们在网络世界里面能够找到自己需要的东西。不仅是大人喜欢玩电脑,小孩也喜欢玩电脑。然而常玩电脑对孩子负面影响大吗?有多大?一、行为问题全国青少年教育协会指出,5岁以下的使用电脑的孩…

VMware下ubuntu与Windows实现文件共享的方法

最近安装caffe需要将Windows下文件拷贝到ubuntu16.04下,就进行了共享文件夹的设置,期间遇到一些困难,记录下来,方便以后遇到此类问题不再困惑。 (记录只为更好的分享) 言归正传: 1、首先需要在u…

mybatis入门-新手注意问题

参数问题 在映射文件中通过parameterType指定输入参数的类型;在映射文件中通过resultType指定输出结果的类型。 占位符和拼接符问题 #{}表示一个占位符号,#{}接收输入参数,类型可以是简单类型,pojo、hashmap。 如果接收简单类型&a…

远程桌面连接时无法访问远程计算机的计算机属性提示系统调用失败,远程过程调用失败【应对技巧】...

喜欢使用电脑的小伙伴们一般都会遇到win7系统远程过程调用失败的问题,突然遇到win7系统远程过程调用失败的问题就不知道该怎么办了,其实win7系统远程过程调用失败的解决方法非常简单,按照1:第一步我们可以看到sql server数据库出现…

库卡机器人C4计算机无法启动,KUKA-C4标准版机器人启动时序

描述1.T1模式下选择CELL程序,手动执行程序,注意中间路径,有时机器人不在HOME点附近,回原点的过程中需慢速运行,直至到达BCO。2.松开执行键,重新按下,信息栏出现“运行方式错误”提示&#xff0c…

ADF:将UI类别与动态表单一起使用

JDev 11g R2具有有趣的新功能“ UI类别”。 它使我们可以在视图对象定义级别上以声明方式对VO的属性进行分组。 例如,我的VEmployees视图对象的“ UI Categories”选项卡如下所示: 默认情况下,每个视图对象都有一个预定义的类别“默认”。 我…

Exchange超级实用命令行

发现Powershell很强大以后,就欲罢不能了。来点干货 有PST文件的没有成功导出,原因是执行时会报错,说需要64位Outlook,dotnet4.5以上环境。还有说法是Exchange2010开始不支持PST导入导出。 整理了一下最近尝试比较实用的命令&#…

位数不足前面补0mysql语句_全网热议:监控补光灯爆亮闪瞎眼!你遇到过吗?

唔知大家有无咁ga体会每当夜晚揸车经过一排监控补光灯瞬间像“瞎子”那样看不到东西,“威力”堪比远光灯(△ 11月12日晚,安定门外大街,主路上的监控补光灯)近日,“监控补光灯太刺眼,给夜间行车安全造成极大隐患”一事引…

4种常见的 PHP 设计模式

工厂模式 在大型系统中,许多代码依赖于少数几个关键类。需要更改这些类时,可能会出现困难。例如,假设您有一个从文件读取的 User 类。您希望将其更改为从数据库读取的其他类,但是,所有的代码都引用从文件读取的原始类。…

安装卡主_智能温室四周玻璃的安装学问还这么多

智能玻璃温室大棚是指顶部及四周以玻璃为覆盖材料的尖顶温室大棚,玻璃温室大棚这几年的流行是由于纹络型温室顶部阳光板问题的抗老化方面容易出现问题。因此很多客户为了种植获得更高的透光率,更长的使用年限,因而多选择全玻璃温室大棚。那么…

String类详解(1)

首先String是一个类。  1,实例化String类方法。 1)直接赋值:String name"haha"; 2)通过关键字:String namenew String("haha"); 2,String类的数据比较。 首先回顾一下,基础数据的比较…

WebApi Post 后台无法获取参数的解决方案

事件回放: 之前一段时间,公司里前端用的Angularjs 发送http请求也是用的ng的组件,后台是.Net的WebApi 前端 var data {PArgs: {PageIndex: 0,PageSize: 8,RowsCount: 0} };$http.post("/Api/Test/ABC", data).success(function (d…

南京大学计算机系周小莉,周会群

媒体报道:南京大学周会群:用计算机聪明地做实验Q《中国教育网络》A周会群Q:南京大学的高性能计算中心非常特殊,分布在物理,化学、天文、地球科学四个不同的学科中,为什么采取这种模式?A&#xf…

不要怂,就是GAN (生成式对抗网络) (五):无约束条件的 GAN 代码与网络的 Graph...

GAN 这个领域发展太快,日新月异,各种 GAN 层出不穷,前几天看到一篇关于 Wasserstein GAN 的文章,讲的很好,在此把它分享出来一起学习:https://zhuanlan.zhihu.com/p/25071913。相比 Wasserstein GAN &#…

用于MyBatis CRUD操作的Spring MVC 3控制器

到目前为止,我们已经为域类“ User ”创建了CRUD数据库服务,并且还将MyBatis配置与Spring Configuration文件集成在一起。 接下来,我们将使用Spring MVC创建一个网页,以使用MyBatis CRUD服务对数据库执行操作。 使用MyBatis 3创建…

2pin接口耳机_拆解报告:雷柏首款真无线耳机XS200

-----我爱音频网拆解报告第185篇-----雷柏是一家历史悠久的鼠标和键盘厂商,截至目前,雷柏(rapoo)总共出了四款耳机,此前曾推出过三款蓝牙耳机, 分别是S500 蓝牙立体声麦克风耳机,S200 蓝牙立体声麦克风耳机&#xff0c…

深入理解javascript原型和闭包(3)——prototype原型

转载,原文地址http://www.cnblogs.com/wangfupeng1988/p/3978131.html 既typeof之后的另一位老朋友! prototype也是我们的老朋友,即使不了解的人,也应该都听过它的大名。如果它还是您的新朋友,我估计您也是javascript的…

python 温度 符号_Python通过小实例入门学习---1.0(温度转换)

1.安装Python 3 下载地址: Welcome to Python.org​www.python.org 2.“温度转换”实例:摄氏度--->华氏度 / 华氏度--->摄氏度 TempConvert.py TempStr = input("请输入带有符号的温度值:") if TempStr[-1] in ["f","F"]:C = (eval(Tem…

mysql 修改root密码

1.找到配置文件my.ini ,然后将其打开,可以选择用记事本打开 C:\Program Files (x86)\MySQL\MySQL Server 5.0 2.打开后,搜索mysqld关键字,找到后,在mysqld下面添加skip-grant-tables,保存退出。 PS&#x…