目录

1.HTTP Header Manager(信息头管理器)

2.HTTP Cookie Manager(cookie管理器)

3.CSV Data Set Config


所谓配置元件可以理解为Jmeter中的一些基本操作。JMeter提供了丰富的配置元件,常用的包括参数化配置元件、HTTP请求默认值、HTTP信息头管理器、计数器等,这些配置元件用于设置默认值和变量,提供给后面的sampler(取样器)使用。

结合实际问题,开始参数化配置元件的介绍。推荐一个可以用于练习的公测地址

1.HTTP Header Manager(信息头管理器)

在接口文档中,获取所有学生信息 说明如下:

请求URL:

  • http://api.nnzhp.cn/api/user/all_stu

请求方式:

  • get

需要添加header信息,key为Referer value 为http://api.nnzhp.cn/

参数:

Refer的意义在于告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理,钓鱼网站。

当然配置元件这里还有一个是http请求默认值

2.HTTP Cookie Manager(cookie管理器)

结合 学生金币充值 这个场景,介绍cookie管理器,cookie,session,token是常见的几种客户端绘话连接的认证方式。

简要描述:

  • 学生金币充值接口,这个接口是为了讲添加cookie以及身份验证的

请求URL:

  • http://api.nnzhp.cn/api/user/gold_add

请求方式:

  • post

参数:

该接口有权限验证,需要admin用户才可以做操作,需要添加cookie

cookie中key为登录的用户名,value从登录接口中获取,登陆成功之后会返回sign

使用登录接口进行登录

在结果树种返回的sign即是需要在学生金币充值使用的作为cookie携带给服务端的信息之一

添加学生金币充值接口和cookie管理器

这里就是从登录接口获取的参数用于下一个接口中,可以直接在Cookie中手动添加,但是实际情况时候每一个cookie都有时间有效性,因此需要将响应登录接口中的sign作为参数传递给gold_add学生金币充值接口。

注意到返回的数据都是json格式,自然很容易就想到使用json path 提取器进行操作,因此针对学生金币充值的过程有以下思路:

  1. 完成登陆,在返回接口提取到sign参数
  2. 将sign参数加入到学生金币充值接口的Cookie管理器中

在响应结果树中先提取sign,在JSON Path Expression中输入$.login_info['sign'] ,$表示根元素,然后一级级属性往下去找,先找到login_info,再往下子节点找到sin;响应接口中的sign是唯一的,因此也可以携程$..id或者是$.login_info.id

经过上述尝试之后,可以使用$.login_info.sign进行提取sign,因此登陆接口中添加JSON提取器,在查看结果树种查询登陆的结果

当然这里的JSON Path expressions可以一次性匹配多个值,比如这里需要提取sign和userID

参数详解:

Apply to 应用范围
Names of created variables  接收值的变量名,自定义,多个变量用分号分隔 
JSON Path expression json path表达式,也是用分号分隔 
Match No.(0 for Random) 0表示随机;n取第几个匹配值;-1匹配所有。若只要获取到匹配的第一个值,则填写1
Compute concatenation var(suffix_ALL) 如果找到许多结果,则插件将使用' , '分隔符将它们连接起来,并将其存储在名为<variable name> _ALL的var中
Default Values 缺省值,匹配不到值的时候取该值,可写error。如果是多个提取表达式,这里需要填写

同时新增一个Debug Sampler,顾名思义,调试使用的Debug

运行之后,查看变量getCookie结果如下

当然这里为了调试,也可以在登录接口加入后置处理器Debug postprocesspor

接着讲学生充值金币接口中Cookie管理器中的值使用上述步骤中定义的getCookie进行替换即可

这个方法在包括登录验证token,cookie中十分有用。

3.CSV Data Set Config

参数化配置元件主要用于JMeter引用外部的数据,通过该元件进行一些配置,如果是否去除标题栏,使用指定数据分隔符等。线程组右键/添加/配置元件/CSV Data Set Config,就创建了一个CSV

参数详解

参 数 描 述 必 须
Name 脚本中显示的这个元件的描述性名称
Filename 文件名。待读取文件的名称。可以写入绝对路径,也可以写入相对路径(相对于bin目录),如果直接写文件名,则该文件要放在bin目录中。对于分布式测试,主机和远程机中相应目录下应该有相同的CSV文件
File Encoding 文件编码。文件读取时的编码格式,不填则使用操作系统的编码格式
Variable Names 变量名称。多个变量名之间必须用分隔符分隔。如果该项为空,则文件首行会被读取并解析为列名列表
Ignore first line 是否忽略首行?如果csv文件中没有表头,则选择false
Delimiter 分隔符。将一行数据分隔成多个变量,默认为逗号,也可以使用“\t”。如果一行数据分隔后的值比Vairable Names中定义的变量少,这些变量将保留以前的值(如果有值的话)
Allow quoted data? 是否允许变量使用双引号?允许的话,变量将可以括在双引号内,并且这些变量名可以包含分隔符
Recycle on EOF? 遇到文件结束符是否再次循环?默认为 true
Stop thread on EOF? 遇到文件结束符是否停止线程?默认为 true
Recycle on EOF? 当Recycle on EOF为False时,停止线程,当Recycle on EOF为True时,此项无意义,默认为 false
Sharing mode 线程共享模式。1、All threads(默认):一个线程组内,各个线程(用户)唯一顺序取值;2、current thread:一个线程组内,各个线程(用户)各自顺序取值;3、线程组各自独立,但每个线程组内各个线程(用户)唯一顺序取值;

设置线程组的个数

其中csv.txt文件中的数据如下:

username password
zhangsan      !@#$
lisi             !@#$
王二    !@#$
码农  SKH@@dk

运行之后,查看结果树如下:

JMeter初探五-配置元件与参数化相关推荐

  1. JMeter学习-010-JMeter 配置元件实例之 - CSV Data Set Config 参数化配置

    众所周知,在进行接口测试的过程中,需要创建不同的场景(不同条件的输入,来验证不同的入参的返回结果).因而,在日常的自动化接口监控或商品监控等线上监控过程中,需要配置大量的入参来监控接口的返回是否正确. ...

  2. JMeter学习-005-JMeter 配置元件实例之 - CSV Data Set Config 参数化配置

    日常常见的线上监控几个简单的监控示例场景如下: 监控电商网站某个类目下的商品数量.若类目中商品的数量小于一定的数量,则认为需要认为查看商品池的商品是否正确: 监控商品的价格.当商品价格出现超出限定的波 ...

  3. Jmeter(三)_配置元件

    HTTP Cookie Manager 用来存储浏览器产生的用户信息 Clear Cookies each Iteration:每次迭代请求,清空cookies,GUI中定义的任何cookie都不会被 ...

  4. JMeter 配置元件-CSV Data Set Config 参数化配置

    众所周知,在进行接口测试的过程中,需要创建不同的场景(不同条件的输入,来验证不同的入参的返回结果).因而,在日常的自动化接口监控或商品监控等线上监控过程中,需要配置大量的入参来监控接口的返回是否正确. ...

  5. jmeter参数化之配置元件CSV控件

    1.     用badboby进行录制,录制完成后保存,用JMeter格式进行保存,如:登陆.jmx 2.     在jmeter中打开保存的文件登陆.jmx. 3.     对登陆账号和密码进行参数 ...

  6. 【Jmeter篇】如何利用Jmeter配置元件计数器、随机变量制造批量数据和变量参数化?

    一.计数器 1.线程组-配置元件-计数器 2.功能介绍 starting value:给定计数器的起始值.初始值,第一次迭代时,会把该值赋给计数器 递增(Increment): 每次迭代后,给计数器增 ...

  7. 性能测试之JMeter配置元件【HTTP信息头管理器】

    JMeter提供了丰富的配置元件,常用的包括参数化配置元件.HTTP请求默认值.HTTP信息头管理器.计数器等,这些配置元件用于设置默认值和变量,提供给后面的sampler(取样器)使用. 提示:本文 ...

  8. jmeter(十六)配置元件之计数器

    刚翻看了一下博客的草稿箱,发现很多未完成的草稿,拖了很久,趁着今天较空闲,就补上关于jmeter计数器这篇吧,拖延症,要不得啊... 先说说利用jmeter生成数据的几种方法: 1.CSV Data ...

  9. JMeter元件详解之配置元件

    JMeter部分配置元件详解 1 CSV Data Set Config(参数化) 2 HTTP Cookie Manager(cookie管理器) 3 HTTP Request Defaults 4 ...

最新文章

  1. Spring 的IOC容器系列的设计与实现:BeanFactory 和 ApplicationContext
  2. Docker常用命令(docker快捷键)海康docker命令 LY
  3. 2.1.2 何为真值,何为机器数?
  4. 零基础小白一个,我是如何入门商业数据分析师的
  5. 量子计算机算象棋,量子计算机,只需要几个量子,就足以解决国际象棋中n皇后问题!...
  6. 测试点3错的来:1028 人口普查 (20分)(解题报告)
  7. TCP之三次握手和四次挥手过程
  8. java数据结构博客园_常见数据结构的Java实现
  9. 表达式计算器类的设计4(面向对象的表达式计算器7)
  10. 使用VS2015的Visual Studio Installer打包
  11. BNU 斩(超级大水题)
  12. 分布式事务各方案对比分析
  13. 智能陈桥五笔输入法 for linux,解决在Linux下安装陈桥五笔输入法的方法
  14. 几种简单电路知识汇总
  15. 疯狂!电动汽车科技领域的投资正爆发式增长 | 数据报告
  16. 何谓OTA(Over-the-air programming)?
  17. html page 制作,webpageHTML
  18. android弹出输入法内存,android 输入法导致内存泄露问题
  19. 计算机基础应用资料,计算机应用基础复习资料(带答案).doc
  20. js实现进入页面后自动跳转到锚点

热门文章

  1. 解决element-ui中el-menu组件作为vue-router模式在刷新页面后default-active属性与当前路由页面不一致问题的方法...
  2. centos6.7一键装机
  3. (转载)Android项目实战(二十八):使用Zxing实现二维码及优化实例
  4. COGS 2274. [HEOI 2016] tree
  5. iOS开发UI篇—UITableview控件使用小结
  6. #define宏定义中的#,##,@#,\ 这些符号的神奇用法
  7. 单列模式(懒汉)测试代码
  8. TensorFlow基于cifar10数据集实现进阶的卷积网络
  9. java netfox_SpringFox集成原理
  10. (chap2 简单的Http协议) HTTP方法(2)其他方法