开始使用 JMeter 对您的网站进行性能测试
已发表: 2022-05-10缓慢和表现不佳的网站永远不会吸引观众。 除此之外,尽管您的网站在测试期间可能会以闪电般的速度运行,但您知道当流量突然激增时它会如何运行吗? 或者,如果您的业务出现增长突增,需要额外的集成和功能?
您正在寻找的是一种在各种情况下测试您的网站性能的方法。 这就是性能测试介入的地方。性能测试的主要目标是确保网站在投放市场之前的性能符合预期。 它有助于测试速度、可靠性、响应时间和资源使用情况。 用于所有性能测试的出色开源工具是 JMeter。 深入了解 JMeter 并了解如何在本文中实现测试。

为什么要进行性能测试
性能测试的目标不是发现错误,而是消除性能故障。 如果没有进行彻底的性能测试,网站可能会遇到一些问题,例如在多个用户同时使用时运行缓慢或可用性差。 性能测试的最重要原因之一是避免停机。
您是否知道,大约 59% 的财富 500 强公司每周都会遇到大约 1.6 小时的停机时间? 2013 年 5 分钟的停机时间让 Google.com 损失了高达 545,000 美元! 一次意外的网络服务中断使亚马逊每秒损失 1100 美元。 资源。
如果性能测试可以模拟服务器上的重负载,可以运行功能测试、应用程序测试和协议测试,那么所有这些都可以避免。
使用 JMeter 进行性能测试
Apache JMeter 应用程序是一个开源软件,一个纯粹基于 Java 的应用程序,旨在测试负载或性能测试。 它最初是由 Apache 软件基金会的 Stefano Mazzocchi 设计的。 JMeter 可以通过为 Web 服务器创建大量虚拟并发用户来模拟服务器上的重负载。
JMeter如何进行测试
JMeter 创建一个请求并将其发送到服务器。 一旦它接收到服务器请求,它就会收集它们并在图表或图形中可视化这些详细信息。 然后,它处理服务器请求,最终生成文本、XML、JSON 等多种格式的测试结果。 从收集的数据中,用户可以观察应用程序的行为和性能瓶颈,从而深入了解应用程序需要改进的地方。
为什么选择 JMeter
- 开源- JMeter 是一个开源软件,可以免费下载
- 平台无关- JMeter 是用 Java 开发的,Java 是世界上最流行的编程语言。 因此,它可以在任何操作系统上运行。
- 多协议支持- JMeter 不仅支持 Web 应用程序测试,还评估数据库服务器性能。 JMeter 支持所有基本协议,例如 HTTP、JDBC、LDAP、SOAP、JMS 和 FTP。
- 用户友好- JMeter 具有全面的 GUI,有助于创建测试计划和配置元素。 添加元素也很容易。 您只需右键单击测试计划并添加您需要做的事情。
JMeter 的元素
- 线程组- 线程组是线程的集合。 每个线程代表一个使用 AUT 的用户。 每个线程模仿一个真实的用户请求到服务器。
- Samplers - JMeter 支持测试 HTTP、FTP、JDBC 和更多协议。 线程组模拟用户对服务器的请求。 它帮助线程组知道它需要发出什么类型的请求(HTTP、FTP 等)。
- 侦听器- 侦听器便于查看者以表格、图形、树或某些日志文件中的简单文本的形式查看采样器结果。
- 配置- JMeter 中的配置元素用于配置或修改对服务器发出的采样器请求。
如何安装jmeter
下载和安装 JMeter 只有一个先决条件:在您的系统中安装 Java。
- 从这里下载 JMeter 并安装 - https://jmeter.apache.org/download_jmeter.cgi
- 要启动 JMeter:Apache jmeter 文件夹 > bin 文件夹 > 单击 jmeter.bat
创建测试计划
第 1 步:添加线程组

去添加,然后线程(用户)并选择线程用户。


选项
A. 出现错误后要采取的措施
B. 线程数 - 用户数
C. 以秒为单位的加速期 - 用户点击之间的时间间隔
D. 循环计数 - 测试将针对用户数量运行多少次
第 2 步:添加 HTTP 请求
右键单击 Thread 组,添加采样器并单击 Http request。
选项
A. 添加“服务器名称”
B. 不要提供 http 或 HTTPS,因为这些协议会出现在另一个框中,并且会在 http 请求案例中自动采用。
C.路径对话框→添加正斜杠。

第 3 步:添加侦听器
右键单击 Thread 组,添加一个 Listener,然后单击 View result in Table。

第 4 步:运行测试
保存测试并单击绿色箭头按钮。


是时候分析结果了
- 样品编号- 编号。 线程或用户。 在报告中会提到“this is sample number 1”,表示它是线程 1,然后是线程 2,以此类推。
- 开始时间- 每个线程或用户的开始时间
- 线程名称- 线程名称基本上是这里的线程组名称。 在线程组名称中,我们有这个数字 1-1 , 1-2 ......所以第一个意味着第一个用户的第一次迭代,第二个用户的第一次迭代等等。
- 标签- 标签是您的样品或请求名称。
- 采样时间- 这个样本(标签)花费了多少时间,以 am/s 为单位。
- 状态- 请求的状态。
- 字节- 接收到的字节
- 已发送的字节数- 已发送的字节数
- 延迟- 来自用户/浏览器的时间请求和响应时间。 从服务器到客户端/浏览器的请求响应,不包括服务器处理时间。 (仅请求和响应时间)
- 连接时间- 连接时间是您的应用程序连接到服务器所需的时间(以毫秒为单位)。
重要的是要知道延迟和连接时间应该总是很短。 较长的连接时间或延迟意味着网站的性能存在问题。