jmeter怎么测性能(vs性能测试)

1.背景介绍XXX认证要求测试合作伙伴的APP服务器性能,主要涉及APP服务器最大的并发请求消息处理能力,根据《XXX认证解决方案设计说明书》里的要求,APP服务器并发数量为2500packet/s,即在10秒内的第1秒达到2500packet/s,后面9秒等待APP服务器处理。2.测试需求APP服务器并发请求消息处理能力为2500packet/s3.测试用例名称预置条件测试步骤预期结果APP处理北向推送数据的能力1.在公有云上完成

大家好,又见面了,我是你们的朋友全栈君。

1. 背景介绍

XXX 认证要求测试合作伙伴的 Web服务器性能,主要涉及 APP服务器最大的并发请求消息处理能力,根据《XXX 设计说明书》里的要求,Web服务器并发数量为 2500 packet/s。

2. 测试需求

Web服务器并发请求消息处理能力为 2500 packet/s

3. 测试用例

名称 预置条件 测试步骤 预期结果
Web服务器处理北向推送数据的能力 1.在公有云上完成Web服务器的部署2.在公有云上的IoT平台上传profile/publicKey/插件/CA证书3.完成Web服务器和IoT平台的对接4.在Web服务器上按顺序开户30万5.提供开户的IMEI和终端的payload信息给IOT平台测试人员,IOT平台测试人员将信息写入性能测试工具Jmeter中 启动Jmeter性能测试工具,以2500packet/s对APP服务器发https包,持续发送120秒 120秒后,在Web服务器能够查询到300,000条数据

4. 测试组网

Web服务器 和 Jmeter 安装在同一台 服务器或者服务器里的不同虚拟机里,2 个虚拟机通过内部的交换机互连。

5. Web服务器性能测试话务模型要求

话务模型需要对应场景的SA 提供,以X表为例,当前 SA 提供的话务模型是2500 packet/s,持续 2 分钟。

6. 性能测试对Web服务器的要求

6.1 Web服务器部署位置

Web服务器需要部署在实验室内网,以减少外网(比如 Internet)传输丢包对性能测试的影响。

6.2 Web服务器配置要求

Web服务器的配置需要测试厂家提供,一般包含前置机/业务机/数据库等。
前置机:16 核/32G/200G SATA
业务机:16 核/32G/200G SATA
数据库:16 核/32G/200G SATA
操作系统:CentOS 7.3/Window server 2008 等

6.3 Web服务器开放权限

Web 需要提供跟 IoT 平台对接时的 API 回调接口用于 Web 性能测试

7. 软件获取和安装

7.1 Jemeter 下载链接

http://jmeter.apache.org/download_jmeter.cgi

7.2 Jemeter 下载 zip 或者 tgz 任意格式都可以

在这里插入图片描述

7.3 Jmeter 安装

解压后,在下面的目录打开 Jmeter5.0
\apache-jmeter-5.0\bin
在这里插入图片描述

7.4 Jmeter 插件管理器下载链接

https://jmeter-plugins.org/install/Install/
在这里插入图片描述

7.5 Jmeter 插件管理器安装

将下载的插件管理器 jmeter-plugins-manager-1.3.jar 拷贝到 Jmeter 的安装目录下X:\apache-jmeter-5.0\lib\ext
在这里插入图片描述在这里插入图片描述

7.5 Jmeter 步长插件学习资料

https://blog.csdn.net/u011541946/article/details/71194990

8.JMeter GUI 图形界面测试

8.1 选择 GUI 图形界面语言

点击【Options】,选择【Choose Language】-【Chinese(Simplified)】
在这里插入图片描述

8.2 JMeter 按钮介绍

在这里插入图片描述

8.3 建立测试任务

建立线程组—>建立 HTTP 请求—>建立 HTTP 信息头管理器—>建立聚合报告—>建立查看结果树

8.3.1 建立线程组

右键点击【测试计划】,选择【添加】-【线程(用户)】-【线程组】
在这里插入图片描述在这里插入图片描述

8.3.2 建立 HTTP 请求

右键点击【线程组】,选择【添加】-【取样器】-【HTTP 请求】
在这里插入图片描述在这里插入图片描述

8.3.3 建立 HTTP 信息头管理器

右键点击【HTTP 请求】,选择【添加】-【配置元件】-【HTTP 信息头管理】
在这里插入图片描述在这里插入图片描述

8.3.4 建立聚合报告

右键点击【HTTP 请求】,选择【添加】-【监听器】-【聚合报告】
在这里插入图片描述在这里插入图片描述

8.3.5 建立察看结果树

右键点击【HTTP 请求】,选择【添加】-【监听器】-【察看结果树】

在这里插入图片描述在这里插入图片描述

8.4 测试任务参数填写

8.4.1 线程组参数填写

在这里插入图片描述

8.4.2 HTTP 请求参数填写

在这里插入图片描述在这里插入图片描述

8.4.3 HTTP 信息头管理器参数填写

在 IOT 平台上将 APP 的消息推送改为 http 方式,然后点击确认。
在 APP服务器上用 fiddler或者wireshark 抓包,可以看到 protocol 类型为 HTTP 的 POST 消息,将消息中的Request Headers消息填写到 JMeter 的信息头管理器中,消息名称的上下顺序不限。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

8.4.4 聚合报告参数说明

在这里插入图片描述

8.4.5 查看结果树参数说明

在这里插入图片描述

9.JMeter 命令行测试

E:\apache-jmeter-5.4.1\bin\jmeter.bat -n -t E:\HTTP请求.jmx -l result.jtl -e -o e:\Web_HttpsReport

在这里插入图片描述

10. 自动生成测试报告

上面的命令将测试报告输出到 E盘根目录下,打开测试报告文件夹下的 index.html 文
件,可以看到测试报告。测试报告主要关注 3 个指标,Average Response Times ,Throughput , Error%,要保证
Error 错误率为 0%,然后观察 Throughput 的值和Average Response Times是否满足要求。

在这里插入图片描述

11. FAQ

11.1 Jmeter 产生 address already in use 的异常处理方法解决方案:

  1. 在运行JMeter的机器上添加注册表条目MaxUserPort和TcpTimedWaitDelay,分别设
    置值为65534、30,以增大可分配的tcp连接端口数、减小处于TIME_WAIT状态的
    连接的生存时间。
  2. cmd中,用regedit打开注册表
  3. 在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters下 1)右击parameters,添加一个新的DWORD,名字为MaxUserPort
    2)双击MaxUserPort,输入数值数据为65534,基数选择十进制
  1. 右击parameters,添加一个新的DWORD,名字为TcpTimedWaitDelay
    4) 双击TcpTimedWaitDelay,输入数值数据为30,基数选择十进制
  1. 然后重启电脑!

11.2 Jmeter 在每个线程中只发送一条数据,然后就拆链的处理方法解决方案:

  1. Jmeter在每个线程中只发送一条数据,然后就拆链了,导致throughput达不到1500TPS以上,在【HTTP请求】的【高级】里将【实现】改成Java,设置连接和响应超时为10000ms后,JMeter可以在每个线程中发送多条数据。

11.3 Jmeter 同时发送多条建链请求【SYN】,APP 侧会丢弃部分【SYN】,导致 JMeter 重传【SYN】解决方案:

  1. tcp_max_syn_backlog是指定所能接受SYN同步包的最大客户端数量,即半连接上限;
  2. somaxconn是指服务端所能accept即处理数据的最大客户端数量,即完成连接上限。
  3. 这两个参数的默认值都是1024,需改为16384。
  4. 把参数添加到/etc/sysctl.conf中,然后执行sysctl -p使参数永久生效。

JMeter侧抓包:
JMeter侧抓包可以看到第1次发送【SYN】后,由于Web服务器没有响应导致3秒后重传,第2次发
送【SYN】后,由于APP还是没有响应导致6秒后再次重传,重传后APP回复了【SYN,ACK】

Web服务器侧抓包:
APP 侧抓包只看到 JMeter 发的最后一条【SYN】消息,所以说明 CentOS 在底层就把
【SYN】消息丢弃了,修改 tcp_max_syn_backlog 和 somaxconn 参数后,问题解决。

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/128751.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SSM框架中Dao层,Mapper层,controller层,service层,model层,entity层都有什么作用「建议收藏」

    SSM框架中Dao层,Mapper层,controller层,service层,model层,entity层都有什么作用「建议收藏」SSM是sping+springMVC+mybatis集成的框架。MVC即modelviewcontroller。model层=entity层。存放我们的实体类,与数据库中的属性值基本保持一致。service层。存放业务逻辑处理,也是一些关于数据库处理的操作,但不是直接和数据库打交道,他有接口还有接口的实现方法,在接口的实现方法中需要导入mapper层,mapper层是直接跟数据库…

    2022年7月12日
    26
  • 选择排序算法详解_八大排序算法图解

    选择排序算法详解_八大排序算法图解选择排序就是从待排序的元素中选择最小(最大)的元素,将其放在有序序列的相应位置,使这些元素构成有序序列。选择排序主要有两种:简单选择排序和堆排序。【简单选择排序】编写算法,要求使用简单选择排序算法对元素65、32、71、28、83、7、53、49进行从小到大排序。【算法思想】简单选择排序是一种简单的选择类排序算法,它的基本思想描述如下:假设待排序的元素有n个,在第一趟排序过程…

    2025年7月8日
    2
  • webservice 第三方接口[通俗易懂]

    webservice 第三方接口[通俗易懂]出处:http://www.blogjava.net/amigoxie/archive/2010/12/21/341257.html1.    WebService接口1.1 接口方式说明和优点在笔者的开发生涯中,当作为接口提供商给第三方提供接口时,以及作为客户端去调用第三方提供的接口时,大部分时候都是使用Web Service接口,WebService作为接口使用广

    2022年5月12日
    39
  • pycharm在全局搜索某个变量「建议收藏」

    pycharm在全局搜索某个变量「建议收藏」吃了写代码不规范的亏。。。明明记得之前写过某个功能,但是因为文件命名太随意,“123”,“111”,“a”,“test”等不知所谓的名称都被我用上了,以至于找代码时候焦头烂额,以后一定要养成规范命名的好习惯。不过如果已经这样写了,需要找某个函数时,可以用全局搜索的方式,通过找关键字,定位函数,定位文件。具体操作参看:pycharm如何全局进行查找一个关键词…

    2022年5月8日
    200
  • bae7088d064a7707d735e9dcb7a7f092

    bae7088d064a7707d735e9dcb7a7f092XCL:iVBORw0KGgoAAAANSUhEUgAAA9kAAAFoCAIAAADM369EAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3pr…

    2022年7月24日
    8
  • serv-u搭建ftp服务器「建议收藏」

    serv-u搭建ftp服务器「建议收藏」搭建并使用步骤1:下载serv-u,安装;步骤2:按提示创建新的域;步骤3:按提示创建用户;步骤4:通过访问ftp://(本机ip)即可访问服务器。多用户管理+多文件夹=实现多服务器效果创建多个用户,并指向不同的文件夹,便可以给多种不同要求的人使用,看起来就像是部署了多个服务器一样。上传文件失败+乱码问题+解决方案问题:初始的ser-u设置可能会有部分文件上传失…

    2022年9月12日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号