如何运行50k +并发用户的负载测试?

如何运行50k +并发用户的负载测试?

穆世明 51Testing软件测试网 昨天

点击上方蓝色字体,关注我们

 

本文将介绍使用50k并发用户测试轻松运行负载测试所需的步骤(以及最多200万用户的更大测试)。

 

快速步骤概述

 

 

1.写你的脚本

2.使用JMeter在本地测试

3. BlazeMeter SandBox测试

4.使用一个控制台和一个引擎设置每引擎用户数量

5.设置和测试群集(一个控制台和10-14个引擎)

6.使用主/从功能达到最大CC目标

 

 

第1步:编写脚本

 

  在开始之前,请确保从JMeter Apache社区获取最新的JMeter版本。

  在开始之前,您需要下载JMeter插件管理器。下载JAR文件后,将其放入JMeter的lib / ext目录。然后,启动JMeter并转到“选项”菜单以访问插件管理器。

  有很多方法可以获得你的脚本:

  使用BlazeMeter Chrome扩展程序记录您的方案

  使用JMeter HTTP(S)测试脚本记录器, 您可以设置代理,运行测试并记录所有内容

  从头开始手动操作并构建所有内容(可能用于功能/ QA测试)

  如果您的脚本是录制的结果(如步骤1和2),请记住:

  您需要更改某些参数,例如用户名和密码,或者您可能希望设置包含这些值的CSV文件,以便每个用户都可以是唯一的。

  您可能需要使用正则表达式,JSON路径提取器,XPath Extractor提取诸如Token-String,Form-Build-Id等元素,以便以“AddToCart”,“Login”等方式完成请求。

  保持脚本参数化并使用配置元素(例如HTTP请求默认值),以便在环境之间切换时更轻松。

 

第2步:使用JMeter进行本地测试

 

  使用View Results Tree元素,Debug Sampler,Dummy Sampler和打开的Log Viewer(如果报告了一些JMeter错误),使用一个线程,一次迭代开始调试脚本。

  遍历所有场景(真实和错误的响应)以确保脚本按预期运行。

  使用一个线程成功运行脚本后,将其提升到10-20个线程10分钟并检查:

  如果你打算让每个用户都是独一无二的 – 就是这样吗?

  你有任何错误吗?

  如果您正在进行注册过程,请查看您的后端 – 是否根据您的模板创建了帐户?它们是独特的吗?

  从摘要报告中,您可以看到有关测试的统计信息 – 它有意义吗?寻找平均响应时间,错误,命中率/秒。

  一旦你的脚本准备好了:

  通过删除任何Debug / Dummy Samplers并删除脚本侦听器来清理它

  如果您使用监听器(例如“保存对文件的响应”),请确保您不使用任何路径!如果是监听器或CSV数据集配置,请确保不使用本地使用的路径。而是仅使用文件名,就好像它与脚本位于同一文件夹中一样。

  如果您使用自己专有的JAR文件,请务必上传它。

  如果您使用多个线程组(或不是默认线程组),请确保在将值上载到BlazeMeter之前设置这些值。

 

第3步:BlazeMeter SandBox测试

 

  如果这是你的第一个测试,你应该检讨这个文章,了解如何在BlazeMeter创建测试。

  SandBox它实际上是任何具有多达300个用户的测试,并且使用一个控制台最多只需50分钟。

  SandBox的配置允许您测试脚本和后端,以确保BlazeMeter的一切正常。

  要做到这一点,首先,按下灰色按钮:JMeter引擎我想要完全控制!完全控制您的测试参数。

  您可能遇到的常见问题包括:

  防火墙 – 确保您的环境对BlazeMeter CIDR列表(正在不时更新)开放并将它们列入白名单

  确保存在所有测试文件,例如CSV,JAR,JSON,User.properties等

  确保您没有使用任何路径

  如果仍然遇到问题,请查看日志中的错误(您应该可以下载整个日志)。

  SandBox配置可以是:

  引擎:仅限控制台(一个控制台,0个引擎)

  主题:50-300

  加速:20分钟

  迭代:测试永远持续下去

  持续时间:30-50分钟

  这将允许您在加速期间获得足够的数据(如果您在那里遇到一些问题),您将能够分析结果以确保脚本按预期执行。

  您应该查看Waterfall / WebDriver选项卡以查看请求是否正常。此时你不应该得到任何错误(除非你的意图)。

  您应该观察监控选项卡以查看使用了多少内存和CPU – 这将帮助您完成步骤4,同时您将尝试设置每个引擎的用户数。

 

第4步:使用一个控制台和一个引擎设置每个引擎的用户数量

 

  既然我们确信剧本在BlazeMeter中完美运行,我们需要弄清楚我们可以将多少用户应用于一个引擎。

  如果您可以使用SandBox数据来确定,那太好了!

  在这里,我将为您提供一种方法来解决这个问题,而无需回顾SandBox测试数据。

  将测试配置设置为:

  线程数:500

  加速40分钟

  迭代:永远

  持续时间:50分钟

  接下来,使用一个控制台和一个引擎。

  运行测试并通过Monitoring选项卡监控测试引擎。

  如果您的引擎没有达到75%的CPU利用率或85%的内存使用率(可以忽略一次峰值):

  将线程数更改为700并再次运行测试

  提高线程数,直到获得1000个线程或60%的CPU /内存使用量

  如果您的引擎超过了75%的CPU利用率或85%的内存使用率(可以忽略一次峰值):

  查看您第一次达到75%的时间点,然后查看您当时有多少用户。

  再次运行测试; 而不是500的增加,把你从上一次测试中获得的用户数量

  这一次,在实际测试中加入你想要的加速(5-15分钟是一个很好的开始)并将持续时间设置为50分钟。

  确保在整个测试过程中不要超过75%的CPU或85%的内存使用率

  为了安全起见,您可以更安全地减少每个引擎10%的线程数。

 

第5步:设置并测试您的群集

 

  我们现在知道一个引擎可以获得多少线程。在这一步结束时,我们将知道一个集群(测试)可以获得的用户数量。

  群集是一个逻辑容器,只有一个控制台和0-14个引擎。即使您可以使用超过14个引擎创建测试,它实际上会创建两个集群(您可以看到将增加的控制台数量)并克隆您的测试。

  每个控制台最多14个引擎基于BlazeMeter自己的测试,以确保控制台可以处理14个引擎的压力,这会产生大量数据需要处理。

  因此,在此步骤中,我们将从步骤4开始测试并仅更改发动机的数量并将其提升至14。

  对最终测试(1,2,3等)小时的全长进行测试。测试运行时,请转到监控选项卡并验证:

  没有一个引擎通过75%的CPU或85%的内存限制

  找到您的控制台标签。如果您将转到“日志”选项卡 – >“网络信息”并查找控制台的专用IP,则可以找到其名称。它不应达到75%的CPU或85%的内存限制。

  如果您的控制台达到了该限制,请减少引擎数并再次运行,直到控制台处于这些限制范围内。

  在此步骤结束时,您知道:

  您将拥有的每个群集的用户

  您将达到的每个群集的点击次数

  在负载结果图下的聚合表中查找其他统计信息,以获取有关群集吞吐量的更多信息。

 

第6步:使用主/从功能达到最大CC目标

 

  我们已经到了最后阶段。

  我们知道脚本正在运行,我们知道一个引擎可以维持多少用户,并且我们知道我们可以从一个群集获得多少用户。

  我们假设我们有这些值:

  一个引擎可以拥有500个用户

  该集群将有12个引擎

  我们的目标是进行50k测试

  因此,要做到这一点,我们需要创建50,000 \(500 * 12)= 8.3个集群。

  我们可以使用8个集群的12个引擎(48K)和一个集群,其中有4个引擎(另外2个)。但是,最好像这样分散负载:

  我们将使用10代替每个集群12个引擎,因此我们将从每个集群获得10 * 500 = 5K,并且需要10个集群才能达到50k。

  这将有助于我们:

  不保持两种不同的测试类型

  通过简单地复制现有的集群,我们可以增长5k(5k比6k更常见)

  如果需要,我们可以随时添加更多。

  我们现在准备用50k用户创建我们的最终主/从测试:

  将测试名称从“我的产品测试”更改为“我的产品测试 – 从属1”。

  因此,我们回到第5步中的测试,在高级测试属性下,我们将其从Standalone更改为Slave。

  按保存,我们现在有九个奴隶和一个主人中的第一个。

  回到你的“我的产品测试-slave 1.”

  按复制。

  现在,重复步骤1-5,直到创建所有九个从属。

  回到你的“我的prod test -salve 9”并按下Duplicate。

  将测试名称更改为“My prod test -Master”。

  转到“高级测试属性”并将其从“从”更改为“主”。

  检查我们刚刚创建的所有从站(我的prod test -salve 1-9)并按save。

  您对50k用户的主从测试已准备就绪。通过按下主站上的启动,您将启动10个测试(一个主站和九个从站),每个测试具有5k个用户。

  您可以将每个测试(从站或主站)更改为来自不同的区域,具有不同的脚本/ csv /其他文件,使用不同的网络仿真和/或不同的参数。

  您的主服务器和从服务器的汇总报告将在主报告中的新选项卡中找到,称为“主加载结果”,您仍然可以通过打开报告来查看每个单独的测试结果。

原文地址:https://www.cnblogs.com/xxm2017/p/10405909.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Jmeter:Authenticationcredentialswerenotprovided上次在使用Jmeter对手机app进行录制后,使用查看结果树对脚本进行回放,出现了{“detail”:“Authenticationcredentialswerenotprovided.”}的问题上次的链接地址:https://blog.csdn.net/Test20201990/article/details/
初次使用jmeter时,结果树中返回的数据为未转码内容,如下:  1、在后置处理器中增加beanshellpreprocessor,如下:  Strings=newString(prev.getResponseData(),"UTF-8");charaChar;intlen=s.length();StringBufferoutBuffer=newString
jmeter默认语言设置: 1、临时设置:进入options--ChooseLanguage-- 选择中文简体,设置后语言 切换成中文,重启失效 2、永久设置:进入jmeter目录下的bin目录,用文本编辑工具ue或notepad++等 打开jmeter.properties文件,进行编辑: 找到行: #language=en 修改为: language=
第一步:打开jmeter工具。 第二步:点击鼠标右击,点击添加_线程_线程组,新增线程组。 第三步:添加HTTP请求 第四步:点击页面调试器(以谷歌浏览器为例F12)填写协议,IP,请求,路径 第五步:1.填写参数2.若页面里面没有token可以拿authorization替代,则需要创建HTTP信息头管理器,并进行
在之前的博文中,Jmeter二次开发——基于Java请求,已介绍了Jmeter二次开发的基础情况,上次分享的是java请求开发,今天来分享下Jmeter中的函数开发。聊到Jmeter的函数,知道Jmeter使用的博友肯定很熟悉。Jmeter自带一个函数库,有很多的函数,比如:__P,__Random,函数助手给我们提供了很多的方便
打开虚拟机然后用远程连接工具SSH连接到数据库将serveragent.zip放到Linux环境中在虚拟机中复制路径进入到/opt/目录解压serveragent.zip修改端口为4444永久保存到防火墙中运行startAgent.sh连接虚拟环境里面的数据库更改地址切换路径修改SQL语句点击
jmeter断言之Beanshell断言(判断数据库结果是否符合预期)该篇文章主要讲一下beanshell断言处理数据库结果。(一)首先需要添加配置原件JDBCConnectionConfiguration连接数据库信息,然后发送jdbc请求获取预期结果。我现在使用得是result_variable_name获取得是响应结果集。接下来对数
《jmeter连接MSQL数据库指导》**一、**首先安装msql服务器。在桌面安装,过程中选择认证方式为之前的认证方式,新的认证可能会导致后面连接失败,报错认证问题。其次:打开安装好的数据库,新建一个database----例如:lhd然后再这个database里面新建一个表,例如:table01,然后表中可以自
前言本章主要讲述Windows环境下实现Jmeter+Ant+Jenkins自动化持续集成注:Jmeter+Ant+Jenkins实现集成的前提是这三者环境都已安装部署好关于Jmeter及Jenkins的下载安装我已在其他篇blog已讲述,这里主要讲一下Ant的部署配置传送门1)Jmeter:https://blog.csdn.net/Makasa/art
接口类型rest接口:通过http的get和post方式得到数据,返回报文为json格式soap接口:通过soap协议得到数据,相比httpservice更能处理复杂的数据,请求和返回报文都为xml格式接口测试作用1.在后端程序完成后,可尽早进行系统测试,发现bug2.解决系统测试复杂度,测试脚本运行速度快,节省
目录 一、Jmeter简介二、Jmeter安装三、设置Jmeter语言为中文环境四、Jmeter主要元件五、Jmeter元件的作用域和执行顺序六、Jmeter进行接口测试流程七、Jmeter进行接口测试流程步骤详解 八、总结如果你对此文有任何疑问,如果你也需要接口项目实战,如果你对软件测试、
在使用cookie管理器时,没有选择对应的策略会导致cookie传递不了下面来讲一讲这些用法 作用:用于管理Testplan运行时的所有的cookie。可以手动存储,也可以自动存储;每次反复清除cookie?:勾选后将每次请求结束后都会将本次请求产生的cookie进行清除,下次请求时重新获取。CookieP
接口测试及常用接口测试工具解析一、常见接口:二、前端和后端:三、什么是接口测试:四、接口组成五、为什么要做接口测试:六、接口测试怎么测:七、用什么工具测那些关于接口测试的二三事,首先大家要搞清楚,什么是接口,其次是前后端,之后逐一抽丝剥茧让它明朗起来,没有一蹴而就的事
jmeter接口java二次开发五步走第一步:了解jmeter处理java请求的流程​ Jmeter处理请求的流程:Jmeter会读取用户传入的数据,把数据初始化到Jmeter中。调用Java请求时,jmeter会运行内部的runTest函数,调用封装的JAVA接口,获取到返回数据获取到返回数据后,Jmeter可以把返回数据
1、添加断言1)先根据“结果树”中的“HTML”中的“响应数据”,找到需要检查的网页中的文本   2)复制上述内容,根据“结果树”中的“Text”中的“响应数据”,确定最终确定要检查的文本(可能含有标签)3)在线程组下找到需要检查的url,右击“添加”→断言→响应断言    
了解需求:1、性能测试过程中,我们经常需要对流程化的业务进行性能测试,其中涉及到很多接口,这时候问开发拿接口和参数就会降低工作效率,直接用jmeter的录制功能就能提高工作效率2、开发接口案例中,我们也经常会碰到一些上传、下载、导入等等一些接口功能,这些脚本如果直接问开发
 随机数https://blog.csdn.net/qq19970496/article/details/101027184随机日期https://blog.csdn.net/qq19970496/article/details/101027813随机字符串https://blog.csdn.net/qq19970496/article/details/101027925随机变量https://blog.csdn.net/qq19970496/article/details/1
JmeterP1性能测试关键指标1,这些指标大家看到后有什么感觉呢?对于功能测试,一般结果就两种,成功的或者是不通过的,有问题的和没问题的,有毛病的和没毛病的,比如打开网页,能打开就打开,打不开就打不开2,性能测试要更复杂一点,不能直接说行还是不行,要有一个参数,一个多维度的指标,来衡量他,比
  jmeter录制脚本示例  jmeter手工脚本编写与调试  业务逻辑实现之逻辑控制器  业务脚本参数化实现  jmeter处理cookie  beanshell脚本  jmeter脚本录制badboy:        
压力测试压力测试是考察当前软硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在使用压力测试,我们希望找出其他测试方法更难发现的错误,其中有主要有两种错误类型:内存泄漏,并发和同步1.性能指标响应时间:响应时间是指客户端发起请求开始到客户端接收到从服务器返回的响应