• 5
  • 4
分享
  • 掌握这个方法,测试服务器性能不在话下(上)——软件测试圈
  • 曼倩诙谐 2020-11-13 11:57:38 字数 1949 阅读 5255 收藏 4

  应用场景:设想要集中测试一个Web服务器的性能表现, 我们用一台机器模拟上千个用户不断地访问被测试的服务器,可能会遇到一些瓶颈,模拟的用户不够,服务器设置了安全措施、拒绝接收(当有超量的数据来自同一台机器在短时间内,服务器就会认为这是外来的攻击行为),测试机的配置过低、不能完成上千个用户的请求。

  解决方案:利用JMeter的分布式测试配置,就可以很轻松的解决上述问题。如下图所示,我们选择一台主机(Master),然后配置一些节点服务器(Slaves),主机发送测试运行指令,节点服务器在同一时间模拟用户对终端服器发送请求。这样总模拟的用户数量 = 单个节点用户数 * 节点服务器个数

1-1.png

  学习要点:

  如何配置主机与节点服务器

  如何调试测试计划,确保测试运行在节点服务器

  如何通过主机发出运行测试指令并验证测试结果

  温馨提示:如果您想按示例进行操作,一定要具备以下配置

  ·测试工具: JMeter 5.3

  ·测试机: 3 台 (本例中我安装了2台虚拟机Ubuntu做为节点,Windows 做为主机)

  主机配置 - Windows

  1.创建rmi_keystore.jks文件在主机(Master)上 (注:此文件也可以在任意节点服务器上生成,最终确保主机与节点服务器有相同的文件即可)。

  假设JMeter 5.3已经下载 且安装在主机上。打开Command Prompt并去到JMeter的\bin路径下(D:\InstalledApp\apache-jmeter-5.3\bin)。

  执行命令create-rmi-keystore.bat,依次回答提示的问题(本例中回答了第一问题,其它几个问题直接按了回车键)。最后,通过输入” yes” 确认你的回答。在问题Enter key password for ... ,可以直接按回车键。

1-2.png

  2.确认rmi_keystore.jks文件。

  完成以上操作以后,文件rmi_keystore.jks会显示在JMeter 的/bin文件夹下。

1-3.png

  配置节点服务器

  1.安装 JDK, Install JDK

  执行命令 sudo apt install openjdk-8-jre-headless 完成JDK的安装

  2.安装JMeter 5.3

  执行命令wget https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-5.3.tgz

  执行命令 tar -xzf apache-jmeter-5.3.tgz 解压JMeter

  完上以上步骤,确认JMeter 安装成功(示例中所有命令是在Desktop 的路径下执行的,因此JMeter的解压包就显示在桌面上,您也可以根据执行路径的不同确认JMeter是否安装成功。

1-4.png

  3.拷贝rmi_keystore.jks 到apache-jmeter-5.3/bin 目录下

1-5.png

  4.获取当前节点服务器的ip地址

  执行命令: ip r

1-6.png

  5.启动节点服务器

  执行命令 sh jmeter-server -Jserver.rmi.ssl.keystore.file=rmi_keystore.jks。(注意一定要去到jmeter的/bin目录下执行)

1-7.png

  6.拷贝测试计划以及相关的测试数据到节点服务器(示例中,测试计划DistributingPOST.jmx在JMeter的/bin文件下。)

  7.依照以上步骤完成对第二台节点服务器的配置

  GUI调试

  1.配置节点服务器

  打开文件jmeter.properties, 找到remote_hosts并输入节点服务器的IP(多个IP用逗号隔开),然后保存关闭即可。

1-9.png

  2.确认测试用例可以运行在主机上。(示例中模拟了6个用户向服务器发送Post的请求,从结果可以看出6个用户的请求都得到了成功的回应。)

  3.通常在正式测试之前,需要对测试计划进行不停地调试,或遇到问题时需要找出错的原因,GUI有时候可能会更直观一些。

  依次打开Run > Remote Start, 可以看到当前配置的节点服务器IP

  执行命令Remote Start All – 测试将同时运行在2台节点服务器上

1-10.png

  4.查看运行结果

  如下图 View Results Tree的结果中,12个用例运行成功,点击某一个用例,在右边的Sampler result中,Thread Name指示了当前用例运行的节点服务器IP。

  测试运行在节点服务器<192.168.1.15>

1-11.png

  测试运行在节点服务器<192.168.1.14>

1-12.png



作者:胡军英   

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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 一、前言测试的面试相对于开发的面试来说,对于技术的询问其实相对来说较少的,主要针对以下几个方面。测试理论,接口,数据库,linux,自动化,性能、个人情况这几大块。二、常见问题1、软件测试理论基础①什么是软件测试?在规定条件下对程序进行操作,发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。②软件测试主要测试用例设计方法是什么?白盒测试:逻辑覆盖、循环覆盖、基本路径覆盖;黑盒测试:等价类、边界值、因果图、状态图法、错误猜测、测试大纲、随机测试、场景。③测试计划、方案以及测试报告主要包括哪些方面?测试计划主要包括:测试范围(功能性测试;非功能性测试);测试通过/失败的标准(通过...
            12 13 1850
            分享
          •   只要访问过网页的地球人都知道,很多时候页面内容的加载并非与你的访问操作实时同步显现。是什么原因导致的呢?这是由于大多数Web应用程序都结合Ajax/Javascript技术开发,当浏览器进行页面信息加载时,页面中的元素会在不同的时间间隙内陆续完成加载,比较常见的场景诸如:跟随你的滚动条下滑,逐步呈现当前图文信息;鼠标悬停某文本框,自动出现提示文本等。  对于Web自动化测试而言,页面元素呈现的时间差异会让元素识别变得相对困难,在未能找到指定元素的情况下,还会引发各种异常报错,如“Element not found”等。所幸的是Selenium WebDriver提供了不同的等待类...
            2 2 1340
            分享
          •   新浪科技讯 北京时间1月16日晚间消息,据报道,微软正考虑对旧金山人工智能(AI)研究公司OpenAI投资100亿美元。分析人士称,这笔潜在交易有可能成为人工智能新时代的决定性交易。  如果微软对人工智能技术深远影响的押注是正确的,那么这笔交易还可能引发人工智能世界的一场重组,因为其他科技公司也竞相在“生成式人工智能”(Generative AI)的新领域争夺自己的位置。  上个月,OpenAI因为推出了一款智能聊天机器人系统ChatGPT而成为了全球关注的焦点。ChatGPT是一套人工智能系统,可以回答问题,并用听起来十分自然的语言生成文本。  ChatGPT很快就得到了微软的关注。微软...
            0 0 1080
            分享
          • 在第三方测试机构做测试多年,后来进入做产品的公司负责测试工作,才发现在第三方测试机构做测试是多么幸福的事。简要来说,产品形公司开发和测试往往在同一个部门,没有部门间沟通时的仪式感,往往比较随意。由此,测试会面临如下困局:1.需求飘忽不定;2.版本界限模糊3.留给测试的实际时间与计划时间往往差别巨大已上任意一方面事件的发生,会使得测试焦头烂额,何况往往是已上几点的叠加。常见的场景是:在软件临近发布的时候,部门领导整天对你瞪眼,嫌你拖慢了进度,嫌你测试不够充分,殊不知,开发给你交付软件比项目计划晚了好长时间,严重压缩了你的测试时间。经过实践,提出以下几方面的措施供大家参考:第一.明确需求。这个需求...
            0 1 2359
            分享
          • 一、什么是接口测试我们要想知道接口测试怎么做,首先要明白接口测试是什么?一般像系统内的组件接口数据交互测试、不同系统与系统之间的接口数据交互测试等,我们都可以称之为接口测试 !那么接口测试是怎么来测试接口的呢?接口测试就是通过接口的不同情况下的输入和与之对用的输出之间的关系,看看是否满足接口规范所规定的功能性、安全性以及性能方面的要求.简单的说:“接口测试是就是在没有前端页面或者前端还没完成的情况下,代替前端页面或者第三方使用者,来验证后端的接口实现是否符合接口规范。”二、接口测试的好处通过接口测试,我们可以测试出接口的稳定和正确性, 可以抛开前端的影响,迅速定位到后端的缺陷,提升测试的效率....
            2 2 2500
            分享
      • 51testing软件测试圈微信