jmeter压测流程(jmeter压测mq)
大家好!今天让创意岭的小编来大家介绍下关于jmeter压测流程的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。
开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等
只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端
创意岭作为行业内优秀的企业,服务客户遍布全球各地,如需了解SEO相关业务请拨打电话175-8598-2043,或添加微信:1454722008
本文目录:
一、如何在容器中使用jmeter做压测
为什么会有这样的需求,我也不知道,没有需求就创造需求呗,直接开整:
首先上docker.hub上看看有没有现成的,关键字 alpine/jmeter ,一搜索果然有:
entrypoint.sh内容看不到,前面PATH已经配置好,应该是直接执行的jmeter程序。先执行下试试:
在服务器/tmp目录上先放上预先准备好的测试计划文件(可以从jmeter的桌面ui版配置好后导出),-t参数指向这个计划文件,就可以运行起来了:
很方便很直接,如果要生成测试报告,也可以在命令后面带上 -l /tmp/result.jtl 或者是同时生成html页面报告文件 -l /tmp/result.jtl -e -o /tmp/jmeter ,然后用nginx
指向上这个 tmp/jmeter ,就可以页面查看执行报告了:
那有没有办法让容器一直启动着,随时需要压测随时上来敲命令就好? (不要问为什么要这样做,就是玩儿)
那就搞一个空运行的容器玩儿吧:
百度告诉我,这事儿要成,关键命令是 tail -f /dev/null ,有点意思,那就写DockerFile吧:
可以看到做的事情不多,加载5.4.3的jmeter安装包,解压、配置,顺便装个curl测试用。
配置完就 docker build -t jmeter:1.0 . 跑起来吧。
build完后,输入 docker run -it --name jmeter -v /tmp/:/tmp/ jmeter:1.0 /bin/sh 运行起来:
直接输入jmeter命令,可以看到是可用的,然后按照之前的命令去执行指定测试计划就可以了。
二、jmeter多台电脑一起测试怎么使用
服务端系分提供的某接口样例为:
评估后可采用使用jmeter进行压力测试的步骤为:
启动jmeter:在bin下点击jmeter.bat,运行jmeter
2. 创建测试计划:
默认启动jmeter时会加载一个测试技术模板
3. 保存测试计划:修改名称为http_demo,点击保存,选择保存路径
4. 添加线程组
右键左边树中的测试计划“http_demo”节点,“添 加”--->”线程组”,添加一”线程组”
添加成功后,“http_demo”节点下多了“线程组” 节点
5. 添加http默认请求:(用来配置公共参数,不是http请求)
右键线程组,选择“添加”—〉 “配置元件”—〉“HTTP请求默认值”,点击“HTTP请求默认值”后
添加成功后,线程组”节点下多了“HTTP请求默认值”节点
6. 设置“HTTP请求默认值”:
针对本项目填写如下,服务端的系分说明
填写默认请求名、服务器、默认请求路径,保存测试计划
7. 添加http请求
右键“http_demo”,选择“添加”—〉 “Sampler”—〉“HTTP请求”
添加成功后,HTTP请求默认值“XX阅读平台”节点下发出现“HTTP请求”
8. 设置http请求
填写参考服务端系分:
填写完成,保存测试计划
9. 添加监听器:
右键线程组,选择“添加”—〉 “监听器”—〉“察看结果树”
添加成功后,“线程组”下增加了察看结果树节点
10. 试运行
点击执行
参看请求和响应执行情况:执行成功如下,检查响应数据返回的正确性
11. 添加图表分析监听器
12. 修改线程组的线程数等参数,用于压力测试
13. 执行压力测试,参看数据
点击执行后,选择图形结果,观察压力测试的数据内容
14. 如需要用表格查看结果
选择“添加”—〉 “监听器”—〉“用表格查看结果”
15. 设置“用表格查看结果”的主要参数:
Configure:点击“Configure”按钮,在弹出的窗口中选中“Save Response Data” 项,以保存响应数据
三、jmeter分布式压测与no-GUi模式压测
一、分布式压测
1.分布式压测总体结构
选择一台机器作为调度机(master),其他的机器作为测试执行的执行机(slave),由Contorller通过命令行将测试脚本发给slave,然后slave执行测试,同时将测试结果发送给master。
2.为什么需要分布式压测
按照一般的压力机配置,jmeter的GUI模式下,最多支持300左右的模拟请求线程,再大的话,容易造成卡顿、无响应等情况,这是限于jmeter其本身的机制和硬件配置。有时候为了尽量模拟业务场景,需要模拟大量的并发请求,这个时候单台压力机就无法满足需求。针对这种情况,jmeter的解决方案是支持分布式压测,即将大量的模拟并发分配给多台压力机,来满足这种大流量的并发请求场景。
3.分布式压测相关配置
master配置(本次使用window系统)
jmeter.properties文件中:修改 remote_host=xxx.xxx.xx.xxx:xxx --(slave的IP端口号,多个slave地址用“,”隔开);修改server.rmi.ssl.disable = true。
slave配置(本次使用Mac系统)
jmeter.properties文件中:新增 server.rmi.localport=1099
4.运行
1)slave 启动 ./jmeter-server 运行成功显示 -- Created remote object: UnicastServerRef2 [liveRef: [endpoint:[x x x x x](local),objID:[xxxxxxxxxxx]]]
2) master 启动jmeter.bat,在run中选择Remote Start 中对应的slave地址运行
3)连接接成功,在slave中显示 -- Starting the test on host x x x x x @ Wed Nov 13 22:33:50 CST 2019
4)观察slave中bin目录下的jmeter-server.log查看日志;观察master中添加的聚合报告,看是否slave在运行,且将测试结果发送到master上
5)运行结束,slave显示 -- Finished the test on host x x x x x x x x @ Thu Nov 14 23:21:22 CST 2019
5.此次运行遇到的问题:
1)slave一直停留在Starting the test on host x x x x x @ Wed Nov 13 22:33:50 CST 2019;观察jmeter-server.log 日志显示拒绝链接,导致超时(java.rmi.ConnectException: Connection refused to host: xxx.xxx; nested exception is:java.net.ConnectException: Operation timed out.... )
解决方案
1)检查slave是否打开了防火墙,打开的话就将其关闭
2)master是否有安装虚拟机,虚拟机的网络设置成了“Bridge 并勾选 Replicate physical network IP address所以在controller机器的网络路由设置中,显示的网络连接为:VirtualBox Host-Oly Network;去网络和internet设置--》更改适配器选项将其禁用
3)master是否为双网卡,在我的电脑--〉属性-->设备管理器-->网络适配器中,将出下图以外的都禁用掉(本地网卡一般以Realtek PCIe GBE开头; 无线网卡 中间带有Wireles PCI字样)--(本次是用这个方法解决上面的问题)
二、简单介绍在no-gui模式下运行的命令
jmeter -n -t /usr/local/xxx.jmx -l xxx.jtl
-n的意思是没有图形化界面运行
-t的意思就是指定运行哪个脚本
-l的意思是运行结果保存哪个文件里面
如果是将脚本文件直接存储在bin目录下面则直接运行命令:jmeter -n -t xxx.jmx -l xxx.jtl
四、jmeter 分布式压测配置Linux
本文只讲jmeter分布式压测怎么在Linux环境下配置:
使用分布式压测,是因为单个压测机并发到不到系统要求,所以多个压测机同时去压。
一般是由一个主机(master)和几台压力机(slave)组成。
主机 主要是起到启动和收集结果功能(当然也可以参与压测但不建议),测试脚本jmx在这台机器下,执行的时候会发送给每台压力机。
压力机 主要接受主机发送的压测脚本,同时进行压测,并把结果回传给主机。
以下是本人的压测环境,可以参考的去配置:
都是在Linux环境下(有些是主机Windows,压力机Linux,都是这样配置)
master主机:10.244.162.8
slave压测机(三台):10.244.162.9,10.244.162.10,10.244.162.11
主机ping一下压测机,是否可以ping通,否则关闭防火墙或者多个网卡(一台机器可能配置多个网卡多个IP,尤其是Windows当做主机)。
jdk,jmeter安装在主机和压力机下,尽量版本统一,jmeter在这几个机器服务都可以启动jmeter -v,如果权限不够到bin/目录下,命令: chmod 777 jmeter jmeter-server jmeter.sh 。(安装比较简单,这里就不多赘述)
保存。
在apache-jmeter-5.1.1/bin下执行./jmeter-server(代表jmeter启动,监听状态,等待主机发送测试脚本和执行命令) ,
有些启动命令:./jmeter-server -Djava.rmi.server.hostname=10.244.162.10(当前机器的ip),我觉得都行,没编辑配置文件那一项这样启动。
启动就设置完成。
如果是Windows当主机,重启一下jmeter在运行-远程启动既可以看到压测机。
如果是Linux下主机,需要用到命令:
我是在测试jmx脚本的目录下执行,这样方便收集信息。
sh (jmeter启动) -n -t (jmx脚本) -R (压力机ip,多个中间用英文逗号隔开) -l (test.jtl) -e -o (压测报告结果html文件夹)
sh /app/apache-jmeter-5.2.1/bin/jmeter.sh -n -t test.jmx -R 10.244.162.9,10.244.162.10 -l test.jtl -e -o test
注意:主机只传jmx给压力机,如果压测脚本有引用变量文件,比如csv,txt文件等是不传的,压力机也要有这些变量文件,复制过去存放的目录和上面压力机./jmeter-server启动的目录一致(就是你在哪个目录启动的就放在哪个目录下),否则压力机找不到变量文件,执行会报错或者直接结束无测试结果。
以上就是关于jmeter压测流程相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。
推荐阅读: