Jmeter 使用也有很长时间了,但是一直没有做一下知识梳理,近期会对公司同事做一下这方面的培训,借此机会,把使用过程中应用到的知识,或是遇到的问题,整理出来,方便大家学习!

Jmeter 接口测试知识梳理——应用基础篇

Jmeter主要元件

测试计划(Test Plan)是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器。
线程组(Thread Group)代表一定数量的并发用户,它可以用来模拟并发用户发送请求。
取样器(sampler)定义实际的请求内容,被线程组包含,我们主要用HTTP请求。
监听器(Listener)
逻辑控制器(Logic Controller)
断言(Assertions)
配置元件(Config Element)
前置处理器(Pre Processors)和后置处理器(Post Processors)

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

测试计划(Test Plan)是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器。
名称:你可以为你的测试计划取一个有意义的名字。
注释:对测试计划的注释。
用户定义的变量:用户可以自己定义变量,在用到此变量的时候直接用${变量名}引用即可。例:变量名=url,值=www.test.com,在需要www.test.com 时直接用${url}即可。

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

JMeter主要元件介绍-线程组

名称:为线程组起名字。
线程属性-线程数:设置发送请求的用户数目 ,即并发数。
线程属性-Ramp-Up Period(in second):线程间的时间间隔,单位是秒。即所有线程在多少时间内启动。
线程属性-循环次数:请求的重复次数,如果选择后面的forever(默认),那么 请求将一直继续,如果不选择forever,而在输入框中输入数字,那么请求将重复指定的次数,如果输入1,那么请求将执行一次,如果是0,会出现问题。
调度器配置-持续时间:测试计划持续多长时间,会覆盖结束时间。
调度器配置-启动延迟:测试计划延迟多长时间启动,会覆盖启动时间。
调度器配置-启动时间:测试计划什么时候启动,启动延迟会覆盖它。
调度器配置-结束时间:测试计划什么时候结束,持续时间会覆盖它。

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

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

条件判断成功,执行其中的内容。可以有多个条件。

JMeter主要元件介绍-配置元件( CSV Data Set Config)

Delimiter:参数文件分隔符。与参数文件中的分隔符保持一致即可。
Allow quoted data?:是否允许引用数据。默认设置为 false。例如数据样式为:"101-005-98536","29357","1","1993575","477948510289","android","45" 时,此处需设置为 true,一般默认为 false 即可。
Sharing mode:共享模式,即参数文件变量作用域。主要有以下几种方式:
All threads:当前测试计划中的所有线程组中的所有的线程均有效。默认。
Current thread group:当前的线程组中的线程有效。
Current thread:当前线程有效。

JMeter主要元件介绍-用户定义的变量

可将后续用到的内容定义为用户变量,使用时通过${变量名}来引用。

JMeter主要元件介绍-JDBC Connection Configuration

创建数据库连接,注意变量名,将是后续JDBC请求的桥梁。

JMeter主要元件介绍-HTTP请求默认值

用来对具有相同地址或其他属性的http请求设定默认值。
变量是用来定义已知的变量。比如ip,port,用户名密码等。

JMeter主要元件介绍-HTTP Cookie 管理器

Cookie管理器,会默认把服务端返回的cookie数据记录下来 ,而且以后所有的对该网站的请求都使用同一个 cookie。

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

填写ip、路径以及参数。

JMeter主要元件介绍-测试计划JMeter主要元件介绍-取样器(JDBC Request)

注意变量名以及根据数据库操作选择对应的Query Type。

JMeter主要元件介绍-后置处理器(正则表达式提取器)

在JMeter中采用正则表达式提取器来获取这些动态的数据。

模板:正则表达是可以设置多个模板进行匹配,在此只可指定运用那个模板,模板自动编号,$1$指第一个模板,$2$指第二个模板,一次类推,$0$指全文匹配。

匹配数字:在匹配时往往会出现多个值匹配的情况,如果匹配数为0则代表随机取匹配值;不同模板可能会匹配一组值,那么可以用数字来确定取这一组值中的哪一个;负数取所有值,0表示随机值,1表示取第一个值,依次类推

默认值:如果没有匹配到可以指定一个默认值。

举例:

定义说明:

引用名称:image表示变量名,不用多说

正则表达式:这里的一对括号就是一个模板,两对括号就是两个模板,…..

模板:这里要告诉Jmeter你要匹配哪个或哪些模板,$1$表示匹配第一个模板(就是正则表达式里的第一对括号)

匹配数字:告诉Jmeter如果匹配到了多个符合要求的,你要哪一个?这里我填写-1,表示获取全部匹配的数据

  • 0表示随机
  • -1表示全部
  • 1表示第一个
  • 2表示第二个
  • ……

缺省值:没有匹配到数据时的默认值,不用多说。

好了,正则表达式提取器的定义已经完成,下面看看如果使用:

使用说明:

由于我们在匹配数字里填写了-1,匹配到的是多个值,我们就可以通过

${变量名_坐标}的方式获取:

  • ${image_1}表示第一个匹配到的
  • ${image_2}表示第二个匹配到的
  • …..

多模板单数据

定义说明:

引用名称:label表示变量名,不用多说

正则表达式:这里的一对括号就是一个模板,两对括号就是两个模板,我们使用了两个模板

模板:这里要告诉Jmeter你要匹配哪个或哪些模板,$1$,$2$表示同时匹配第一个和第二个模板的数据

匹配数字:这里填写1,表示每个模板值获取第一个匹配的数据

缺省值:没有匹配到数据时的默认值,不用多说。

好了,正则表达式提取器的定义已经完成,下面看看如果使用:

使用说明:

由于我们使用了两个模板(两对括号),并且告诉Jmeter我们要获取每个模板匹配到的一个数据(匹配数字=1),所以通过下面的方式即可获得:

  • ${label_g1}获取第一个模板匹配到的数据
  • ${label_g2}获取第二个模板匹配到的数据

多模板多数据

这个例子是例1和例2的结合,使用多个模板,每个模板匹配多条数据。那么获取的方式是:

  • ${list_1_g1}获取第一模板的第一个数据
  • ${list_1_g2}获取第二模板的第一个数据
  • ${list_2_g1}获取第一模板的第二个数据
  • ${list_2_g2}获取第二模板的第二个数据

动态数据关联

通过正则表达式提取器,获取动态数据,将该数据作为参数进行后续操作。

JMeter主要元件介绍-断言(响应断言)

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

JMeter主要元件介绍-监听器(断言结果)

JMeter主要元件介绍-监听器(聚合报告)

JMeter主要元件介绍-监听器(察看结果树)

察看结果树,可以明显直观的察看执行结果已经响应信息。

Jmeter 接口测试知识梳理——应用基础篇的更多相关文章

  1. Jmeter 接口测试知识梳理——持续集成篇

    Jmeter 使用也有很长时间了,但是一直没有做一下知识梳理,近期会对公司同事做一下这方面的培训,借此机会,把使用过程中应用到的知识,或是遇到的问题,整理出来,方便大家学习! Jmeter + Ant ...

  2. Jmeter 接口测试知识梳理——环境搭建篇

    Jmeter 使用也有很长时间了,但是一直没有做一下知识梳理,近期会对公司同事做一下这方面的培训,借此机会,把使用过程中应用到的知识,或是遇到的问题,整理出来,方便大家学习! 环境搭建篇 很多文章介绍 ...

  3. SQL数据库开发知识总结:基础篇

    1数据库概述 (1) 用自定义文件格式保存数据的劣势. (2) DBMS(DataBase Management System,数据库管理系统)和数据库,平时谈到”数据库”可能有两种含义:MSSQL ...

  4. Jmeter接口测试(十)测试报告

    这是jmeter接口测试系列的第十篇总结,也是最后一篇,之后会把接口集成的一些内容发一个系列,分享给大家,供大家一起学习进步. 批量执行完接口测试之后,我们需要查看测试报告,在之前单个接口调试我们是通 ...

  5. [C# 基础知识梳理系列]专题六:泛型基础篇——为什么引入泛型

    引言: 前面专题主要介绍了C#1中的2个核心特性——委托和事件,然而在C# 2.0中又引入一个很重要的特性,它就是泛型,大家在平常的操作中肯定会经常碰到并使用它,如果你对于它的一些相关特性还不是很了解 ...

  6. Oracle知识梳理(三)操作篇:SQL基础操作汇总

    Oracle知识梳理(三)操作篇:SQL基础操作汇总 一.表操作 1.表的创建(CREATE TABLE): 基本语句格式:       CREATE TABLE  table_name ( col_ ...

  7. C#基础知识梳理索引

    C#基础知识梳理索引 一 引子 之前曾写了一篇随笔<.NET平台技术体系梳理+初学者学习路径推荐+我们的愿景与目标> 三个月过去了,目标使更多的编程初学者,轻松高效地掌握C#开发的基础,重 ...

  8. MySQL 基础知识梳理

    MySQL 的安装方式有多种,但是对于不同场景,会有最适合该场景的 MySQL 安装方式,下面就介绍一下 MySQL 常见的安装方法,包括 rpm 安装,yum 安装,通用二进制安装以及源码编译安装, ...

  9. Vue基础开发入门之简单语法知识梳理(思维导图详解)

    基于个人写的以下关于Vue框架基础学习的三篇随笔,在此基础上,做一个阶段性的知识总结,以此来检验自己对Vue这一段时间学习的成果,内容不多,但很值得一看.(思维导图详解)

随机推荐

  1. 3、pandas的loc和iloc数据筛选

    选择列: 选择一列: 选择多列(选择的内容变成list,也就是要两个方括号): 选择一行或多行(loc函数): 选择连续的行(以索引标签为选择参数): 选择非连续的行(以索引标签为选择参数): 选择包 ...

  2. Kali系列之hydra ssh密码爆破

    环境 kali 192.168.137.131 靶机 192.168.137.133 语句 hydra -l root -P /home/chenglee/zidian/wordlist.TXT -t ...

  3. python简说(十八)导入模块

    1.import xx import 一个模块的实质就是把这个python文件从头到尾执行一遍 2.import模块的查找模块的顺序 1).从当前目录下找 2).sys.path python的安装目 ...

  4. 对浏览器攻击:MS10-002

    对浏览器攻击:MS10-002 MS10-002漏洞介绍 针对微软Internet Explorer"极光"内存损坏的攻击,当用户查看特制网页时允许远程执行代码. 实践过程 命令行 ...

  5. CTF-逆向工程实验吧Just Click

    题目链接:http://www.shiyanbar.com/ctf/1889 步骤一:PEID解析:如下图所示 步骤二:打开exe,这种类型的东西用OD打不开,想了一下,这种东西应该是C#做的,用.n ...

  6. 从输入URL到页面显示发生了什么

    阅读目录 1.输入地址 2.浏览器查找域名的 IP 地址 3.浏览器向 web 服务器发送一个 HTTP 请求 4.服务器的永久重定向响应 5.浏览器跟踪重定向地址 6.服务器处理请求 7.服务器返回 ...

  7. python --- 04 列表 元组

    一 .列表 在python中使用[]来描述列表, 内部元素用逗号隔开. 对数据类型没有要求 1.列表存在索引和切片. 和字符串是一样的. 2.增删改查操作 1).增加 1. .append(" ...

  8. ODAC(V9.5.15) 学习笔记(一)总论

    一直在使用ODAC做开发,没时间仔细研究一下,目前采用的是3层结构,ODAC+TDataSetProvider+TClientDataSet做数据处理,也没有多大问题.下一步要开发B/S的程序了,打算 ...

  9. uniGUI出新版本了,0.97.0.1081

    uniGUI出新版本了,0.97.0.1081,试用版0.97.0.1075,支持Delphi2006~XE7.下载地址是: http://www.unigui.com/downloads 已在XE6 ...

  10. innerHTML和 innerText的区别

    共同点:innerHTML和innerText都会把元素内内容替换掉.不同点:1,innerHTML: 也就是从对象的起始位置到终止位置的全部内容,包括Html标签. 上例中的test.innerHT ...