• 0
  • 0
分享
  • JMeter高级教程:性能测试与自动化云监控——软件测试圈
  • 曼倩诙谐 2021-09-17 09:46:25 字数 1884 阅读 761 收藏 0

  性能测试在当今企业系统中起到的作用越来越重要,但在执行性能测试的过程中往往会遇到一些问题:

  一、项目紧急,不具备独立的性能测试环境,功能测试和性能测试在一套环境同时执行测试时,其测试过程和测试结果会相互影响,导致结果不够客观。如果我们能在白天完成录制性能测试脚本,晚上自动执行脚本,这样便能规避它们之间的影响。虽然Jmeter可以利用自身定时器实现脚本的定时执行,但性能测试的执行过程中一般要同步监控应用服务器和数据库服务器的资源消耗情况,但在连续执行多支性能测试交易,无法做到每支交易的执行过程和资源监控过程一一对应。我们本次研究的第一个目标是想通过在批量执行多支交易的每支交易时自动调起云下服务器监控程序,自动生产监控结果。

  二、现在很多企业应用采用了云部署的方式,对云资源消耗的获取一般通过云监控平台去获取,但开发人员经常会对应用程序进行重新部署,这样带来的一个问题就是无法再查看历史数据,导致之前执行脚本过程时的应用服务器的资源消耗无法获取到。如果我们能在交易执行完之后立即通过HTTP请求去采集到这些数据并把它写入到本地文件中,便可以避免这个问题,所以我们本次研究的第二个目标是自动获取“云上”服务器的资源消耗。

  那么我们该如何实现呢?共分为以下六步。

  1.测试计划设置

  依托Jmeter自身功能实现在测试计划中设置线程组的执行方式为依次执行每个线程组。

  如下图:勾选独立运行每个线程组选项,当我们批量执行多支交易时,这种方式便会依次去执行每个线程组。

1-1.png

  2.puttyScript.sh设置

  添加BeanShell预处理程序编写java代码对puttyScript.sh进行初始化,puttyScript.sh文件主要是完成对putty实现服务器的登录并完成NMON命令的写入,从而生成NMON文件。

  3.Jmeter调用puttyScript.sh

  puttyScript.sh初始化完成之后,需要在脚本中添加BeanShell后置处理程序,调起puttyScript.sh,使其得到执行,在执行测试脚本的同时监控云下服务器资源,生成对应的NMON文件。

1-2.png

  4.参数记录

  每个测试脚本执行后,把每个脚本的执行开始时间作为一个java变量保存下来。因为后续去获取云平台的资源参数时,需要知道每支交易执行的开始时间、结束时间才能对应获取到相应的数据,所以需要把这个时间保存下来以备后续使用,结束时间只要通过开始时间加上运行时间便可以获得。

  5.Jmeter登录云监控平台

  通过F12获取到的云监控平台的登录请求参数,在Jmeter中添加HTTP请求输入以上的请求登录参数,在Jmeter中实现云监控平台登录,想要在云监控平台获取相关数据,必须依托于在云监控平台实现登录。

  6.获取云监控平台资源情况

  将步骤4当中获取到的开始时间,结束时间和间隔时间作为请求参数添加HTTP请求去获取每个交易在云监控平台中不同间隔点的资源消耗、进而对这些取到的数据通过beanshell后置处理程序编写java代码进行数据处理,最终将结果写入到我们本地的文件当中,以便我们更直观的分析数据。同时我们将各个取样点的值写入到了一个NMON文件当中,这样便可以通过图形化的方式观察到云应用的资源变化趋势。

  通过本次创新研究,我们实现了以下成果:

  1.实现定时批量调度执行多个性能测试脚本同时生成对应的测试结果,可通过将执行时间设置在晚上的方式,一方面充分利用晚上的空余时间极大地提高测试效率,同时降低统一环境下功能测试和性能测试相互带来的影响。

  2.实现性能测试“云上”监控的图形化展示及数据展示,一方面生成云服务器在脚本执行期间的平均CPU和内存的消耗情况的日志,同时将此数据写入到一个新的.nmon文件中,按30S一次取样的方式生成云服务器的CPU和内存在执行脚本期间的变化趋势。

  3.实现了云下服务器的自动监控。

  通过在执行脚本的同时调起nmon监控程序,在监控的服务器端生成每个脚本执行期间的.nmon文件。

  4.高通用性,适用于开放平台所有系统(“云上+云下”),当然应用服务器和数据库服务如果都在云下的情况,本次研究的成果也是支持的。

  后续我们将进一步将监控程序进行封装,以JAR包的方式进行引入到Jmeter当中,使其更加简洁,增强其易用性,相信在未来性能测试的过程中,本次研究成果能够很好的应用于其它项目中,减少人工参与,提高测试效率,为测试工作提供一些借鉴意义。



作者:李琼宇   

来源:51Testing软件测试网原创

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • postman 测试工具很多时候只用于简单的get或post请求,普通的请求只要加入适当的参数点击send就可以正常请求并得到相应的响应结果。当涉及到文件下载时,需要把点击send改为点击send and download(默认send处下拉选择)。如果请求参数很长要怎么复制完全:首选谷歌浏览器,在浏览器控制台指定请求地址处鼠标右击选择store as global variable,游览器会自动在控制台建立含参数信息的临时变量,此时用控制器函数JSON.stringfy(临时变量名称)展开所有参数信息方便复制。1、请求参数:2、浏览器控制台获取参数信息3、加全局参数,如加当前登入入或登入机构...
            0 0 4929
            分享
          • 1、引言小屌丝:鱼哥,我看了你这篇《Windows系统性能监控(一) 性能监视器介绍及使用》,让我学到了好多知识。小鱼:嗯,我自己在写这篇文章的时候,也学到了好多。小屌丝:是吗,你不都是知道了,咋还又学到了好多;小鱼:这个很正常啊,你把你会的知识,重新以文字的形式输出出啦, 你就会发现, 你又有了更深的一层理解,甚至,你会发现,你以前理解的是不是不全呢?小屌丝:额… 还有这层功效??小鱼:不仅是功效,还是疗效…小屌丝:好吧,我只能说,知识的匮乏,加大了我与大佬之间的距离…小鱼:大佬,那都是被摧残了无数次以后,依然"站立着",依然坚持着自己最初的梦想,依然持续的奋斗着。小屌丝...
            1 0 3569
            分享
          •   过去几周对苹果公司来说并不好过。 在该公司准备最终推出 M4 MacBook Pro 系列产品的过程中,一系列广泛的泄密事件披露了大量细节。 不过,这些只是基本型号的信息,其余配置的信息一直欠奉,但现在不该公司似乎无意中泄露了较小的 14 英寸 M4 MacBook Pro 的规格,显示基本型号可以搭配更多内存。  Reddit 用户 Yunseok-12 在Google上搜索有关 M4 MacBook Pro 的泄露信息时,偶然发现了一张可能是 14 英寸机型潜在配置的图片。 该网站的链接似乎是正确的,但内容并不完整,缺少配图,"Built for Apple Intellig...
            0 0 191
            分享
          • 读者提问:工作中大家用的比较多的接口测试工具有哪些呢 ?阿常回答:1、Postman2、Jmeter3、命令行工具 curl4、浏览器开发者模式 5、抓包工具 Fiddler、Charles 等等阿常碎碎念:阿常在平时工作中 1、2、4 使用得更多一些。其中,1 做接口测试更多一些;2 做接口压力测试更多一些;4 做 BUG 分析定位更多一些。看完今天的分享对你是不是有所启发呢,有任何想法都欢迎大家后台私信阿常,一起探讨交流。
            0 0 1230
            分享
          •   随着移动互联网时代的发展,自动化测试越来越成为企业刚需,软件测试的门槛已经不再低了。所以想要在这行业走得更远,走得更高并不容易,接下来按照粉丝的需求,给大家补充一些自动化测试方向的资源,如果你有补充可以在后面留言。  一、要学习一门语言  随着移动互联网发展,IT技术公司对IT人员的要求也越来越高,作为测试人员必须要学会一门语言(java或python或者GO),并通过该语言能够在工作当中开发一些脚本或工具,帮助我们提高工作的效率。  二、要学习自动化测试框架  在学会一门语言之后,进行深入的学习对应语言的自动化测试框架,比如web的自动化框架selenium、app的自动化框架appiu...
            0 0 930
            分享
      • 51testing软件测试圈微信