1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > jmeter异步请求测试_使用JMeter对异步HTTP / REST服务进行压力/负载测试

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

时间:2023-04-04 20:31:09

相关推荐

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

jmeter异步请求测试

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

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

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

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

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

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

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

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

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

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

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

翻译自: //11/stressload-testing-of-asynchronous-httprest-services-with-jmeter.html

jmeter异步请求测试

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。