良玉的博客 点点滴滴,积水成河_良玉的博客_页游、手游linux运维工程师之路

JMeter软件组件详细介绍

测试计划(Test Plan)是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器。

  线程组(Thread Group)代表一定数量的并发用户,它可以用来模拟并发用户发送请求

  取样器(sampler)定义实际的请求内容,被线程组包含,我们主要用HTTP请求。

  监听器(Listener)

  逻辑控制器(Logic Controller)

  断言(Assertions)

  配置元件(Config Element)

  前置处理器(Pre Processors)和后置处理器(Post Processors)

  定时器(Timer)

  JMeter主要组件介绍-测试计划

  测试计划(Test Plan)是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器。

  名称:你可以为你的测试计划取一个有意义的名字。

  注释:对测试计划的注释。

  用户定义的变量:用户可以自己定义变量,在用到此变量的时候直接用${变量名}引用即可。例:变量名=url,值=http://www.baidu.com,在需要http://www.baidu.com时直接用${url}即可。

  Add directory or jar to classpath:向类路径即%JMETER-HOME%\lib中添加目录及jar包。

  JMeter主要组件介绍-线程组

  名称:为线程组起名字。

  线程属性-线程数:设置发送请求的用户数目 ,即并发数。

  线程属性-Ramp-Up Period(in second):线程间的时间间隔,单位是秒。即所有线程在多少时间内启动。

  线程属性-循环次数:请求的重复次数,如果选择后面的forever(默认),那么 请求将一直继续,如果不选择forever,而在输入框中输入数字,那么请求将重复指定的次数,如果输入1,那么请求将执行一次,如果是0,会出现问题。

  调度器配置-启动时间:测试计划什么时候启动,启动延迟会覆盖它。

  调度器配置-结束时间:测试计划什么时候结束,持续时间会覆盖它。

  调度器配置-持续时间:测试计划持续多长时间,会覆盖结束时间。

  调度器配置-启动延迟:测试计划延迟多长时间启动,会覆盖启动时间。

  JMeter主要组件介绍-取样器(HTTP请求)

  名称:HTTP请求的名字。

  Web服务器-服务器名称或IP、端口号,脚本录制时自动添加,也可以使用“用户自定义变量”。

  HTTP请求:用默认值即可。

  同请求一起发送参数:请求中的参数、值可以在此设置,需要用到参数化及动态数据关联,我们在后面专门介绍。

  同请求一起发送文件:我可以制定同请求一起发送哪个文件。

  其他任务包括:从HTML文件中获取所有内含的资源、用作监视器、Embedded URLs must match

  监听器(Listener)负责收集测试结果,同时也被告知了结果显示的方式。我们常用的包括:聚合报告、查看结果树、用表格查看结果,都支持将结果数据写入文件。其他的添加上去看看就行。聚合报告前面我们介绍过,后面是查看结果树和用表格查看结果的截图。

  JMeter主要组件介绍-监听器(用表格查看结果)

  JMeter主要组件介绍-逻辑控制器

  逻辑控制器(Logic Controller)可以自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。

  循环控制器可以设置请求的循环次数或永远循环(如果选中永远的话)。

  事务控制器可以将多个请求放在同一个事务中。如果选中Gegerate parent sample,则聚合报告中只显示事务控制器的数据,而不会显示其中的各个请求的数据,反之则全部显示。

  JMeter主要组件介绍-断言

  断言(Assertions)可以用来判断请求响应的结果是否如用户所期望的。它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试。这个限制对于有效的测试是非常有用的。

  JMeter主要组件介绍-配置元件

  配置元件(Config Element)维护Sampler需要的配置信息,并根据实际的需要会修改请求的内容。我们主要在参数化中用到CSV Data Set Config

  JMeter主要组件介绍-前置处理器和后置处理器

  前置处理器(Pre Processors)和后置处理器(Post Processors)负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。我们主要在动态关联中用到后置处理器的正则表达式提取器。

  JMeter主要组件介绍-定时器

  定时器(Timer)负责定义请求之间的延迟间隔。

  参数化设置

  在我们的测试计划中我们使用的都是HTTP请求,在HTTP请求中常常会提交一些参数,我们为了不想在每一次请求中都使用相同的参数值,就要想办法让每一次请求的参数的值都是不一样的,我们就需要进行参数化设置,这里我们介绍两种参数化设置的方法。

  一种是利用函数助手中的_Random函数进行参数化设置;

  一种是利用配置元件中的CSV Data Set Config进行参数化设置。

  参数化设置-函数助手(1)

  JMeter中有一个函数助手的功能,里面内置了多个函数,我们可以利用其中的_Random函数来进行请求中的参数化设置。

在JMeter中选择“选项-函数助手对话框”打开函数助手对话框。

  选择一个功能_Random。

  设定最小值为1。

  设定最大值为100。

  函数名称设为func1。

  点击生成将生成一个引用字符串${_Random(1,100,func1},在需要的请求参数中拷贝该字符串即可。

  其中函数名称用来在引用中作区别,即我们可以设定不同的名称在不同的地方引用同一个函数的功能

  例如:我们生成了两个串${_Random(1,100,func1)}、 ${_Random(1,100,func2)},在添加图书的请求中,我们在bookName的参数值中引 用${_Random(1,100,func1)},在bookConcern的参数值中应用${_Random(1,100,func2)},见截图, 这样测试运行时不同的线程将产生不同的bookName和bookConcern。

  参数化设置-CSV Data Set Config(1)

  在线程组上点击右键选择添加-配置元件-CSV Data Set Config,打开CSV Data Set Config。

  Filename文件名:即参数化要引用的文件名。这里是d:\number.txt

  File encoding文件编码:可以不填。

  Variable Names(comma-delimited)变量名(用逗号分割):多个变量可以引用同一个文件,用逗号分割。这里是num1,num2

  Delimiter(use ‘\t’ for tab):参数文件中多个变量值的分隔符,\t表示用tab键分割,默认是逗号。

  Recycle on EOF?:结束后是否循环?默认是True.

  Number.txt文件内容见截图。

  参数化设置-CSV Data Set Config(2)

  在添加图书的请求中,我们在bookName的参数值中引用${num1},在bookConcern的参数值中应用${num2},见截图,这样测试运行时不同的线程将产生不同的bookName和bookConcern。

  动态数据关联

  在HTTP请求的参数中经常会遇到一些参数的值是从服务器相应的动态数据,这些数据需要进行关联才能使得每一次请求都能成功得被服务器接受,在JMeter中采用正则表达式提取器来获取这些动态的数据。

  正则表达式允许用户从服务器响应中获取数据,作为一个后置处理器,正则表达式提取器会在每一个请求执行后再执行,正则表达式提取请求的参数值,产生模板字符串,并将结果保存到给出的变量中。

  动态数据关联(1)-正则表达式提取器

  在HTTP请求的参数中经常会遇到一些参数的值是从服务器相应的动态数据,这些数据需要进行关联才能 使得每一次请求都能成功得被服务器接受,在JMeter中采用正则表达式提取器来获取这些动态的数据。比如我们想要获得从服务器相应的TOKEN,就可以 使用下面的正则表达式提取器。



线程之间传递变量

  JMeter 变量作用域局限于所属线程。这样设计是经过深思熟虑的,目的是让测试线程能够独立运转。有时候用户可能需要在不同线程间(可能属于同一个线程组,也可能不属于同一个线程组)传递变量。

  其中一种方法就是使用属性。属性为所有 JMeter 线程所共享,因此当某个线程设置一个属性后,其他线程就可以读取更新后的值。

  如果存在大量数据需要在线程间传递,那么可以考虑使用文件。例如,测试人员可以在一个线程中使用监听器,保存响应到文件(Save Responses to a file )或者 BeanShell PostProcessor 。而在另外一个线程中使用HTTP 采样器的“file: ”协议来读取文件,接着使用一个后置处理器或者BeanShell 测试元件提取信息。

  如果在测试启动前测试人员就能获得测试数据,那么最好将数据保存到文件中,使用CSV Dataset读取。


标签: JMeter软件组件详细介绍JMeter设置

作者:良玉 分类:jmeter 浏览:1312 评论:0
留言列表
发表评论
来宾的头像