Jmeter实现简单web负载测试

简介

Apache JMeter是Apache组织开发的基于Java压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库, FTP 服务器, 等等。

安装

上面的文字提到 Jmeter是基于Java进行开发的,所以理论上我们可以运行于任何安装有Java的平台上,而事实也确实如此,我们就大概说一下安装步骤。

· 安装Java环境,这一步我们就不做过多解释了,无论是百度、google 都可以搜到大量设备安装Java的技术文章。

· 下载源代码,官网下载

打开官网,到下载页面

· 解压

· 运行

对于有用户界面的Windows和Mac来说双击bin目录下的jmeter即可,对于无用户界面的server端我们接下来会专门说一下。

更加详细的打开方式可以看这里

使用

我们现在已经将Jmeter安装完成了,下面的问题就是如何操作了

下图便是Jmeter打开后的界面

· 添加测试任务

本文主要示例为 模拟多GET请求的负载测试方案

界面开始已经默认添加了一个测试计划,我们下面的步骤 也是要围绕着这个测试计划展开。

· 添加线程组

在线程组里我们要定义模拟访问的用户量以及访问频率访问时间

线程数 表示模拟同时有多少个用户进行访问

访问周期 表示每组现成访问的时间间隔

循环次数 则是表示线程组要循环访问多少次,可选永远

调度器 则是为了更好地控制测试的时间 在里面我们可以更好的指定测试计划,一般 调度器与循环次数任选其一

· 添加HTTP请求内容

添加HTTP请求内容,是真正我们要定义的请求的域名,请求的访问方式 访问内容的地方。

web服务器一栏我们就不多解释了,主要是请求的域名,IP加端口,在上图中我们以本地跑的一个服务为例

HTTP请求这一栏是定义请求的内容,请求的path、POST请求的内容、上传的文件等东西

在这里我们要模拟GET请求来测试 服务器的负载均衡,要考虑多样情况,我们自然要分不同的请求接口来进行测试,而不能单独放在一个接口上吊死,这样可以更加真实的模拟用户请求,也可以更加真实测出server的负载。

在这里我们要用到一个Jmeter内置的函数_StringFromFile

其中四个参数,第一个是文件名,第二个是要携带的参数(暂时未用到),第三个是开始行数,第四个是结束行数。填写完成后,点击生成会输出一段字符串在里面,

这是我们的一个示例文件,每一行为一个请求,可以自定义请求参数在里面

我们开始 结束行数都不写,这样在顺序执行完这两次请求后会继续循环执行。

我们已经生成一个函数字符串了,下面我们将刚才得到的字符串,填写到HTTP请求的路径里面,简单的一个测试计划基本就完成了。

测试

我们上面完成了基本的测试计划,下面我们就要开始进行测试,如果我们在用户界面,我们需要看到测试详情,以及汇总方案怎么办呢,在刚才的线程组上,添加 用表格查看结果 和 聚合报告 监听器就好了

点击上面的运行 我们会在上面的报告里面依次看到下图结果

这样,我们简单的测试也就基本完成了。

Server端测试

许多时候,我们的界面端 配置都比较低,所以有时候我们需要强大的Server端来协助完成测试。 server端上的安装,我们就不说了,和界面端大同小异,安装java 下载程序

在用户界面导出测试计划的JMX文件,上传到服务器

将上图我们生成路径的文件 也上传到服务器

编辑JMX文件,将原先的URL文件路径 替换为服务器上的文件路径

运行

./jmeter -n -t ../../HTTP请求.jmx -l ../../log

-n 表示 没有用户界面

-t 指的是测试文件 JMX

-l 则是表示详细的测试请求log 文件位置

运行完上面的代码后 会出现下面的结果

因为我们随便指向的一个服务,所以err 是100% ,请大家自动忽略,这样大家就可以在服务器上完成测试了。

PS

随着项目的增大,单台服务器已经完成不了测试任务,这时候我们可以使用Jmeter的多节点模式来进行操作,让多台机器同时进行测试。这一个我们也把它放到之后再去探讨。

时间: 2024-08-07 10:22:06

Jmeter实现简单web负载测试的相关文章

JMeter进行Apache Kafka负载测试

1.卡夫卡负载测试 在这个Apache Kafka教程中,我们将了解如何使用Apache JMeter,如何在Apache Kafka上执行Kafka负载测试.此外,这个Kafka负载测试教程教我们如何配置生产者和消费者,这意味着使用JMeter 开发Apache Kafka Consumer和Kafka Producer.最后,我们将看到在Jmeter中构建Kafka负载测试场景.然而,在Kafka负载测试之前,让我们学习Kafka的简要介绍,以便更好地理解其他工作. 使用JMeter进行Ap

使用JMeter进行简单的压力测试

一.压力测试 顾名思义:压力测试,就是  被测试的系统,在一定的访问压力下,看程序运行是否稳定/服务器运行是否稳定(资源占用情况). 比如: 2000个用户同时到一个购物网站购物,这些用户打开页面的速度是否会变慢,或者网站是否会奔溃. 二.JMeter简介 JMeter 最早是为了测试 Tomcat 的前身 JServ 的执行效率而诞生的.到目前为止,它的最新版本是3.0,它的测试能力也不再仅仅只局限于对于Web服务器的测试,而是涵盖了数据库.JMS.Web Service.LDAP等多种对象的

Jmeter教程 简单的压力测试

转载:http://www.cnblogs.com/TankXiao/p/4059378.html?utm_source=tuicool Jmeter是一个非常好用的压力测试工具.  Jmeter用来做轻量级的压力测试,非常合适,只需要十几分钟,就能把压力测试需要的脚本写好. 什么是压力测试 顾名思义:压力测试,就是  被测试的系统,在一定的访问压力下,看程序运行是否稳定/服务器运行是否稳定(资源占用情况) 比如: 2000个用户同时到一个购物网站购物,这些用户打开页面的速度是否会变慢,或者网站

jmeter性能测试实战-web登录测试

一.项目背景: 网站信息: 操作系统类型 二.需求: 登录并发测试 三.场景: 1s增加两个线程,运行2000次 分别看20.40.60并发下的表现 四.监控: 成功率.响应时间.标准差.cpu.mem.io等 在服务器所在操作系统中部署serverAgent 五.步骤 badboy录制(或jmeter录制) 导入jmeter 参数化.检查点.集合点 指标监控,资源监控 生成报告(保存到本地,后缀为.jtl,也可生成.xls文件)

搭建基于Ant+Jmeter+jenkins的自动负载测试框架的若干问题记录及解决

1.关于构建时使用的默认build.xml问题 如图,如果构建脚本build.xml不在workspace根目录.或者说构建脚本不叫build.xml.那么需要在高级里设置Build File选项的路径,指明脚本位置 2.关于jmx脚本中测试计划依赖jar包路径问题 如果你调用的脚本之前是在另一台机器上使用的,且脚本中测试计划所依赖的jar包不在相同的文件夹(例如在linux中调用之前是在windows系统中使用的jmx脚本,则路径会不一样),则需要修改测试计划依赖jar包的路径位置,如下图所示

使用JMeter进行负载测试——终极指南

这篇教程讨论的是JMeter,它是一款基于Java的.集合了几个应用程序.具有特定用途的负载和性能测试工具. 本篇主要涉及的内容: 解释一下JMeter的用途 JMeter的实现方式以及采用的技术 安装与配置 介绍用户界面的基本特征 详细介绍不同的测试计划的配置方法 如何分析结果数据 涉及几个重要的最佳实践 所有的例子都是基于Java 8 update 0.20,Eclipse Luna 4.4, JMeter 2.11, MySQL Community Server 5.6.21的开发环境.那

Apache JMeter开源压力测试/负载测试工具 2.12 官方最新版

软件介绍 Jmeter是一款使用Java开发的,开源免费的,测试工具, 主要用来做功能测试和性能测试(压力测试/负载测试),而且用Jmeter 来测试 Restful API, 非常好用. 如何学好Jmeter: 如果你用Jmeter去对Web进行功能测试,或者性能测试. 你必须熟练HTTP协议,才能学好Jmeter. 否则你很难理解Jmeter中得概念. Jmeter运行: 解压后, 运行  “bin/jmeter.bat” Jmeter 是支持中文的, 启动Jmeter 后, 点击 Opti

Jmeter之负载测试--在固定吞吐量下测试系统的性能表现

根据之前写的"性能测试之负载测试(生活比喻)",可知性能测试结果都是有前提的: 本篇主要是说明如何在固定吞吐量下测试系统的性能表现: 还是老套路: 场景 测试百度主页在20 QPS的情况下,响应时间.流量等性能数据: 分析 1.这里的20 QPS应该是指Jmeter发送请求的QPS,而不是服务器处理的QPS:--因为假如我们以20 QPS的速度向服务器发送请求,但是服务器每秒最多只能处理8个请求,那么我们无论如何都无法测得服务器在20 QPS的情况下的性能数据: 2.难点在于让Jmet

JMeter分布式负载测试(吞吐量控制器)

在本节中,我们将学习如何使用吞吐量控制器在JMeter中创建分布式负载测试计划. 出于测试目的,我们将在我们网站 www.yiibai.com 的URL下的某些网页上创建分布式负载.这些网页包括: 主页: www.yiibai.com 第1页(Java): www.yiibai.com/cplusplus/ 第2页(C语言): www.yiibai.com/cprogramming 第3页(Python): www.yiibai.com/python 注意: 假设创建了10个虚拟用户(线程)来在