❶写你的剧本正则表达式
❷使用JMeter在本地测试后端
❸BlazeMeter SandBox测试安全
❹使用一个控制台和一个引擎设置每引擎用户数量服务器
❺设置和测试群集(一个控制台和10-14个引擎)网络
❻使用主/从功能达到最大CC目标并发
第1步:编写脚本测试
在开始以前,请确保从JMeter Apache社区获取最新的JMeter版本。ui
在开始以前,您须要下载JMeter插件管理器。下载JAR文件后,将其放入JMeter的lib / ext目录。而后,启动JMeter并转到“选项”菜单以访问插件管理器。spa
有不少方法能够得到你的脚本:插件
使用BlazeMeter Chrome扩展程序记录您的方案;
使用JMeter HTTP(S)测试脚本记录器, 您能够设置代理,运行测试并记录全部内容;
从头开始手动操做并构建全部内容(可能用于功能/ QA测试)。
若是您的脚本是录制的结果(如步骤1和2),请记住:
您须要更改某些参数,例如用户名和密码,或者您可能但愿设置包含这些值的CSV文件,以便每一个用户均可以是惟一的。
您可能须要使用正则表达式,JSON路径提取器,XPath Extractor提取诸如Token-String,Form-Build-Id等元素,以便以“AddToCart”,“Login”等方式完成请求。
保持脚本参数化并使用配置元素(例如HTTP请求默认值),以便在环境之间切换时更轻松。
第2步:本地测试
使用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 /其余文件,使用不一样的网络仿真和/或不一样的参数。
您的主服务器和从服务器的汇总报告将在主报告中的新选项卡中找到,称为“主加载结果”,您仍然能够经过打开报告来查看每一个单独的测试结果。