【JMeter】初识JMeter(1)
一、JMeter介绍
JMeter是一款开源桌面应用软件,可以用来模拟用户负载来完成性能测试工作。JMeter的功能在版本升级的过程中已经十分强大,现在多数互联网公司都在使用JMeter来完成产品或者项目的性能测试工作。因为开源所以更具扩展性,能够胜任更多的工具具有更多的可能性。
JMeter的体系结构

图3-1的中的每一个标签就是组件
X空间分为5个维度,Y空间分为2个维度,Z空间1个维度
X1~X5是负载模拟的一个过程,使用这些组件来完成负载的模拟。
Y1:包含负载模拟部分,负责模拟用户请求
Y2:结果验证部分,负责验证结果的正确性
Z:负责结果的收集,实践上只有一个组成部分--监听器,监听器不仅可以放在线程组内,也可以放在线程组之外
二、JMeter下载安装与运行
1)JMeter 安装
1.下载地址:http://jmeter.apache.org/(下载最新版本的JMeter,并解压到任意位置)
2.安装JDK,配置环境变量(JAVA_HOME),最低要求jdk 1.6及以上版本
2)JMeter 运行
1.进入到目录:D:\jmeter\Jmeter\apache-jmeter-2.9\bin,下运行jmeter.bat启动jmeter
注意:打开的时候会有图形化界面与命令窗口界面
2.打开之后,是中文界面,如果需要展示英文界面,选项->选择语言->英语,即可
三、JMeter测试计划元件
打开JMeter页面如下:

1.Test Plan(测试计划)
用来描述一个性能测试,包含本次测试所有相关功能
右键单击即可建立测试计划

2.Thread (user)线程用户
通过下图我们可以看到有3个添加线程组的选项setUp Thread Group,tearDown Thread Group,线程组
1)setUp Thread Group
一种特殊类型的ThreadGroup,用于执行预测试操作。
2)setDown Thread Group
一种特殊类型的ThreadGroup的,可用于执行测试后动作。
3) thread group(线程组)
这个就是我们通常添加运行的线程。通俗的讲一个线程组,,可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。线程组中包含的线程数量在测试执行过程中是不会发生改变的。
线程组:
名称:就如字面意思,起个有意义的名字就行
注释:
线程数:这里选择10
Ramp-Up Period:单位是秒,默认时间是10秒。它指定了启动所有线程所花费的时间,比如,当前的设定表示“在10秒内启动10个线程,每个线程的间隔时间为1秒”。如果你需要Jmeter立即启动所有线程,将此设定为0即可
循环次数:表示每个线程执行多少次请求。
3.取样器
取样器用来模拟用户操作,向服务器(被测试系统)发出Http请求,WebSerive(SOAP\XML-RPC Request)请求或者Java请求等。我们可以把Http请求元件看成是一个没有界面的浏览器,他可以发送请求,接受服务器响应的数据
取样器的访问路径:【测试计划】→【线程组】→【添加】→【Sampler】

4.断言
断言是用来判断结果是否正确。说白了就是用一个预设的结果(值、表达式、时间长短等条件)与实际结果匹配,匹配到则成功,否则失败
断言的访问路径:【测试计划】→【添加】→【断言】

5.监听器
JMeter的测试结果需要添加监听器来收集,JMeter结果收集程序的设计模式就是监听器模式。JMeter的监听器有两个任务
(1)添加结果监听,并且可以保存测试结果到文件,这些结果数据可以供再次分析使用。
(2)展示结果,JMeter可以以表格或图形的形式展现结果,方便测试人员分析测试结果。
监听器的访问路径:【测试计划】→【添加】→【监听器】

6.前置处理器
在测试脚本开发过程中,我们在请求发送前可能会做一些环境或者参数的准备工作,那么我们可以在前置处理器中来完成这些工作。例如:在对数据库操作前先建立一个数据库连接
前置处理器的访问路径:【测试计划】→【添加】→【前置处理器】

7.配置元件
性能测试中为了模拟大量用户操作我们往往需要做参数化,JMeter的参数化可以通过配置元件来完成,比如:CSV Data Set Config,它可以帮助我们从文件中读取测试数据。JMeter配置元件还可以记录服务器返回的数据,比如:Http Cache Manager,自动记录服务器返回的Cache信息。简而言之,它为取样器提供预备数据,然后由取样器发出请求。
配置元件的访问路径:【测试计划】→【添加】→【配置元件】

8.后置处理器
后置处理器一般放在取样器之后,用来处理服务器返回的结果。
后置处理器就是专门用来对响应数据做处理的元件,JMeter的关联就是通过后置处理器来完成的。
后置处理器的访问路径:【测试计划】→【添加】→【后置处理器】

9.控制器
我们在收取邮件的时候,只需要登陆一次就可以查看多封邮件。这个场景在JMeter中实现,我们需要控制登录的次数,如何实现呢?
控制器是通过各种组合完成奇葩需求
控制器的访问路径:【测试计划】→【线程组】→【添加】→【逻辑控制器】

10.定时器
为了足够真实的模拟用户负载,我们需要模拟一些请求在同一时刻同时发送,就好像大家在同一起跑线上,然后一声令下,同时起跑。
定时器的访问路径:【测试计划】→【线程组】→【添加】→【定时器】

11.工作台
顾名思义,工作平台。
它不直接参与运行,它的功能有:
(1)我们在运用JMeter录制HTTP协议脚本时就用到它,我们可以在它下面建立一个HTTP代理服务器元件,设置代理信息,然后进行录制。

(2)设置服务器监控(HTTP Mirror Server)
(3)显示当前JMeter属性信息
(4)备份脚本,特别是我们在脚本调试调试过程中可以把它作为一个元件暂存区
【JMeter】初识JMeter(1)的更多相关文章
- 初识Jmeter
初识Jmeter 测试计划是根节点,其下可以有多个Thread Group,起始可配setUp Thread Group和tearDown Group.在每个Group下可创建其它节点,模拟各类实际行 ...
- 性能测试--初识Jmeter
初识Jmeter Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. 它可以用于测试静态和动 ...
- JMeter (3) —— JMeter录制脚本并压力测试用户登陆场景以CAS SSO为例(101 Tutorial)
JMeter (3) -- JMeter录制脚本并压力测试用户登陆场景以CAS SSO为例(101 Tutorial) 主要内容 JMeter录制脚本并进行压力测试用户登陆场景,并以CAS SSO单点 ...
- JMeter (2) —— JMeter与WebDriver测试用户登陆以CAS SSO为例(101 Tutorial)
JMeter (2) -- JMeter与WebDriver测试用户登陆以CAS SSO为例(101 Tutorial) 主要内容 JMeter与WebDriver测试用户登陆以CAS SSO为例 环 ...
- JMeter (1) —— JMeter与WebDriver安装与测试(101 Tutorial)
JMeter (1) -- JMeter与WebDriver安装与测试(101 Tutorial) 主要内容 JMeter安装 WebDriver安装 一个简单的JMeter+WebDriver示例 ...
- 【jmeter】 jmeter 测试HTTP接口
到apache官网下载jmeter:http://jmeter.apache.org/download_jmeter.cgi 1.运行 bin/jmeter.bat ,添加线程组 2.添加HTTP请求 ...
- 【jmeter】jmeter测试手机app的服务器压力
具体步骤: 1.电脑启动jmeter 2.jmeter在测试计划新建线程组. 3.在工作台新建http代理服务器 4.配置HTTP代理服务器 5.设置IE代理到本地 6.手机wifi设置代理连接到PC ...
- 【jmeter】jmeter环境搭建
一. 工具描述 apache jmeter是100%的java桌面应用程序,它被设计用来加载被测试软件功能特性.度量被测试软件的性能.设计jmeter的初衷是测试web应用,后来又扩充了其它的功能.j ...
- Jmeter 03 Jmeter脚本开发
JMeter 工作区介绍 JMeter Http 协议录制 JMeter 脚本调测 JMeter 关联 JMeter 参数化 JMeter 检查点 JMeter 事务 JMeter 集合点 JMete ...
随机推荐
- ImportError: No module named caffe.proto解决办法
原文 https://blog.csdn.net/lanyuelvyun/article/details/73628152 在用自己的数据训练基于caffe的SSD模型的时候,我们需要将图片数据转 ...
- 【转】asm.js 和 Emscripten 入门教程
Web 技术突飞猛进,但是有一个领域一直无法突破 ---- 游戏. 游戏的性能要求非常高,一些大型游戏连 PC 跑起来都很吃力,更不要提在浏览器的沙盒模型里跑了!但是,尽管很困难,许多开发者始终没 ...
- 使用C#反射机制访问类的私有成员【转】
首先我必须承认访问一个类的私有成员不是什么好做法.大家也都知道私有成员在外部是不能被访问的.而一个类中会存在很多私有成员:如私有字段.私有属性.私有方法.对于私有成员访问,可以套用下面这种非常好的方式 ...
- [leetcode]Jump Game @ Python
原题地址:https://oj.leetcode.com/problems/jump-game/ 题意: Given an array of non-negative integers, you ar ...
- SQL操作查漏补缺
SQL教程地址:http://www.w3school.com.cn/sql/index.asp TOP 子句 TOP 子句用于规定要返回的记录的数目. 对于拥有数千条记录的大型表来说,TOP 子句是 ...
- 【R】函数-统计函数
- 【大数据】MongoDB安装(转)
https://note.youdao.com/share/?id=40be7f77434910e8860c5fd1ef5d24fe&type=note#/ MongoDB安装 环境 Cent ...
- nginx location 匹配的规则
nginx 的配置文件中, server里面的location 的配置项的理解: server { listen 24010; client_max_body_size 30M; location = ...
- 个人知识点总结——Java并发
Java并发实在是一个非常深的问题,这里仅仅简单记录一下Java并发的知识点.水太深.假设不花大量的时间感觉全然hold不住,可是眼下的精力全然不够,兴趣也不在这 什么是线程安全性 某个类的行为和其规 ...
- Python输出信息
Python很多情况下,都是通过Console输出信息,大量翻屏滚动的信息,太乱.而pip安装的效果就很好,只是在一行输出信息,不断变化.网上找资料,不难. 用print的话,跟一个“,”就表示不换行 ...
