一、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)的更多相关文章

  1. 初识Jmeter

    初识Jmeter 测试计划是根节点,其下可以有多个Thread Group,起始可配setUp Thread Group和tearDown Group.在每个Group下可创建其它节点,模拟各类实际行 ...

  2. 性能测试--初识Jmeter

    初识Jmeter Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. 它可以用于测试静态和动 ...

  3. JMeter (3) —— JMeter录制脚本并压力测试用户登陆场景以CAS SSO为例(101 Tutorial)

    JMeter (3) -- JMeter录制脚本并压力测试用户登陆场景以CAS SSO为例(101 Tutorial) 主要内容 JMeter录制脚本并进行压力测试用户登陆场景,并以CAS SSO单点 ...

  4. JMeter (2) —— JMeter与WebDriver测试用户登陆以CAS SSO为例(101 Tutorial)

    JMeter (2) -- JMeter与WebDriver测试用户登陆以CAS SSO为例(101 Tutorial) 主要内容 JMeter与WebDriver测试用户登陆以CAS SSO为例 环 ...

  5. JMeter (1) —— JMeter与WebDriver安装与测试(101 Tutorial)

    JMeter (1) -- JMeter与WebDriver安装与测试(101 Tutorial) 主要内容 JMeter安装 WebDriver安装 一个简单的JMeter+WebDriver示例 ...

  6. 【jmeter】 jmeter 测试HTTP接口

    到apache官网下载jmeter:http://jmeter.apache.org/download_jmeter.cgi 1.运行 bin/jmeter.bat ,添加线程组 2.添加HTTP请求 ...

  7. 【jmeter】jmeter测试手机app的服务器压力

    具体步骤: 1.电脑启动jmeter 2.jmeter在测试计划新建线程组. 3.在工作台新建http代理服务器 4.配置HTTP代理服务器 5.设置IE代理到本地 6.手机wifi设置代理连接到PC ...

  8. 【jmeter】jmeter环境搭建

    一. 工具描述 apache jmeter是100%的java桌面应用程序,它被设计用来加载被测试软件功能特性.度量被测试软件的性能.设计jmeter的初衷是测试web应用,后来又扩充了其它的功能.j ...

  9. Jmeter 03 Jmeter脚本开发

    JMeter 工作区介绍 JMeter Http 协议录制 JMeter 脚本调测 JMeter 关联 JMeter 参数化 JMeter 检查点 JMeter 事务 JMeter 集合点 JMete ...

随机推荐

  1. PHP检测及判断手机登录用户是安卓或爱疯(iPhone)客户端

    <?php /* PHP 自动判断客户端平台(PC.安卓.iPhone.平板) * strtolower() 函数把字符串转换为小写: * strpos() 函数返回字符串在另一个字符串中第一次 ...

  2. Asp.netMVC中Html.Partial,RenderPartial,Action,RenderAction区别和用法

    https://www.2cto.com/kf/201702/602449.html Partial 和RenderPartial: 这两个的性质都是一样, 只指把一个个View给镶入进来, 只是回传 ...

  3. dubbo源码解析-spi(一)

    前言 虽然标题是dubbo源码解析,但是本篇并不会出现dubbo的源码,本篇和之前的dubbo源码解析-简单原理.与spring融合一样,为dubbo源码解析专题的知识预热篇. 插播面试题 你是否了解 ...

  4. frp错误处理:login to server failed: authorization failed

    frp使用过程中会出现各种错误信息,有些朋友不太清楚,打算记录一些常见的错误返回代码,这里介绍一下frpc客户端[W] [control.go:111] login to server failed: ...

  5. go语言之进阶篇拷贝文件案例

    1.文件案例:拷贝文件 示例: package main import ( "fmt" "io" "os" ) func main() { ...

  6. Binary Tree ZigZag Level Order Traversal leetcode java

    题目: Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from lef ...

  7. 热修复 DexPosed AOP Xposed MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  8. python用post访问restful服务接口

    具体代码如下: import requests import json data={"]} url="http://XXXXX" data_json = json.dum ...

  9. google test框架与eclipse插件

    1. https://github.com/google/googletest    (google的测试框架) 2. eclipse测试框架插件 https://github.com/xgsa/cd ...

  10. 为Subline Text 3 添加支持ini文件语法高亮

    转: http://lancelot.blog.51cto.com/393579/1783653 在Subline text 官网下载了Subline text 3 .不过发现没有对ini格式文件的语 ...