HOME 首页
SERVICE 服务产品
XINMEITI 新媒体代运营
CASE 服务案例
NEWS 热点资讯
ABOUT 关于我们
CONTACT 联系我们
创意岭
让品牌有温度、有情感
专注品牌策划15年

    jmeter压测流程(jmeter压测mq)

    发布时间:2023-04-13 17:00:44     稿源: 创意岭    阅读: 53        

    大家好!今天让创意岭的小编来大家介绍下关于jmeter压测流程的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。

    开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等

    只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端

    官网:https://ai.de1919.com

    创意岭作为行业内优秀的企业,服务客户遍布全球各地,如需了解SEO相关业务请拨打电话175-8598-2043,或添加微信:1454722008

    本文目录:

    jmeter压测流程(jmeter压测mq)

    一、如何在容器中使用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压测流程相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。


    推荐阅读:

    NEJM在哪看(nest在哪里能看)

    jmeter压测流程(jmeter压测mq)

    dj网站排行榜第一(djmag音乐网)

    宣传海报创意(宣传海报创意手绘)

    学广告设计在哪里学(设计培训班学费一般多少)