Jmeter学习笔记

Jmeter学习笔记

线程组

线程组的作用

线程组的作用模拟多个访问对象,对系统可以进行压力测试,

线程组里的几个参数

  • 线程组名称:可以随意取,我们保持创建是自动分配的名称
  • 线程组注释:随意。
  • 在取样器错误后要执行的动作:我们选择继续,错误之后依然继续执行,继续执行测试计划。
  • 线程组的线程数:一般我们用来表示多少个用户,即我们测试时的用户数量。
  • Ramp-up Period(in Seconds):表示每个用户启动的延迟时间,设为1秒,表示系统将在1秒结束前启动我设置的1000个用户,如果设置为1000秒,那么系统将会在1000秒结束前启动这1000个用户,开始用户的延迟为1秒, 如果我设置为0秒,则表示立即启动所有用户。
  • 循环次数:如果你要限定循环次数为10次的话,可以取消永远的那个勾,然后在后面的文本框里面填写10;在这里我们勾上永远,表示如果不停止或者限定时间将会一直执行下去, 是为了方便调度器的调用。
  • 调度器的配置:我们勾选调度器时,将会出现这个面板
  • 启动时间:表示我们脚本开始启动的时间,当你不想立即启动脚本测试,但是启动脚本的时间不会再电脑旁的时候,你可以设定一个启动的时间,然后再运行那里点击启动,系统将不会立即运行,而是会等到你填写的时间才开始运行。
  • 结束时间:与启动时间对应,表示脚本结束运行的时间。
  • 持续时间:表示脚本持续运行的时间,以秒为单位,比如如果你要让用户持续不断登录1个小时,你可以在文本框中填写3600。如果在1小时以内,结束时间已经到达,它将会覆盖结束时间,继续执行。
  • 启动延迟:表示脚本延迟启动的时间,在点击启动后,如果启动时间已经到达,但是还没有到启动延迟的时间,那么,启动延迟将会覆盖启动时间,等到启动延迟的时间到达后,再运行系统。

HTTP请求的默认设置

  • 这项功能就是设置http请求时的一些默认参数,比如请求域名或IP,端口号,页面请求路径等公共参数参数。

HTTP请求

几个重要参数

  • HTTP请求的名称:可以随意取,我们可以根据录制脚本的路径来命名
  • HTTP请求的注释:可以对该界面做一个简单介绍
  • HTTP请求的服务器名称或IP:即我们的服务器或者IP的地址,我因为是在本机上的项目,故填写localhost,可以填写127.0.0.1。
  • HTTP请求的端口号:我用的是tomcat,自己设置的端口号为8086(tomcat默认为8080)
  • 后面的超时定义可以不用填写。
  • Implementation:这里我们录制时默认填写为JAVA
  • 协议填写为:http
  • 方法为:GET
  • Content encoding:编码可以不用填写
  • 路径:即页面的路径;下面的重定向等选择可以根据需要勾选,这里我们保持录制不修改。
  • Parameters参数:即跟着路径一起发送的参数及文件

断言验证

几个重要参数

  • 断言名称:随意
  • 断言注释:随意
  • Apply to:选择默认值
  • 要测试的响应字段:这里我们选择响应的文本,即返回的页面信息
  • 模式匹配规则:这里我们选择包括,即响应的文本是否包括我们验证的信息
  • 要测试的模式:开发者名称,即我们需要验证,开发者名称是否在响应文本中存在,也可以添加更多的字段来验证。

聚合报告

参数含义

字段 含义
Label 每一个JMeter的element都有一个Name属性,这里显示的就是element属性的值。
Samples 表示这次测试中一共发送了多少个请求,
Average 平均相应时间
Median 中位数,也就是说50%用户的响应时间。
90%Line 90%用户的响应时间,
Min 最小响应时间
Max 最大响应时间
Error% 本次测试中出现错误请求的数量
Throughput 吞吐量,默认情况下表示美妙完成的请求数,
KB/sec 每秒从服务器端收到的数据量,

几个注意点

  • 测试计划下的多个线程组是并发执行的。
  • 一个采集器(sampler),通常进行以下三部分:1,向服务器发送请求。2,记录服务器的响应时间。3,j记录相应的时间信息。
  • QPS : Query Per Second 每秒查询率。是一台查询服务器每秒能够处理的查询次数。在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。

元件的作用域与执行顺序

元件作用域

配置元件(config elements )

元件会影响其作用范围内的所有元件。

前置处理程序(Per-processors)

元件在其作用范围内的每一个sampler元件之前执行。

定时器(timers )

元件对其作用范围内的每一个sampler 有效

后置处理程序(Post-processors)

元件在其作用范围内的每一个sampler元件之后执行。

断言(Assertions)

元件对其作用范围内的每一个sampler 元件执行后的结果执行校验。

监听器(Listeners)

元件收集其作用范围的每一个sampler元件的信息并呈现。
  • 总而言之就是在Jmeter中存在父子节点关系的就是作用域的关系,就是说父节点的作用域包括子节点。
根据作用域原则,这些元件的作用域分别为:
  • HTTP请求 、FTP请求 、TCP取样器、 JDBC Request 元件没有作用域名概念

  • 循环控制器 的作用域为 FTP请求 、TCP取样器和 随即控制器

  • 固定定时器作用于 HTTP请求 , Uniform Random Timer 作用于所有取样器

  • 响应断言作用于JDBC Request , XML断言作用于FTP请求 、TCP取样和JDBC Request 。

  • 图形结果作用于FTP请求 、TCP取样和JDBC Request ,聚合报告作用于作用于所有取样器。

元件执行顺序

在同一作用域名范围内,测试计划中的元件按照如下顺序执行。

  • 配置元件(config elements )

  • 前置处理程序(Per-processors)

  • 定时器(timers )

  • 取样器(Sampler)

  • 后置处理程序(Post-processors) (除非Sampler 得到的返回结果为空)。

  • 断言(Assertions)(除非Sampler 得到的返回结果为空)。

  • 监听器(Listeners)(除非Sampler 得到的返回结果为空)。

原文地址:https://www.cnblogs.com/haifeiWu/p/9079595.html