Jmeter 介绍

Apache JMeter应用程序是开源软件,旨在为负载测试功能行为和测量性能的100%纯Java应用程序。它最初是为测试Web应用程序而设计的,但后来扩展到其他测试功能


常用压力测试工具对比
  • LoadRunner:性能稳定,压测结果及细度大,可以自定义脚本进行压测,过于重大,功能比较繁多;
  • Apache ab :模拟多线程并发请求,ab命令对发布负载的计算机要求很低,即不会占用过多cpu,也不会占用过多的内存,但却会给目标服务器造成巨大的负载,简单的DDOS攻击等;
  • webbench:webbench首先fork出多个子进程,每个子进程都循环做web访问测试。子进程把访问的结果通过pipe告诉父进程,父 进程做最终的统计结果。
Jmeter 基本使用场景介绍
压测不同的协议和应用 使用场景及优点
Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …) 功能测试
SOAP / REST Webservices 压力测试
FTP 分布式压力测试
Database via JDBC 纯java应用
LDAP 轻量目录访问协议 上手容易,高性能
Message-oriented middleware (MOM) via JMS 提供测试数据分析
Mail - SMTP(S), POP3(S) and IMAP(S) 各种报表数据图形展示
TCP等等
Jmeter本地快速安装
安装jdk

因为Jmeter是纯java应用,so其运行环境是需要jdk的,至于jdk下载方式,自行查询;https://blog.csdn.net/qq_36819281/article/details/83658585

安装Jmeter

GUI图形界面的安装

windows: https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-4.0.zip

mac/linux: https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-4.0.tgz


Jmeter 目录文件介绍
bin      核心可执行文件,包含配置
jmeter.bat windows 可执行文件
jmeter mac/linux启动文件
jmeter-server mac/linux分布式压测使用的启动文件
jmeter-server.bat windows分布式压测使用的启动文件
jmeter-properties 核心配置文件 extras 插件拓展的包
lib 核心的依赖包
ext 核心包
junit 单元测试包
Jmeter GUI语言切换
  • GUI修改:menu -> options -> choose language
  • 配置文件修改:bin目录下 -> jmeter.properties,找到默认#language=en 修改为 language=zh_CN
Jmeter基础功能组件介绍 Thread Group 和 Sampler(采样器)

下面先放一张图(windows)

  • 右键"测试计划" --> add --> thread group(控制总体并发)

        Number of Threads(users): 虚拟用户数,一个虚拟用户占用一个线程或者进程

        Ramp-Up Period(in seconds):全部线程执行时长

        Loop Count:循环次数

        Forever:是否永远执行
  • 右键"Thread Group" --> add --> Sampler -->HTTP Request(一个线程组下可以增加很多Sampler)

        Name:请求名称

        Comments:说明

        WebServer:web服务器工作区

            Protocol:协议,不填默认是Http

            ServerName or IP:服务器地址或者ip

            Port Number:端口号

            Method:请求方式

            Path:资源路径

            Content encoding:内容编码
  • 右键"HTTP Request(查看当前请求结果)/Thread Group(全局)" --> add --> Listener(监听器) --> View Results Tree(查看结果树)
Jmeter post请求示例

以登录接口为例



在BodyData中添加请求json数据;点击导航栏第一个右置三角标识;



此处可以看到,接口返回了错误信息,原因就是HTTP Header Manager(HTTP信息头管理器)没有约定数据传输方式,此时咱们修改一下里面的值为 Content-Type    application/json 再次执行



此时就可以看出已经得到了服务器的正常响应

Jmeter 用户变量设置(拓展)

如果咱们在做项目时,一个项目下添加了若干个HTTP Request,还是需要挨个配置域名,那就会略显麻烦了,在Jmeter中还有一个方法可以简化我们的操作;



进入测试计划,点击add 在 User Defined Variables 中可以设置一个全局变量;方便我们后面使用!!!

调用此变量时格式为 ${host}

01 - Jmeter4.x环境安装以及简单使用的更多相关文章

  1. Django学习笔记(一):环境安装与简单实例

    Django学习笔记(一):环境安装与简单实例 通过本文章实现: Django在Windows中的环境安装 Django项目的建立并编写简单的网页,显示欢迎语与当前时间 一.环境安装 结合版本兼容性等 ...

  2. Python之路-python环境安装和简单的语法使用

    一.环境安装 Win10(安装python3.x): 1.下载安装包     https://www.python.org/downloads/   2.安装完成后设置环境变量. 桌面-“计算机”-右 ...

  3. hadoop环境安装及简单Map-Reduce示例

    说明:这篇博客来自我的csdn博客,http://blog.csdn.net/lxxgreat/article/details/7753511 一.参考书:<hadoop权威指南--第二版(中文 ...

  4. 01,jupyter环境安装

    jupyter notebook环境安装 一.什么是Jupyter Notebook? 1. 简介 Jupyter Notebook是基于网页的用于交互计算的应用程序.其可被应用于全过程计算:开发.文 ...

  5. Spark——Standalone 环境安装及简单使用

    Standalone 环境安装 将 spark-3.0.0-bin-hadoop3.2.tgz 文件解压缩在指定位置(/opt/module) tar -zxvf spark-3.0.0-bin-ha ...

  6. kafka环境安装及简单使用(单机版)

    一个分布式发布-订阅消息传递系统 特点: 高吞吐量.低延迟 使用场景(举例): 日志收集:用kafka收集各种服务产生的log,通过kafka以统一的接口服务的方式开放给各种consumer,如had ...

  7. linux下expect环境安装以及简单脚本测试

    expect是交互性很强的脚本语言,可以帮助运维人员实现批量管理成千上百台服务器操作,是一款很实用的批量部署工具!expect依赖于tcl,而linux系统里一般不自带安装tcl,所以需要手动安装 下 ...

  8. RF环境安装-mac-osx10.10-基础环境-安装指南

    一.适用环境: mac系列,osx10.10,自带Python 二.简要步骤: 1. 安装pip,mac自带Python环境,所以我们改成安装pip 2. 安装wxPython,此处我下载的版本是wx ...

  9. 01.1 Windows环境下JDK安装与环境变量配置详细的图文教程

    01.1 Windows环境下JDK安装与环境变量配置详细的图文教程 本节内容:JDK安装与环境变量配置 以下是详细步骤 一.准备工具: 1.JDK JDK 可以到官网下载 http://www.or ...

随机推荐

  1. java反射, 不看你可别后悔

    开发中, 难免遇到些私有的属性和方法, 就好比下面的实体一样, 我们该怎么获得她, 并玩弄于手掌呢? 我们先来个实体瞧瞧, 给你个对象你也new不了, hahaha- 单身wang public cl ...

  2. Pandas 时间序列处理

    目录 Pandas 时间序列处理 1 Python 的日期和时间处理 1.1 常用模块 1.2 字符串和 datetime 转换 2 Pandas 的时间处理及操作 2.1 创建与基础操作 2.2 时 ...

  3. Untiy3D按方向键获取值

    一,如下代码 float h = Input.GetAxis("Horizontal"); float v = Input.GetAxis("Vertical" ...

  4. 20191115PHP cookie登入实例

    首先是登入页面 <form action="" method="post"> <input type="text" nam ...

  5. ES6——面向对象-基础

    面向对象原来写法 类和构造函数一样 属性和方法分开写的 // 老版本 function User(name, pass) { this.name = name this.pass = pass } U ...

  6. d3与echarts的区别

    1. 目前各大公司的大数据平台多使用d3还是echarts?什么时候适合用echarts,什么时候适合用d3? 在我看几种数据可视化平台多使用折线图,面积图和柱状图,条图居多,对于echarts和d3 ...

  7. android中两个不同名称的app不能同时安装

    ---恢复内容开始--- 两个app,第一个安装后,再安装第二个,会提示安装包损坏或者一切其他问题,但是这个安装包在别的手机可以正常安装,可以是因为以下问题 两个app中,包含有相同名称的provid ...

  8. 解决 myEclipse与tomcat 不同步的问题

    在我们使用eclipse做web调试的过程中,一般只需要在eclipse修改程序,然后在浏览器刷新就能发现文件更改,今天突然发现保存后不能更改了.1.检查tomcat中的文件发现文件没有更新.2.检查 ...

  9. 通过进程id找到进程对应的容器并统计每个进程的内存占用写到excel里

    # coding=utf-8 import re import os import commands import json import psutil from pyExcelerator impo ...

  10. Flask中的中间件

    flask也有和Django类似的中间件,不同的是使用三个装饰器来实现的. .berore_request在请求进入视图之前 @app.before_request def be1 bef be2 b ...