当前位置:首页 > 民俗文化

压测 阿里巴巴在开源压测工具 JMeter 上的实践和优化

Apache JMeter是Apache旗下的开源测试工具,成立于1999年初,至今已有20多年的历史。JMeter是主流开源压力测量工具之一,功能丰富,社区庞大。

性能测试通常集中在新系统上线或大规模活动之前,以验证系统能力,帮助排除和定位性能瓶颈。

压力测量活动可以大致分为几个步骤:

1.场景配置。配置压力测试场景以模拟用户和系统之间的交互。

2.进行压力测量。根据指定的压力水平开始压力测量。

3.压力监测和分析。压力测试通常侧重于压力RPS、成功率、服务响应时间、网络带宽等关键指标。

4.报告摘要。披露系统能力是否满足要求,记录系统性能的演变和优化过程。

接下来,我们讨论如何使用JMeter完成上述步骤,以及相关的最佳实践建议。

用Java开发JMeter,需要先安装JDK并配置PATH环境变量,然后从官网下载JMeter二进制压缩包并解压。建议在PATH环境变量中添加jmeter bin目录,这样在命令行输入jmeter命令就可以启动JMeter。

JMeter的场景配置

简单的HTTP请求配置

最常见的压力测试场景是HTTP压力测试。测试场景在JMeter脚本中称为测试计划。当JMeter打开时,默认情况下它将是空测试计划。JMeter使用并发来控制压力,一个线程可以看作是执行请求的虚拟用户。右键单击测试计划并添加线程组。

线程组默认为1个线程,只执行一次,方便测试和执行脚本。保持这个默认值就可以了。

在JMeter中发送请求的组件称为采样器。通过右键单击线程组添加一个HTTP请求节点。

HTTP请求最关键的配置是URL。JMeter允许URL协议类型、服务器名称、请求路径等。单独配置。您也可以将整个网址直接填写到路径中,并将其他字段保留为空。

这样就配置了最简单的HTTP压力测试脚本。

为了方便地测试和调试脚本,可以在测试计划下添加一个查看结果树侦听器。该侦听器仅用于在编辑脚本时测试和调试脚本,以及查看请求执行的详细信息,无需任何配置。

测试执行脚本

第一次执行脚本之前,需要保存脚本,比如保存为test.jmx每次执行脚本之前,JMeter都会默认自动保存脚本。

当连续执行脚本几次时,JMeter默认情况下不会清理历史记录。为避免历史执行结果的干扰,单击“全部清除”按钮,手动清除空历史记录,然后单击“开始”按钮执行脚本,执行结果更加刷新,便于故障排除。

根据默认的线程组配置,脚本完成一次。单击查看结果树,查看请求执行的详细信息,包括请求头、请求体、响应头和完整的响应体。

场景布置

真实的试压场景通常不是只有一个请求,而是多个请求按照一定顺序和规则的组合,即场景布局。场景编排是JMeter等压力测试引擎最重要的功能之一,也是与Apache ab等简单压力测试工具的重要区别之一。

这里我们假设一个最简单的场景,首先访问JMeter主页,停留1秒钟,然后跳转到下载页面。

当脚本访问网站的不同页面时,它可以添加一个HTTP请求默认值节点来配置默认协议类型和服务器名称。这样可以避免重复配置。当需要修改协议类型或域名时,只能修改HTTP请求默认值。

“HTTP请求默认值”配置服务器的名称是jmeter.apache.org,鼠标可以拖动“HTTP请求默认值”节点移动到“HTTP请求”节点之前。

每个请求节点都可以设置一个有业务含义的名称,方便理解和管理。访问JMeter主页的HTTP请求可以重命名为home,路径改为/。添加另一个HTTP请求节点,将其命名为下载页面,并将路径设置为/download_jmeter.cgi..

模拟在主页上暂停1秒钟。右键单击主节点,添加一个常量计时器子节点,并将延迟时间设置为1000毫秒。

再次执行脚本,点击查看结果树,查看两个HTTP请求节点的执行细节。

注意:

定时器节点作为场景布置的辅助节点,不请求执行动作或显示细节。

循环执行脚本时,最后一个节点下载页面执行完毕后,会立即跳转到脚本的开头,执行第一个节点home。您还可以在下载页面上添加一个计时器,以模拟在继续后续请求之前停留一秒钟。

JMeter的压力测试执行

在编辑和调试脚本时,我们通常将它们设置为1个线程,并且只执行一次。进行压力测试时,通常需要在更高的压力下持续进行一段时间。

脚本固定配置压力

如果计划在50并发执行2分钟,脚本线程组的配置可以修改如下。

配置描述:

1.并发数设置为50。

2.检查要始终执行的周期数。

3.检查调度程序,并将执行时间设置为120秒。

通常我们在JMeter图形界面中编辑脚本,但是压力测试时GUI占用的额外资源可能会影响压力性能,压力机可能没有图形界面环境。因此,脚本编辑完成后,JMeter压力测试通常以命令行模式执行。

进入JMeter脚本目录,执行JMeter压力测试的命令是jmeter -n -t。

如果执行上述test.jmx脚本,命令如下:jmeter -n -t test.jmx

输出结果如下:创建摘要

使用test.jmx成功创建了树

2019年6月25日星期二14:38:32开始测试

在端口4445上等待可能的关闭/停止测试现在/堆泵消息

00:00:27中的摘要+553 = 20.3/s平均值:1378最小值:252最大值:8587错误:0活动:50开始:50完成:0

1.《压测 阿里巴巴在开源压测工具 JMeter 上的实践和优化》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《压测 阿里巴巴在开源压测工具 JMeter 上的实践和优化》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guoji/1534521.html

上一篇

iPhone12一半用户选蓝色 究竟是怎么一回事?

下一篇

王永伟 【伴公汀】上海市市管干部提任前公示,王永伟拟任市委巡视组组长

美人心计慎儿 美人心计慎儿第几集死的 剧情节点大曝光

  • 美人心计慎儿 美人心计慎儿第几集死的 剧情节点大曝光
  • 美人心计慎儿 美人心计慎儿第几集死的 剧情节点大曝光
  • 美人心计慎儿 美人心计慎儿第几集死的 剧情节点大曝光

美人心计分集简介 美人心计慎儿第几集死的 剧情节点大曝光

  • 美人心计分集简介 美人心计慎儿第几集死的 剧情节点大曝光
  • 美人心计分集简介 美人心计慎儿第几集死的 剧情节点大曝光
  • 美人心计分集简介 美人心计慎儿第几集死的 剧情节点大曝光

美人心计剧情 美人心计慎儿第几集死的 剧情节点大曝光

  • 美人心计剧情 美人心计慎儿第几集死的 剧情节点大曝光
  • 美人心计剧情 美人心计慎儿第几集死的 剧情节点大曝光
  • 美人心计剧情 美人心计慎儿第几集死的 剧情节点大曝光

美人心计分集介绍 美人心计慎儿第几集死的 剧情节点大曝光

  • 美人心计分集介绍 美人心计慎儿第几集死的 剧情节点大曝光
  • 美人心计分集介绍 美人心计慎儿第几集死的 剧情节点大曝光
  • 美人心计分集介绍 美人心计慎儿第几集死的 剧情节点大曝光

美人心计分集 美人心计慎儿第几集死的 剧情节点大曝光

  • 美人心计分集 美人心计慎儿第几集死的 剧情节点大曝光
  • 美人心计分集 美人心计慎儿第几集死的 剧情节点大曝光
  • 美人心计分集 美人心计慎儿第几集死的 剧情节点大曝光

金马碧鸡坊 时间定了!昆明三市街人防工程和金马碧鸡坊节点工程2020年元旦前完工

云南网讯11月1日,记者从昆明市住房和城乡建设局举办的石三街民防工程和金碧路地下通道工程新闻发布会上了解到,该工程将于2020年元旦前竣工,届时金碧路路面将恢复,围墙将拆除。石三街人防工程和金马几坊节点工程实施后,步行...

奉贤足球网 未来一站式满足健身需求 中体城奉贤都市运动中心迎来关键节点

东方。com 11月29日报道:今天上午11点18分,中国体育产业集团打造的中国体育城?奉贤市体育中心迎来装修开工。记者获悉,该项目将于明年3月15日前完成,商业综合体计划于明年6月开放。据悉,该项目不仅拥有室外足球场...

猪肉大葱饺子馅 猪肉大葱馅饺子原来要在这个节点,加3次葱姜水,难怪以前有腥味

  • 猪肉大葱饺子馅 猪肉大葱馅饺子原来要在这个节点,加3次葱姜水,难怪以前有腥味
  • 猪肉大葱饺子馅 猪肉大葱馅饺子原来要在这个节点,加3次葱姜水,难怪以前有腥味
  • 猪肉大葱饺子馅 猪肉大葱馅饺子原来要在这个节点,加3次葱姜水,难怪以前有腥味