常用取样器详解

http取样器

​ 名称 用于给取样器做标记 可以根据请求内容 起一个有意义的名称

​ 注释 不影响测试 可以写入关于请求的测试说明 供阅读

1.1 基本配置

​ 协议:向目标服务器发送HTTP请求时的协议,可以是http或者是https或者File ,默认值为http 。

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

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

​ 方法:发送HTTP请求的方法,可以根据接口文档获得,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。

路径:目标URL路径(不包括服务器地址和端口)-也可以直接写完整路径(上面的IP+端口就可以省略了) 不带参数的api路径

​ Content encoding :内容的编码方式,默认值为iso8859(所以常用为UTF-8减少乱码)

​ 自动重定向:如果选中该选项,当发送HTTP请求后得到的响应是302/301时,JMeter 会自动重定向到新的页面,但是Jmeter是不记录重定向的过程内容。只能用于get和head方法,如果是post或者put请求则取样器不会发送。

​ 跟随重定向:Http Request取样器的默认选项,当响应code是3xx时,自动跳转到目标地址。与自动重定向不同,Jmeter会记录重定向过程中的所有请求响应,在查看结果树时可以看到服务器返回的内容,如有多个跳转则多个请求都会被记录下来,此为默认选项。

自动重定向和跟随重定向的区别只在于是否记录多个跳转的请求上

​ Use keep Alive : 当该选项被选中时,jmeter 和目标服务器之间使用 Keep-Alive方式进行HTTP通信,默认选中。 [这个不能被取消]

​ Use multipart/from-data for HTTP POST :当发送HTTP POST 请求时,使用Use multipart/from-data方法或者application/x-www-form-urlencoded方法发送,默认不选中。

​ Browser-compatible headers:当勾选multipart/form-data时,勾选此项会截掉http请求头中的Content-Type和Content-Transfer-Encoding,而只发送Content-Disposition部分;

​ 同请求一起发送参数 : 在请求中发送URL参数,对于带参数的URL ,jmeter提供了一个简单的对参数化的方法。用户可以将URL中所有参数设置在本表中,表中的每一行是一个参数值对(对应RUL中的 名称1=值1)。编码这个选项最好勾选,因为如果参数值内含有ASCII Control Chars或者Non-ASCII characters或者其他符号的话,如果不勾选会导致发送失败,勾选的话会自动将含有的这些特殊符号进行编码。

​ 同请求一起发送文件:在请求中发送文件,通常,HTTP文件上传行为可以通过这种方式模拟,参数名称就是发送文件对应的参数,MINE Type为资源媒体类型,说明参考如下MIneType

1.2 高级配置

Implementation:发送http请求的方式,可选项为java和HttpClient4,默认为HttpClient4;如果是上传文件的话一定要选择;否则请求发送成功了,其实文件并未上传成功

Timeouts(milliseconds):Connect:连接超时时间,单位为毫秒;

Response :响应等待超时时间,单位为毫秒;

Embedded Resources from HTML Files

从HTML文件获取所有内含的资源:当该选项被选中时,jmeter在发出HTTP请求并获得响应的HTML文件内容后,还对该HTML进行解析 并获取HTML中包含的所有资源(图片、flash等),默认不选中,如果用户只希望获取页面中的特定资源,可以在下方的Embedded URLs must match 文本框中填入需要下载的特定资源表达式,这样,只有能匹配指定正则表达式的URL指向资源会被下载。

Parallel downloads.:是否使用自设资源池,勾选后可设置大小;

Number:资源池大小,默认为6。

URLs must match:URL匹配过滤,填写此项则只会下载与此内容项匹配的url的资源,例如要获取http://example.com/下的所有资源,使用正则表达式http://example.com/.*;

jdbc取样器



前置:需要引用数据库上官jar包

​ 加入jar包的两个方法

​ 1 直接下载对应的jar文件放在bin/lib文件夹下 etc文件夹下也可以放 但是不建议 然后重启jmeter

​ 2 "测试计划" --> 浏览 导入对应jar

​ **建议使用第一种方法 **

作用:

名称 用于给取样器做标记 可以根据请求内容 起一个有意义的名称

​ 注释 不影响测试 可以写入关于请求的测试说明 供阅读

2.1 JDBC Connection Configuration

想使用 jdbc request请求数据库 在安装数据库的对应驱动 jar之后 需要添加 对应的jdbc环境配置

​ 名称 用于给取样器做标记 可以根据请求内容 起一个有意义的名称

​ 注释 不影响测试 可以写入关于请求的测试说明 供阅读

2.1.1 **Variable Name of Bound Pool **

​ 1 *Variable Name of Create Pool : 重要 在创建对应的jdbc的环境配置 要定义个环境配置的的引用名称

方便创建Jdbc request 与之对应

		        剩下的配置 取默认就可以

2.2 JDBC Request

​ 添加方式 :测试计划 ->线程组 -> 取样器 -> jdbc 取样器

​ 1 *** **Variable Name of Pool declared in JDBC Connection Configuration:由 JDBC Connection Configuration定义的连接池变量名

与jdbc环境变量中定义的引用名称一致 类似数据库外键 创建关联

* Query Type: 定义sql的执行方式 非常重要 如果对应不上会直接导致请求失败

​ 2.Parameter values:逗号分隔的参数值列表。使用]NULL[指示空参数。(如果需要,可以通过定义属性“JDCBSAMPLOUL.NulLMARK”来改变空字符串。必须用双引号括起来,并且任何嵌入的双引号必须加倍,【这是在使用SQL中包含占位符的情况 一般不需要做这个 直接卸载SQL中就可以 】

3.Parameter types:逗号分隔的SQL参数类型列表(比如INTEGER, DATE, VARCHAR, DOUBLE)或常量的整数值。当使用驱动程序建议的自定义数据库类型时,可以使用这些整数值。

4.Variable names:用逗号分隔的变量名列表,用于保存由Select语句、Prepared Select语句或CallableStatement返回的值。注意,当与CallableStatement一起使用时,变量列表的顺序必须与调用返回的OUT参数相同。如果变量名少于OUT参数,则只有指定变量名的部分能返回;如果存在更多的变量名,则多余变量将被忽略。

5.Result variable name:如果指定,这将创建包含行映射列表的对象变量。每个映射包含列名称作为键,列数据包含值。用途:

​ 这个是将 请求结果以列表的格式参数化; 可以通过 调试取样器 观察取样器结果 确定参数化成功与否以及如何引用参数化 的 参数

  1. Query timeout:查询超时时间;、
  2. Handle result set:定义如何处理由callable statements语句返回的结果 可选项为 string object records

调试取样器

调试取样器:

​ 名称 用于给取样器做标记 可以根据请求内容 起一个有意义的名称

​ 注释 不影响测试 可以写入关于请求的测试说明 供阅读

 调试取样器是jmeter中一个非常重要的存在 主要用于调试 解决使用jmeter时候遇到的如下的几个问题

​ 1.我想知道参数化的变量取值是否正确!

​ 2.我想知道正则表达式提取器(或json提取器)提取的值是否正确!

​ 3.我想知道 JMeter 属性!

​ 4,调试时服务器返回些什么内容!

当你遇到如上的问题时 可以使用调试取样器 帮助解决问题

以下是对调试取样器的参数说明

​ 1 名称:控制器名称,可以随意设置,甚至可以为空。

​ 2 注释:可以随意设置,可以为空

JMeter Properties:是否查看JMeter属性,默认为False。

JMeter Variables:是否查看运行时变量,默认为True。

System Properties:是否查看系统属性,默认为False。

正常情况下 只需要使用调试取样器的默认就足够 但是如果想要使用 jmeter的系统和jemter的属性时候哦需要将对应的参数变成True

这两个属性参数维护在jmeter 的bin目录下的 properties 和 system 中

换句话说 调试取样器可以显示 所有 jmeter参数化手段 制造的参数

如上是jmeter 调试取样器的实例

目前 调试取样器的使用 一般与 查看结果数结合 在添加调试取样器 之后 对应的结果 需要在查看结果数中才能看到

Beanshall取样器

​ 对于取样器来说 jmeter的拓展性 主要体现在 Beanshall取样器上 这个取样器 的作用 概括成一句话 就是 当你想要在jmeter中实现的不是jmeter的自带功能的时候 这个取样器就派上了用场

由于beanshall取样器本身是个大的模块 在这边做简单的概述后 关于beanshall的使用 我会另起一个文档详细讲解



jmeter_04_常用取样器的更多相关文章

  1. jmeter 常用组件详解

    1.测试计划(test plan) 描述一个性能测试,包含本次测试所有相关功能 2.threads(users)线程 Setup thread group: 一种特殊类型的线程,可用于执行预测试操作. ...

  2. Jmeter-测试计划,线程组,取样器,逻辑控制器,断言和监听器

    一 测试计划: 是使用jmeter测试的起点,是其他测试元件的容器,一个完整的测试计划包括多个线程组,逻辑控制器,取样器,监听器,配置元件 用户定义的变量: 测试计划上可以添加用户定义的变量.一般添加 ...

  3. 性能测试—JMeter 常用元件(二)

    性能测试—JMeter 常用元件(二) <零成本web性能测试>第三章 Web性能测试脚本录制与开发中JMeter常用测试元件 测试计划描述了JMeter运行时将会执行的一系列步骤,一个完 ...

  4. Jmeter常用线程组设置及场景运行时间计算

    Jmeter中通过线程组来模拟大用户并发场景,今天主要介绍三个常用的线程组,帮助我们设计更加完善的测试场景,另外介绍下场景执行时间如何计算. 一.Thread Group 取样器错误后要执行的动作   ...

  5. jmeter常用四种断言

    jmeter常用四种断言 一.Response Assertion(响应断言)二.Size Assertion(数据包字节大小断言)三.Duration Assertion(持续时间断言)四.bean ...

  6. Jmeter之正则表达式取样器~案例详解

    正则:按照规则提取数据 场景:A请求获得的响应数据,需要作为B请求的提交数据(eg:A:购物车页面→B:下单(正则提取购物车的商品信息,数量信息等)) 常用正则表达式:(.+?) 辅助:添加Debug ...

  7. Jmeter之TCP取样器

    1.在线程组中添加“TCP取样器” 2.填写数据 以下截图是必须配置的 TCPClient classname:  填写TCP报文格式(有三类),默认前缀:org.apache.jmeter.prot ...

  8. JMeter常用的4种参数化方式-操作解析

    目录结构 一.JMeter参数化简介 1.JMeter参数化的概念 2.JMeter参数化方式之使用场景对比 二.JMeter参数化的4种主要方式-操作演练 1.User Parameters(用户参 ...

  9. jmeter常用组件简介

    本文主要介绍jmeter使用过程中最常用的一些组件及其作用.性能测试时线程组中可以添加如下的组件,如图所示: test plan:测试计划,是其它组件的容器 thread:线程组,用来设置多少线程,怎 ...

随机推荐

  1. VSM

    好吧,在被这个算法折腾了许多天之后,我终于对它竖起了中指.这几天的经历让我明白了一个道理:对于数学基础不好的人来说,对待图形学最好远观不可亵玩焉:如果坚持硬闯却又碰巧E文不咋地,那受罪程度真叫人生不如 ...

  2. Coneology(POJ 2932)

    原题如下: Coneology Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 4937   Accepted: 1086 D ...

  3. [剑指Offer]17-打印从1到最大的n位数(递归)

    题目 如题,输入n,则从1打印至99. 题解 考虑到n比较大会有大数问题,所以使用字符数组存储数. 由题可用递归求n位全排列,即为所得. 具体地,用临时字符数组用来存答案,每次递归填好一位,都填好后输 ...

  4. LuoGu P1909 买铅笔???

    题目描述 P老师需要去商店买n支铅笔作为小朋友们参加NOIP的礼物.她发现商店一共有 3种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同.为了公平起 见,P老师决定只买同一种包装的铅笔. ...

  5. 测试软件—禅道BUG管理工具

    入禅 目录 入禅 1.禅道的基本使用 1.禅道的基本使用 admin(管理员) 部门:创建部门(需求部门,开发部门,测试部门,项目部门,产品部门) 组织:创建用户(产品经理,项目经理,开发人员,测试人 ...

  6. top、ps -ef、ps aux的区别及内容详解

    1.top和ps的区别 ps是静态查看进程--------top是动态(持续监控)进程 ps只是查看进程-----------top还可以监视系统性能,如平均负载,cpu和内存的消耗 2.ps -ef ...

  7. Kafka实战宝典:Kafka的控制器controller详解

    一.控制器简介 控制器组件(Controller),是 Apache Kafka 的核心组件.它的主要作用是在 Apache ZooKeeper 的帮助下管理和协调整个 Kafka 集群.集群中任意一 ...

  8. 【Processing-日常1】小圆碰撞

    之前在CSDN上发表过: https://blog.csdn.net/fddxsyf123/article/details/79741637

  9. 软件定义网络实验记录②--Mininet 实验——拓扑的命令脚本生成

    一.实验目的 掌握 Mininet 的自定义拓扑生成方法:命令行创建.Python 脚本编写 二.实验任务 通过使用命令行创建.Python 脚本编写生成拓扑,熟悉 Mininet 的基本功能. 三. ...

  10. 在.NET中使用DiagnosticSource

    前言 DiagnosticSource是一个非常有意思的且非常有用的API,对于这些API它们允许不同的库发送命名事件,并且它们也允许应用程序订阅这些事件并处理它们,它使我们的消费者可以在运行时动态发 ...