jmeter异步请求测试_使用JMeter对异步HTTP / REST服务进行压力/负载测试

jmeter异步请求测试

尽管我一直在使用JMeter进行Web应用程序的压力测试和负载测试好几次,但我们还是花了一些时间才弄清楚如何使用该工具测试基于异步HTTP / REST的服务。 对我们来说,我是一个程序员的同伴– Holger Staudacher ,我很荣幸能与一个项目一起工作–以及我谦卑的自我。

当Holger根据对上述项目进行功能和集成测试的经验开发出Restfuse时 ,我们决定使用JMeter进行压力和负载测试。 被测软件的主要服务处理上传到特定URL的数据结构。 如果上传过程成功,则返回指向包含处理结果的资源的URL。 产生的资源无法立即使用-处理需要一段时间。 因此,轮询可用于在资源可用时检索资源1

我们的目标是在一次测试中测量上传数据结构,处理数据和下载结果资源所花费的时间。 同时与多个用户一起运行这样的测试应该使我们对系统的吞吐量功能有一个良好的印象。 听起来不太复杂,但是…

…我们使用JMeter机载功能为上一段中描述的场景编写测试计划的第一种方法效果不佳。 计划既不可理解,也不是(更糟的是)使测量结果毫无意义。 特别是将上载请求和轮询循环与事务控制器一起限制似乎会对计时器产生一些意外的副作用。 因此,经过一段时间的Google额外研究后,我偶然发现了JavaSamplerClient API ,这是我以前所不知道的。

stackoverflow.com上有一个条目,描述了如何扩展AbstractJavaSamplerClient ( JavaSamplerClient的实现)并在JMeter使用它。 因此,这就是解决我们的问题的方法。 我们创建了一个覆盖runTest(JavaSamplerContext)AbstractJavaSamplerClient扩展。 在该方法中,我们使用HttpClient执行上载和轮询请求。 一旦轮询请求成功检索到处理结果,所有标头和内容信息都将存储在SampleResult实例中。 后者由覆盖的测试采样器方法返回,由JMeter进行进一步处理–非常简单2

创建包含自定义JavaSampleClient的jar并将其放入JMeter安装目录下的lib/ext/文件夹后,可以将Sampler类型的Java Request添加到Thread Group 。 这使您可以选择和配置自定义采样器,如下图所示:

使用JavaSamplerClient使我们的测试计划变得非常简单,并允许我们使用通用的JMeter结果测量功能,例如在Graph Results视图中所示:

当然,测量结果现在是合理的……

由于我们不得不花很长时间才能做到这一点,所以我认为我们的解决方案也可能对其他人也很感兴趣-这就是写这篇文章的原因。 但是,如果有我们没有注意到的更简单的解决方案,也很高兴收到您的来信。 因此欢迎提供反馈

  1. 我们开始使用网络挂接 ,但我们的客户有问题,说服IT管理员打开防火墙... ↩
  2. 对于这个帖子的长度讲理的缘故,我跳过如何处理不成功的请求的任何描述-但我们大部分的实施工作已经在这方面做... ↩


参考:来自Code Affine博客的JCG合作伙伴 Frank Appel的JMeter对异步HTTP / REST服务进行压力/负载测试 。

翻译自: https://www.javacodegeeks.com/2012/11/stressload-testing-of-asynchronous-httprest-services-with-jmeter.html

jmeter异步请求测试

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

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

相关文章

Linux 中vim编辑器学习笔记

vim是Linux是非常常用的编辑器,也是编程开发中的神器之一。接下来,是我学习vim编辑器的一些笔记,总结如下: 首先:我们接触的vim编辑器一共有三种模式,分别为命令模式、编辑模式、末行模式。 具体架构如下 …

Python 面向对象(初级篇)

概述面向过程:根据业务逻辑从上到下写垒代码函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可面向对象:对函数进行分类和封装,让开发“更快更好更强...”面向过程编程最易被初学者接受&…

利用IDA Pro反汇编程序

IDA Pro是一款强大的反汇编软件,特有的IDA视图和交叉引用,可以方便理解程序逻辑和快速定位代码片断,以方便修改。 IDA视图 示例程序 下面会通过修改示例程序的输出字符串,来讲解如何使用IDA Pro。 #includemain() {int n;scanf (…

Neo4j:找到两个纬度/经度之间的中间点

昨天我写了一篇博客文章,展示了如何使用Cypher查找两个纬度/经度之间的中点,这是第一次尝试填补丢失位置的方法,但我意识到我可以做得更好。 正如我在上一篇文章中提到的,当我找到一个缺少经纬度坐标的停靠点时,通常可…

Linux系统更新最新版R语言方法

Linux系统更新最新版R语言方法 第一:卸载之前的版本 sudo apt remove r-base-core第二:在 /etc/apt/sources中添加源 sudo vi /etc/apt/sources对于不同系统添加不同的源具体如下: #(19.04) deb https://cloud.r-project.org/bin/linux/…

Kali Linux下安装VMware

1.Kali Linux安装VMware Workstation 10.0 首先去官网下载VMware Workstation 10.0;下载地址: https://my.vmware.com/web/vmware/details?downloadGroupWKST-1006-LX&productId362&rPId8483 然后cd到下载目录,输入: su…

3月12号

上午复习了昨天的内容,学习了有序列表、无序列表、自定义列表、特殊字符标签. 下午学习了表格、表单、文本域、html新增标签、input新增的type属性值、多媒体标签、多媒体video. 这些知识都比较简单,我在来学校上课之前就已经非常熟悉了...... 最后发一张…

day10T1改错记

题面 有两个串\(A\)和\(B\),长度分别为\(n\)和\(m\),只含Z,P,S,B四个大写字母,定义\(B\)在第\(p\)位(\(0 \le p \le n - m\))匹配\(A\)为对\(B\)的每个位置\(B_i\),在\(A_{\max (0, p i - k)}\)到\(A_{min(n - 1, p i k)}\)中都…

架构层和建模域逻辑

在讨论用于建模域逻辑(例如事务脚本,表模块,域模型)的PoEAA模式时,我注意到人们对域模型模式是最好的印象(尽管印象不对)。 因此,他们开始将其应用于所有内容。 不配领域模型模式 让…

一步步通过命令行cl.exe编译Windows程序

Windows系统下有强大的IDE工具VS,VC6.0等,隐藏了很多编译和链接的细节。事实上,VS是通过调用cl.exe进行源代码编译。接着调用link.exe进行目标文件的链接等操作。有时候,如果出现编译或者链接错误,我们也可以通过命令行…

将数据流链接到加密转换的流CryptoStream 类

1.命名空间:System.Security.Cryptography 程序集:mscorlib(在 mscorlib.dll 中)----------------------------------------------------继承层次结构-System.Object----- System.MarshalByRefObject--------- System.IO.Stream-------------System.Secu…

Spring Batch:多种格式输出编写器

作为Spring Batch的坚定倡导者,我一直在谈论Spring Batch的概念,它为开发人员提供了一个框架,使他们可以专注于解决业务需求。 这样,它使开发人员不必花费过多的时间来解决所有技术问题以支持该解决方案。 为了说明我的意思&…

《七哥说道》第五章:入职惨做苦力,画饼一望无际

【转载请注明】: 原文出处:https://www.cnblogs.com/jstarseven/p/10521426.html 作者:jstarseven 码字挺辛苦的..... “你是住在回龙观东大街附近吗,那先不急下班,一会我开车顺带你回去吧!” 第二家公司的…

通过源码将git升级到最新版

因为go-get下载hugo失败,需要升级git到最新版本。 下载最新git代码 wget -O git-master.zip https://github.com/git/git/archive/master.zip编译 unzip git-master.zip cd git-masteryum install openssl-devel curl-devel expat-devel perl-ExtUtils-MakeMaker …

win10只有edge浏览器能上网的解决方法

问题描述:电脑就只有edge浏览器和自带的邮件可以上网,但是QQ Chrome,360浏览器都无法上网; 解决方法:打开命令提示符(管理员),执行netsh winsock reset,重启系统就好了。…

CTF dotNet逆向分析

题目来源http://ctf.idf.cn/index.php?ggame&marticle&aindex&id36 .NET逆向第一题 嗯,看名字就应该明白了,快去下载吧! http://pan.baidu.com/s/1bnvVbp9 下载后是一个DotNetCrackMe1.exe文件。 分析 逆向分析的基础问题&…

xaas_从XaaS到Java EE – 2012年哪款该死的云最适合我?

xaas您是否曾经想过要使Java EE正常运行需要什么? 是的 多年。 从托管我自己的主机开始,转到一些托管产品 ,最后偶然发现了PaaS运动。 老实说,我并没有太认真。 我只是想把我的东西放到某个地方,而不在乎解决方案。 在…

day3----python变量与常量

一、python变量: 1、概述:(1)程序可操作的存储空间的名称;(2)程序运行期间可以改变的数据(3)每个变量都有特定的类型 2、作用:将不同类型的数据存储到内存中 …

垃圾收集中的代际差异

去年,我一直在帮助新兴公司Instana创建一个Java代理,该代理可跟踪Java应用程序中的执行情况。 收集并结合此执行数据以生成用户请求以及系统所有者半球内服务之间的最终通信的跟踪。 这样,可以可视化非结构化通信,从而显着简化了由…

简单解释 MapReduce 算法

一个有趣的例子 你想数出一摞牌中有多少张黑桃。直观方式是一张一张检查并且数出有多少张是黑桃? MapReduce方法则是: 给在座的所有玩家中分配这摞牌 让每个玩家数自己手中的牌有几张是黑桃,然后把这个数目汇报给你 你把所有玩家告诉你的数…