zoukankan      html  css  js  c++  java
  • 【JMeter】初识JMeter(1)

    一、JMeter介绍  

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

    JMeter的体系结构

    image

    图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:jmeterJmeterapache-jmeter-2.9in,下运行jmeter.bat启动jmeter

         注意:打开的时候会有图形化界面与命令窗口界面

    2.打开之后,是中文界面,如果需要展示英文界面,选项->选择语言->英语,即可


    三、JMeter测试计划元件

    打开JMeter页面如下:

    image

    1.Test Plan(测试计划)

    用来描述一个性能测试,包含本次测试所有相关功能

    右键单击即可建立测试计划

    image


    2.Thread (user)线程用户

    通过下图我们可以看到有3个添加线程组的选项setUp Thread Group,tearDown Thread Group,线程组

    image

    1)setUp Thread Group

    一种特殊类型的ThreadGroup,用于执行预测试操作。

    2)setDown Thread Group

    一种特殊类型的ThreadGroup的,可用于执行测试后动作。

    3) thread group(线程组)

         这个就是我们通常添加运行的线程。通俗的讲一个线程组,,可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。线程组中包含的线程数量在测试执行过程中是不会发生改变的。

    image

    线程组:

      名称:就如字面意思,起个有意义的名字就行

      注释:

      线程数:这里选择10

      Ramp-Up Period:单位是秒,默认时间是10秒。它指定了启动所有线程所花费的时间,比如,当前的设定表示“在10秒内启动10个线程,每个线程的间隔时间为1秒”。如果你需要Jmeter立即启动所有线程,将此设定为0即可

      循环次数:表示每个线程执行多少次请求。


    3.取样器

         取样器用来模拟用户操作,向服务器(被测试系统)发出Http请求,WebSerive(SOAPXML-RPC Request)请求或者Java请求等。我们可以把Http请求元件看成是一个没有界面的浏览器,他可以发送请求,接受服务器响应的数据

    取样器的访问路径:【测试计划】→【线程组】→【添加】→【Sampler】

    image


    4.断言

    断言是用来判断结果是否正确。说白了就是用一个预设的结果(值、表达式、时间长短等条件)与实际结果匹配,匹配到则成功,否则失败

    断言的访问路径:【测试计划】→【添加】→【断言】

    image


    5.监听器

    JMeter的测试结果需要添加监听器来收集,JMeter结果收集程序的设计模式就是监听器模式。JMeter的监听器有两个任务

    (1)添加结果监听,并且可以保存测试结果到文件,这些结果数据可以供再次分析使用。

    (2)展示结果,JMeter可以以表格或图形的形式展现结果,方便测试人员分析测试结果。

    监听器的访问路径:【测试计划】→【添加】→【监听器】

    image


    6.前置处理器

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

    前置处理器的访问路径:【测试计划】→【添加】→【前置处理器】

    image


    7.配置元件

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

    配置元件的访问路径:【测试计划】→【添加】→【配置元件】

    image


    8.后置处理器

    后置处理器一般放在取样器之后,用来处理服务器返回的结果。

    后置处理器就是专门用来对响应数据做处理的元件,JMeter的关联就是通过后置处理器来完成的。

    后置处理器的访问路径:【测试计划】→【添加】→【后置处理器】

    image

    9.控制器

    我们在收取邮件的时候,只需要登陆一次就可以查看多封邮件。这个场景在JMeter中实现,我们需要控制登录的次数,如何实现呢?

    控制器是通过各种组合完成奇葩需求

    控制器的访问路径:【测试计划】→【线程组】→【添加】→【逻辑控制器】

    image


    10.定时器

    为了足够真实的模拟用户负载,我们需要模拟一些请求在同一时刻同时发送,就好像大家在同一起跑线上,然后一声令下,同时起跑。

    定时器的访问路径:【测试计划】→【线程组】→【添加】→【定时器】

    image

    11.工作台

    顾名思义,工作平台。

    它不直接参与运行,它的功能有:

    (1)我们在运用JMeter录制HTTP协议脚本时就用到它,我们可以在它下面建立一个HTTP代理服务器元件,设置代理信息,然后进行录制。

    image

    (2)设置服务器监控(HTTP Mirror Server)

    (3)显示当前JMeter属性信息

    (4)备份脚本,特别是我们在脚本调试调试过程中可以把它作为一个元件暂存区












  • 相关阅读:
    day10函数名称空间与作用域(3)
    day10函数参数使用(2)
    day10函数基础(1)
    文件处理
    vue打包时semver.js版本报错
    js修改日期
    vue click事件获取当前元素属性
    js截取关键字之后的字符串
    css 清除浮动
    纯CSS绘制三角形
  • 原文地址:https://www.cnblogs.com/OliverQin/p/10070055.html
Copyright © 2011-2022 走看看