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异步请求测试

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

  1. 使用JMeter对异步HTTP / REST服务进行压力/负载测试

    尽管我一直在使用JMeter进行Web应用程序的压力测试和负载测试好几次,但我们还是花了一些时间才弄清楚如何使用该工具测试基于异步HTTP / REST的服务. 在我们这里,我是指一名程序员, Hol ...

  2. 编写junit 测试_使用JUnit和Repeat注​​释编写有效的负载测试

    编写junit 测试 EasyTest最近推出了一组新的注释,可帮助其用户编写有效的测试用例. 进入EasyTest的两个主要注释是: 重复 持续时间 今天,我们将讨论重复标注. 一种新的方法级别注释 ...

  3. 软件测试常用工具总结(测试管理、单元测试、接口测试、自动化测试、性能测试、负载测试...)

    前言 在软件测试的过程中,多多少少都是会接触到一些测试工具,作为辅助测试用的,以提高测试工作的效率,使用好了测试工具,能对测试起到一个很好的作用,同时,有些公司,也会要求掌握一些测试工具,或者,是在面 ...

  4. jmeter 高并发测试报告_使用 JMeter 进行压力测试

    原文连接:使用 JMeter 进行压力测试 一.前言 压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率:预估系统的承载能力 ...

  5. java 压力测试_使用 JMeter 完成常用的压力测试

    讲到测试,人们脑海中首先浮现的就是针对软件正确性的测试,即常说的功能测试.但是软件仅仅只是功能正确是不够的.在实际开发中,还有其它的非功能因素也起着决定性的因素,例如软件的响应速度.影响软件响应速度的 ...

  6. php异步请求$.post,如何用PHP实现异步请求、忽略返回值

    本篇文章的主要内容是用PHP实现异步请求.忽略返回值,具有一定的参考价值,有需要的朋友可以看看,希望能对你有帮助. 项目需要,场景如下: 某个条件下需要调用接口发送多个请求执行脚本,但是由于每个请求下 ...

  7. ajax异步请求验证ua的网页,ajax 异步请求数据

    点击页面 事件.获取新的列表 获取列表 // 因为是测试所以请求页面和参数都写死了 PHP 部分 分为两个.一个是第一次请求的php页面,别一个是异步请求的php页面 index.php $list ...

  8. java异步请求显示数据格式_JSON(四)——异步请求中前后端使用Json格式的数据进行交互...

    json格式的数据广泛应用于异步请求中前后端的数据交互,本文主要介绍几种使用场景和使用方法. 一,json格式字符串 functionsentAjax(){ $.ajax({ type:'POST', ...

  9. js异步请求php数据,原生JS发送异步数据请求实例详解

    这篇文章主要为大家详细介绍了原生JS发送异步数据请求的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 在做项目的时候,有时候需要用到异步数据请求,但是如果这个时候没有框架的依赖,就需要用到 ...

最新文章

  1. 一天一个命令--ifconfig
  2. 科大星云诗社动态20210210
  3. 工业机器人打磨抛光编程员工资_一种工业机器人打磨抛光工作平台的制作方法...
  4. Python是非常优美的语言,那到底如何个美呢?
  5. python3 set相关操作
  6. Linux运维新主机挂载硬盘,linux运维:Linux下添加新硬盘+分区及挂载详细步骤图解...
  7. Java基础-Collection集合接口(List及Set)
  8. 使用kitti2bag和RVIZ播放KITTI数据集
  9. Android:安卓虚拟机(Dalvik ART)学习
  10. python自动化办公——python操作Excel、Word、PDF集合大全
  11. SercureCRT软件通过SSH连接ubuntb报错:password authentication failed解决方案
  12. Bugku CTF 每日一题 想蹭网先解开密码
  13. 自考c语言程序设计02600,自考02600《C语言程序设计》模拟试卷十一
  14. 多图赏析联想Windows 8平板ThinkPad Tablet 2
  15. css3实现缺角四边形_CSS3实现缺角矩形与折角矩形以及缺角边框代码实例
  16. 2021年中国移动广告行业发展现状及趋势:发展趋势不断攀升,互动广告已逐渐成为主流[图]
  17. Elasticsearch X-Pack许可证过期解决办法
  18. ai人工智能将替代人类_AI再次击败人类
  19. 关于App置灰黑白化的探索
  20. 创业企业的薪酬战略与薪酬管理

热门文章

  1. Java IO: 文件
  2. Spring MVC常用注解,你会几个?
  3. 漫画:什么是中间人攻击
  4. 输入框限定保留三位小数点
  5. java通过commons-fileupload实现多张图片的上传(servlet)
  6. SpringCloudGateway静态路由配置
  7. 转:高等数学、线性代数、概率论数理统计书籍推荐
  8. group by分组、having() 筛选组的用法
  9. 自我审视记录本_春天重新审视战略模式
  10. java登录界面命令_Java命令行界面(第12部分):CLAJR