三、Jmeter 基础-配置原件、取样器、监听器

配置原件

重要元器件: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请求。

posted @ 2020-01-09 23:04  测试充电宝  阅读(492)  评论(0编辑  收藏  举报