三、Jmeter基础-常用元器件介绍(2)

配置原件

重要元器件:CSV数据文件设置,HTTP信息头管理器,HTTP Cookie管理器,HTTP默认请求值,用户自定义变量

CSV 数据文件设置

设置csv数据文件

  • 文件名:你的csv数据文件路径,还支持txt,bat等
  • 文件编码:例如可以是UTF-8,那么jmeter就会以UTF-8读取文件
  • 变量名称:以逗号分隔的名称列表,它与CSV文件中的列相匹配
  • 忽略首行:如果第一行是列名而不是测试数据,就选择True忽略掉列名
  • 分隔符:默认为‘,‘也可以设置为其他值(建议使用默认)
  • 是否允许带引号:默认为False,如果测试数据中带有引号则设置为Ture
  • 遇到文件结束符再次循环:默认为True,意思读完最后一行在回来读取第一行
  • 遇到文件结束符停止线程:读完最后一行停止线程
  • 线程共享模式:定义如何在并发线程之间分配值


HTTP信息头管理器

请求页面或接口时附加的协议头(调试脚本报错,问题可能出在请求头上),常用的信息头如下(我在工作中经常用到的)

# 协议 说明
1 Accept 可接受的响应内容类型
2 Host 表示服务器的域名以及服务器所监听的端口号
3 Content-Type 请求体的MIME类型
4 Referer 表示浏览器所访问的前一个页面
5 User-Agent 浏览器的身份标识字符串
6 Connection 客户端(浏览器)想要优先使用的连接类型
7 Accept-Encoding 可接受的响应内容的编码方式


HTTP Cookie管理器

在做登录后的页面请求,登录成功后HTTP Cookie管理器会写入cookies,保证后面的请求是登录状态

注意:如果在一个测试计划内有多个Cookie Manager ,Jmeter目前无法指定哪个被使用。所以,一个测试计划内最好只有一个cookie manager。并且,一个manager里的 cookie 并不能被其它manager所引用。所以在使用多个Cookie Managers 时要谨慎。


HTTP请求默认值

使用HTTP请求默认值,作用域内的HTTP请求无需设置IP和端口,只需设置路径,运行时自动把HTTP请求默认值和HTTP请求进行拼接。

好处在于如果想切换环境,只需更改HTTP请求默认值。


用户自定义变量

变量管理器,放在线程组下相当于全局变量,调用变量方式:${变量名}

  • 名称:变量名
  • 值:变量的值

取样器

重要元器件:HTTP请求,JDBC Connection Configuration,JDBC Request


HTTP请求

脚本中运用最多的元器件,使用也比较简单,按照抓包或者接口文档对号入座即可

  • 协议:http或https
  • 服务器名称或IP:服务器域名或者IP
  • 端口:如果服务器名称是域名可省略,是IP则那就查看下具体端口号
  • 方法:GET,POST,PUT,DELETE等
  • 路径:接口或页面路径,例如/login
  • 参数:key-value形式
  • 消息体数据:json数据提交在此设置
  • 文件上传:上传文件才用,一般用的不多


JDBC Connection Configuration和JDBC Request

Variable Name Bound to Pool

  • Variable Name:变量名绑定到池的唯一标识。与JDBC request中的相对应,决定JDBC取样的配置。简单理解就是在JDBC request的时候确定去哪个绑定的配置

Connection Pool Configuration(建议默认)

  • Max Number of Connections:数据库连接池的最大连接数,一般可设置为0,意思是每个线程都使用单独的数据库连接,线程之间数据库连接不共享
  • Max Wait (ms):在连接池中取回连接最大等待时间
  • Time Between Eviction Runs (ms):数据库空闲清理的间隔时间
  • Auto Commit:自动提交sql语句

Database Connection Configuration

  • Database URL: jdbc:mysql://服务器地址:3306/数据库名
  • JDBC Driver class:数据库JDBC驱动类名:com.mysql.jdbc.Driver
  • Username:数据库连接用户名
  • password:数据库连接密码

Variable Name Bound to Pool

  • Variable Name ....:数据库连接池的名字,需要与JDBC Connection Configuration的Variable Name Bound Pool名字保持一致

SQL Query

  • Query Type:此处支持方式多样,可以用于添加或者筛选数据,根据需要和Query配合使用
  • Query:填写的sql语句未尾不要加“;”
  • Parameter valus:参数值,顺序替代Query中的?;
  • Parameter types:参数类型
  • Variable names:保存sql语句返回结果的变量名 ,用于作为参数供调用
  • Result variable name:创建一个对象变量,保存所有返回的结果 ,供调用
  • Query timeout:查询超时时间
  • Handle result set:定义如何处理由callable statements语句返回的结果

JDBC Request取样器和JDBC Connection Configuration配置原件一起使用,前者主要用于连接数据库,前者用于执行sql语句保存变量供调用

监听器

重要元器件:查看结果树,聚合报告


查看结果树

左侧展示执行过的所有的取样器,成功显示绿色否则显示红色(没加断言绿色不一定代表成功

右侧展示请求和响应的明细,有点类似浏览器F12Network下的详细信息或者Fiddler抓包详情


聚合报告

统计每一个请求的请求数,平均值,最大,最小值,错误率,大约吞吐量(以请求数/秒为单位)和以kb/秒为单位的吞吐量

  • Label:请求的名称,就是我们在进行测试的httprequest sampler的名称
  • #样本:总共发给服务器的请求数量,如果模拟10个用户,每个用户迭代10次,那么总的请求数为:10*10 =100次;
  • 平均值:默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,以Transaction 为单位显示平均响应时间 ,单位是毫秒
  • 中位数: 50%用户的请求的响应时间,中位数
  • 90%百分位:90%的请求的响应时间
  • 95%百分位:95%的请求的响应时间
  • 99%百分位:99%的请求的响应时间
  • 最小值:最小的响应时间
  • 最大值:最大的响应时间
  • 异常%:错误率=错误的请求的数量/请求的总数
  • 吞吐量: 默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数
  • 接收KB/sec: 每秒从服务器端接收到的数据量
  • 发送KB/sec: 每秒从服务器端接收到的数据量

特别说明:90% 百分位参数正确的含义

一组数由小到大进行排列,找到他的第90%个数(假如是3),那么这个数组中有90%的数将小于等于3 。

用在性能测试的响应时间也将非常有意义,也就是90%请求响应时间不会超过3 秒。

总结

本章节介绍的元器件比较多,我经常用到的是篇幅中介绍的监听器和配置元件下所有,以及HTTP请求。

原文地址:https://www.cnblogs.com/easy-test/p/12173955.html

时间: 2024-11-05 19:34:12

三、Jmeter基础-常用元器件介绍(2)的相关文章

七、Jmeter 基础-常用内置函数

JMeter 的函数是一些特殊值,函数调用的语法如下: ${__functionName(var1,var2,var3)} 解释:“_functionName” 匹配函数的名称,圆括号内为函数参数,如 ${time(YMD)}.无参数的函数可以不需要圆括号,如${_threadNum}.如果参数包含逗号,那么一定要使用“\”来转义,否则JMeter会把它当作一个参数分隔符例如:${__javaScript(Math.max(2,5))},“Math.max(2,5)”被当__javascript

Git基础(常用命令)介绍

版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统. 关于版本控制分为三种:本地版本控制系统,如rcs:集中化的版本控制系统,如CVS.SVN:分布式版本控制系统,如Git. Git基础要点 Git和其它版本控制系统的主要差别在于:Git只关心文件数据的整体是否发生变化,而大多数其它系统则只关心文件内容的具体差异. 对于任何一个文件,在Git内都只有三种状态:已提交(committed).已修改(modified)和已暂存(staged).已提交表示该文件已经被安全地保存在本

Javascript 基础常用对象介绍

数组 类型( 栈  &&  队列 ) 1)var arr = new Array():括号中的长度可以不指定,原因就是js中的数组长度是可以动态改变的 2)类似于java中的list容器,长度可变(arr.length=num),元素类型任意. 3)arr.push( obj , obj , ..... ) ; 通过 push 可以往数组中添加任意多个元素: 类似栈中添加元素 4)arr.pop( ) ; 通过pop可以删除数组中最顶端的元素.类似栈中的删除元素 5)arr.unshift

webpack基础+webpack配置文件常用配置项介绍+webpack-dev-server

一.webpack基础 1.在项目中生成package.json:在项目根目录中输入npm init,根据提示输入相应信息.(也可以不生成package.json文件,但是package.json是很有用的,所有建议生成) 2.安装webpaack a.在全局中安装webpack:npm install webpack -g b.将webpack安装到项目并将webpack写入package.json的devDependencies中:进入项目根目录,然后在命令行中输入npm install w

前端基础-HTML常用标签介绍

前端基础-HTML常用标签介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.HTML是什么 1>.超文本标记语言(Hypertext Markup Language,HTML)通过标签语言来标记要显示的网页中的各个部分.一套规则,浏览器认识的规则: 2>.浏览器按顺序渲染网页文件,然后根据标记符解释和显示内容.但需要注意的是,对于不同的浏览器,对同一标签可能会有不完全相同的解释(兼容性): 3>.静态网页文件扩展名:".html "或 &qu

python基础31[常用模块介绍]

python基础31[常用模块介绍] python除了关键字(keywords)和内置的类型和函数(builtins),更多的功能是通过libraries(即modules)来提供的. 常用的libraries(modules)如下: 1)python运行时服务 * copy: copy模块提供了对复合(compound)对象(list,tuple,dict,custom class)进行浅拷贝和深拷贝的功能. * pickle: pickle模块被用来序列化python的对象到bytes流,从

小贞贞关于jmeter中常用函数_uuid、_random、_time、_p或_property、csv_read介绍

jmeter常用函数介绍: 常用的几个函数有_uuid._random._time._p或_property.csv_read . _uuid会生成一个随机唯一的id,比如在避免java请求重发造成未处理数据太多的情况,接口请求可加一个唯一的请求id唯一的响应id进行一一对应: 随机数_random,可以在你指定的一个范围里取随机值: 取当前时间_time,一些时间类的入参可以使用,如{__time(,)} 是生成精确到毫秒的时间戳.{__time(/1000,)}是生成精确到秒的时间戳.${_

zhuan:Jmeter基础之---jmeter基础概念

JMeter 介绍: 一个非常优秀的开源的性能测试工具. 优点:你用着用着就会发现它的重多优点,当然不足点也会呈现出来. 从性能工具的原理划分: Jmeter工具和其他性能工具在原理上完全一致,工具包含4个部分: (1)负载发生器:用于产生负载,通常以多线程或是多进程的方式模拟用户行为. (2)用户运行器:通常是一个脚本运行引擎,用户运行器附加在线程或进程上,根据脚本要求模拟指定的用户行为. (3)资源生成器:用于生成测试过程中服务器.负载机的资源数据. (4)报表生成器:根据测试中霍地的数据生

Jmeter基础之---jmeter基础概念

JMeter 介绍: 一个非常优秀的开源的性能测试工具. 优点:你用着用着就会发现它的重多优点,当然不足点也会呈现出来. 从性能工具的原理划分: Jmeter工具和其他性能工具在原理上完全一致,工具包含4个部分: (1)负载发生器:用于产生负载,通常以多线程或是多进程的方式模拟用户行为. (2)用户运行器:通常是一个脚本运行引擎,用户运行器附加在线程或进程上,根据脚本要求模拟指定的用户行为. (3)资源生成器:用于生成测试过程中服务器.负载机的资源数据. (4)报表生成器:根据测试中霍地的数据生