美文网首页
JMeter基本知识(一)

JMeter基本知识(一)

作者: 晓看云 | 来源:发表于2019-05-13 14:57 被阅读0次

一、基本知识

1、JMeter是一个非常优秀的开源性能测试工具。

    (1)JMeter工具的扩展性非常好

    (2)JMeter工具是开源的

    (3)JMeter与商业性能测试工具相比,JMeter工具就像一把瑞士军刀。

2、JMeter基本概念

(1)负载发生器:用于产生负载,通常以多线程或是多进程的方式模拟用户行为。

(2)用户运行器:通常是一个脚本运行引擎,用户运行器附加在线程或进程上,根据脚本要求模拟指定的用户行为。

(3)资源监视器:用于获取测试过程中服务器、负载机的资源数据

(4)报表生成器:根据测试中获得的数据生成报表,提供可视化的数据显示方式

3、测试计划元件

    3.1 Test Plan(测试计划):用来描述一个性能测试,包括与本次性能测试相关的所有内容。

    3.2 Threads Group(线程组):是在一个Test Plan中需要使用到的线程组。通俗地说,一个Thread Group可以看做是一个虚拟用户组,Thread Group中每个线程都可以理解为一个虚拟用户。Thread Group中包含的线程数量在测试过程中是不会发生改变的。

    (1)setup thread group

            一种特殊类型的ThreadGroup的,可用于执行预测试操作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试前进行定期线程组的执行。

    (2)teardown thread group

           一种特殊类型的ThreadGroup的,可用于执行测试后动作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试结束后执行定期的线程组。

    (3)thread group(线程组)

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

     3.3测试片段(Test Fragment)

        测试片段元素是控制器上的一种特殊的线程组,它在测试树上与线程组处于一个层级。它与线程组有所不同,因为它不被执行,除非它是一个模块控制器或者被控制器所引用时才会被执行。

JMeter有两种类型的控制器:取样器(sample)和逻辑控制器(Logic Controller),用这些原件来驱动处理一个测试。

    3.4 取样器(Sampler)

        Sampler:是性能测试中向服务器发送请求、记录响应信息的最小时间单位.

        JMeter原生支持多种不同的Samper,如HTTP Request Sampler、FTP Request Sampler、TCP Request Sampler、JDBC Request Sampler等,每一种不同类型的Sampler可以根据设置的参数向服务器发出不同类型的请求。在JMeter的所有Sample中,Java Request Sampler和Beanshell Request Sampler是两种特殊的可定制的Sampler.

     3.5 Logic Controller(逻辑控制器)

    Logic Controller: 包括两类元件,一类是用于控制Test Plan 中Sampler节点发送请求的逻辑顺序的控制器,常用有 如果(If)控制器、switch Controller、Runtime Controller、循环控制器等。另一类是用来组织可控制Sampler节点的,如事务控制器、吞吐量控制器。

    3.6 配置元件(Config element)

Config Element(配置元件):用于提供静态数据的支持。CVS Data Set config 可以将本地的数据文件形成数据池(Data Pool), 而对应的HTTP Request Sampler 和TCPRequest Sampler等类型的配置元件则可以修改Sampler的默认数据。

    3.7 定时器(Time)

    Timer(定时器):定时器用于操作之间设置等待时间,等待时间是性能测试中常用的控制客户端QPS的手段。类似于LoadRunner里面的"思考时间"。JMeter定义了Bean Shell Timer、Constant Throughput Time、固定定时器等不同类型的Timer

    3.8 前置处理器(Per Processors)

    Per Processors(前置处理器):用于在实际的请求发出之前对即将发出的请求进行特殊处理。例如,HTTP URL重写修复符则可以实现URL重写,当URL中有sessionID一类的session信息时,可以通过该处理器发出请求的实际的sessionID.

    3.9 后置处理器(Post Processors)

Post Processors(后处理器):用于对Sampler发出请求后得到的服务器响应进行处理,一般用来提取响应中的特殊数据

    3.10 断言(Assertions)

Assertions(断言):用于检查测试中响应的数据是否符合预期,断言一般用来设置检查点,用以保证性能测试过程中数据交互是否与预期一致。

    3.11 监听器(Listener)

Listener(监听器): 这个监听器可不是用来监听系统资源的元件。它是用来对测试结果数据进行处理和可视化展示的一系列元件。图行结果、查看结果树、聚合报告,都是我们经常用到的元件。

二、线程组参数

添加新的线程组参数,

Test Plan(add)-->Thread Group(Users)

1、线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数

2、Ramp-Up Period(in seconds)准备时长:设置的虚拟用户需要多长时间全部启动。如果线程数是10,准备时长是2,那么需要2秒钟启动10个线程,也就是每秒钟启动5个线程。

3、循环次数(Loop Count):每个线程发送请求的次数。如果线程数是为10,循环次数为100,那么每个线程发送100次请求。如果勾选了"永远",那么所有线程会一直发送请求,一到选择停止运行脚本。

4、Delay Thread creation until needed:直到需要时延迟线程的创建

5、调度器:设置线程组启动的开始时间和结束时间(配置调度器时,需要勾选循环次数为永远)

持续时间(秒):测试持续时间,会覆盖结束时间

启动延迟(秒):测试延迟启动时间,会覆盖启动时间

启动时间:测试启动时间,启动延迟会覆盖它。当启动时间已过,手动只需测试时当前时间也会覆盖它。

结束时间:测试结束时间,持续时间会覆盖它。

三、HTTP请求参数:

添加HTTP请求参数

Thread Group(add)-->Sampler-->HTTP Request

1、Web服务器

协议:向目标服务器发送HTTP请求协议,可以是HTTP或HTTPS,默认为HTTP

服务器名称或IP:HTTP请求发送的目标服务器名称或IP

端口号:目标服务器的端口号,默认值为80

2、HTTP请求

方法:发送HTTP请求的方法,可用方法包括GET、Post、Head、PUT、OPTIONs、TRACE、DELETE等

路径:目标路径URL路径(URL去掉服务器地址、端口及参数后剩余部分)

Content encoding:编码方式,默认为ISO-8859-1编码,这里配置为utf-8

3、同请求一起发送参数

在请求中发送的URL参数,用户可以将URL中所有参数设置在本表中,表中每行为一个参数(对应URL中的name=value),注意参数传入中文时需要勾选"编码"。

相关文章

网友评论

      本文标题:JMeter基本知识(一)

      本文链接:https://www.haomeiwen.com/subject/zuuaoqtx.html