Jmeter实现简单web负载测试
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的多节点模式来进行操作,让多台机器同时进行测试。这一个我们也把它放到之后再去探讨。
Jmeter实现简单web负载测试的更多相关文章
- 使用JMeter进行Apache Kafka负载测试
1.卡夫卡负载测试 在这个Apache Kafka教程中,我们将了解如何使用Apache JMeter,如何在Apache Kafka上执行Kafka负载测试.此外,这个Kafka负载测试教程教我们如 ...
- JMeter进行Apache Kafka负载测试
1.卡夫卡负载测试 在这个Apache Kafka教程中,我们将了解如何使用Apache JMeter,如何在Apache Kafka上执行Kafka负载测试.此外,这个Kafka负载测试教程教我们如 ...
- Jmeter教程 简单的压力测试
Jmeter教程 简单的压力测试:http://www.cnblogs.com/TankXiao/p/4059378.html
- 使用VS2008进行WEB负载测试
软件测试中使用VS2008进行WEB负载测试 最近接触关于多线程的软件测试,所以对vs2005里的测试开始感兴趣,今天学习试用了一下,记下所获得的. vs 测试分“WEB测试”,“单元测试”,“负载测 ...
- Jmeter教程 简单的压力测试【转】
Jmeter教程 简单的压力测试[转] Jmeter是一个非常好用的压力测试工具. Jmeter用来做轻量级的压力测试,非常合适,只需要十几分钟,就能把压力测试需要的脚本写好. 阅读目录 什么是压力 ...
- 使用JMeter进行简单的压力测试
一.压力测试 顾名思义:压力测试,就是 被测试的系统,在一定的访问压力下,看程序运行是否稳定/服务器运行是否稳定(资源占用情况). 比如: 2000个用户同时到一个购物网站购物,这些用户打开页面的速 ...
- 工具使用-----Jmeter教程 简单的压力测试
摘抄于http://www.cnblogs.com/TankXiao/p/4059378.html 以下是英文版的,中文版的也差不多的 Jmeter是一个非常好用的压力测试工具. Jmeter用来做 ...
- jmeter性能测试实战-web登录测试
一.项目背景: 网站信息: 操作系统类型 二.需求: 登录并发测试 三.场景: 1s增加两个线程,运行2000次 分别看20.40.60并发下的表现 四.监控: 成功率.响应时间.标准差.cpu.me ...
- Jmeter进行简单mysql数据库测试
1.环境准备: mysql: mysql-5.7.17.msi jdbc驱动: 自己百度一下即可 Jmeter: 3.2 2.打开Jmeter,创建测试计划, 点击浏览,添加jdbc驱动 3.添 ...
随机推荐
- 【计算机网络】网络地址转换NAT
网络地址转换NAT 要知道到每个IP使能的设备都需要一个IP地址.以一个家庭为例,假设当地的ISP已为该家庭分配过一块地址,但是后期家庭中的智能设备增加(智能手机.电脑等),这些都需要IP地址才可上网 ...
- Jmeter (一) 安装
https://blog.csdn.net/ls1792304830/article/details/52718177 一.准备工具 1.Windows 操作系统 2.jmeter 3.JDk 依赖环 ...
- python 3.4.3 安装pygame
之前一直都是用的python3.5,后来接触了pygame,又被python3.5的打包折磨的死去活来,后来干脆用python 3.4.3. 我之前安装轮子都是直接打开cmd,然后 pip3 inst ...
- Ubuntu 18.04 安装配置 MySQL 5.7
Ubuntu 18.04 安装 mysql 的过程中,竟然没有让你输入秘密?!(之前在 Ubuntu 14.04 下,安装过程中会询问密码),这导致安装完 mysql 初始秘密不知道的问题. $ su ...
- Pyspark常用API总结
DF 类似于二维表的数据结果 mame age 狗山石 23 获取df的列名: df.columns 显示当前值 打印 df.show() show(2) show括号里面传入参数可以显示查看几行 s ...
- java8学习之Lambda表达式初步与函数式接口
对于Java8其实相比之前的的版本增加的内容是相当多的,其中有相当一大块的内容是关于Lambda表达式与Stream API,而这两部分是紧密结合而不能将其拆开来对待的,但是是可以单独使用的,所以从学 ...
- spark写数据入kafka示范代码
一.pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...
- C语言构建小型Web服务器
#include <stdio.h> #include <sys/socket.h> #include <stdlib.h> #include <string ...
- Spring 初探(二) AOP 图集
Spring AOP属于第二代AOP.采用Java作为AOP的实现语言(AOL),采用动态代理机制和字节码生成技术实现. 代理设计模式 ISubject 对被访问者或者被访问资源的抽象,某些场景下不使 ...
- java怎样实现重载一个方法
重载(重新载选方法): java允许在一个类中,存在多个方法拥有相同的名字,但在名字相同的同时,必须有不同的参数,这就是重载,编译器会根据实际情况挑选出正确的方法,如果编译器找不到匹配的参数或者找出多 ...