JMeter脚本增强之参数化
JMeter测试脚本录制或者编写,在Web应用和App上的操作方式可能有一点点区别(其实也差不多,哈哈),但是当脚本录制好了之后,对测试脚本的强化,包括参数化、关联、文本检查、集合点设置,甚至再往后的测试结果数据分析,可以说是完全一样的。我们可以把“脚本是怎样产生的”这个过程看成一个黑盒子,这个盒子里面是怎样的操作我们不管,反正最后的产出物就是一个脚本,这个脚本就是一些request,我们要做的就是模拟多个用户把这些request发送到服务器,然后得出测试结论。
本篇先介绍脚本参数化的方法。
JMeter的参数化有两种种方式:借用函数助手、使用配置元件CSV Data Set Config
案例:打开一个系统登录页/app登录页,输入用户名和密码,点击登录
参数保留脚本:在本地新建一个文本,录入要使用的所有参数,把文本保存为.dat格式,这里保存的位置是D:\test.dat
一 借用函数助手__CSVRead
1、点击JMeter菜单栏的“选项”,选择“函数助手对话框”
选择一个功能:__CSVRead
函数参数第一个是参数化文本的路径,第二个表示要取这个文本的第几列。我们的文本就两列,0是第一列,1是第二列,如果有更多列就以此类推。
点击“生成”按钮之后会生成一个函数字符串,这个字符串可以直接拿来用了,先copy出来。
2、找到登录请求页发出的request,在右边的参数列表中找到用户名和密码,也就是我们要参数化的对象。第一次找到的这些请求参数是有具体值的,要把它们变成引用参数。
把刚刚在函数助手生成的字符串复制粘贴到参数的值那一列就ok了。可以只生成一次,然后修改列号就行了。
参数化到这里就做完了,等脚本跑起来之后就会自动调用D:\test.dat这个文件。
3、简单验证一下,因为test.dat里面有三组用户名密码,我们就把线程调成3,添加查看结果数监听,然后运行,不会报错说明参数化没问题。
二 使用配置元件CSV Data Set Config
1、选中线程组->添加->配置与案件->CSV Data Set Config,打开配置元件页面
Filename:参数项文件
File encoding:文件的编码,设置为UTF-8
Vaiable Names:文件中各列所表示的参数项;各参数项之间利用逗号分隔;参数项的名称应该与HTTP Request中的参数项一致。
Delimiter:如文件中使用的是逗号分隔,则填写逗号;如使用的是TAB,则填写\t;(如果此文本文件为CSV格式的,默认用英文逗号分隔)
Recycle on EOF?:True=当读取文件到结尾时,再重头读取文件;False=当读取文件到结尾时,停止读取文件
Stop thread on EOF?:当Recycle on EOF为False时,当读取文件到结尾时,停止进程,当Recycle on EOF为True时,此项无意义
备注说明:Recycle on EOF与Stop thread on EOF之间的关联
Recycle on EOF :到了文件尾处,是否循环读取参数,选项:true和false
Stop thread on EOF:到了文件尾处,是否停止线程,选项:true和false
当Recycle on EOF 选择true时,Stop thread on EOF选择true和false无任何意义,通俗的讲,在前面控制了不停的循环读取,后面再来让stop或run没有任何意义
当Recycle on EOF 选择flase时,Stop thread on EOF选择true,线程4个,参数3个,那么只会请求3次
当Recycle on EOF 选择flase时,Stop thread on EOF选择flase,线程4个,参数3个,那么会请求4次,但第4次没有参数可取,不让循环,所以第4次请求错误
2、使用刚才定义好的变量${userName},${password}
3、参数化设置完毕,然后也可以做简单的验证
总结:个人感觉两种方式用起来都差不多,看自己喜欢。不过论坛上有人认为函数助手方法要比CSV控件方法参数化功能要弱,推荐使用CSV控件方法。
JMeter脚本增强之参数化的更多相关文章
- jmeter的脚本增强之参数化
jmeter作为一款开源的测试工具,功能广泛,深受测试同胞们的喜爱,这次来讲讲关于如何参数化及其方式.那为什么要进行一个参数化呢,如做压测时,要有大量的数据来模拟用户的真实场景,像登录页面操作,系统是 ...
- JMeter脚本增强之集合点
集合点的概念:用于实现所谓并发操作,如果集合点设定是10个人,那么所有的用户就会在同一条起跑线上等着后面的人,等10个人到齐了就哗地一下全部跑出去执行同一个动作.如果设置了超时,那么过了超时时间,有可 ...
- 【转】JMeter脚本的参数化
JMeter脚本的参数化 当你利用Badboy将你的测试脚本录制完毕后,接下来就是脚本的调试工作了.在我看来,调试应该包括有以下几个方面:1.根据测试场景对脚本进行必要的修改:2.脚本参数化:3.添加 ...
- jmeter(十)参数化
jmeter可以用来做接口.性能测试,原理是模拟客户端向服务器发送请求,请求里面包含两种不同情况的参数,一种是包含在URL中,一种是请求中需要发送的参数. 包含在URL中的参数,例如:http://b ...
- LR性能测试脚本增强与调试
脚本增强与调试 一般来说,使用LR的Vugen录制的脚本并不能直接用于测试,需要对脚本进行各方面的增强,主要包括添加注释.关联.检查点.事务.参数化.日志输出等.下面结合刚完成的一个web项目性能测试 ...
- Loadrunner VuGen实战---基本组成、录制流程、协议、脚本优化、参数化(三)
一.3大基本组件:VuGen.Controller.Analysis 1.VuGen:录制.编写脚本. 2.Controller:性能测试场景设计以及监控的地方. 3.Analysis:生成图表报告的 ...
- JMeter脚本录制
1.1. 使用第三方录制方式或代理录制方式(建议) 第三方采用:http://www.badboy.com.au/ 通过badboy来录制,录制后另存为jmx格式即可. 操作步骤: a.打开badb ...
- Jmeter+Ant+Jenkins接口自动化测试(二)_测试方案设计及jmeter脚本开发
前言 根据之前部署好的测试环境,进行接口自动化测试的方案设计及Jmeter脚本开发.测试方案设计过程中采用了数据分离和对象分离等思路,因此直接通过特定的测试用例文档来驱动整个自动化接口测试的执行,相关 ...
- JMeter 脚本开发(五)
一.JMeter 元件运行顺序 执行顺序逻辑如下: 1.配置元件(如果存在) 2.前置处理器(如果存在) 3.定时器(如果存在) 4.取样器(如果存在) 5.后置处理器(如果存在且取样器的结果不为空) ...
随机推荐
- 20155310 2016-2017-2 《Java程序设计》第三周学习总结
20155310 2016-2017-2 <Java程序设计>第三周学习总结 教材学习内容总结 1.对象(Object):存在的具体实体,具有明确的状态和行为. 2.类(Class):具有 ...
- 第9周 实现PWD命令
第9周 实现PWD命令 码云链接:https://gitee.com/bestiisjava2017/laura5332/blob/master/%E4%BF%A1%E6%81%AF%E5%AE%89 ...
- PHP中的事件处理
看下面的事件类 class Event { protected static $listens = array(); /** * [listen 注册监听事件] * @param [string] $ ...
- dsp6657的helloworld例程测试-第一篇
环境搭建可以参考http://blog.sina.com.cn/s/blog_ed2e19900102xi2j.html 1. 先从mcsdk导入工程,helloworld例程 2. 提示有错误,估计 ...
- Entity Framework中的几种加载方式
在Entity Framework中有三种加载的方式,分别是延迟加载,自动加载和显示加载.下面用一个例子来说明:现在有两个表,一个是资料表(Reference),另外一个表是资料分类表 ...
- 「日常训练」Magic Stones(CodeForces-1110E)
题意 给定两个数组c和t,可以对c数组中的任何元素变换\(c_i\)成\(c_{i+1}+c_{i-1}-c_i\),问c数组在若干次变换后能否变换成t数组. 分析 这种魔法题目我是同样的没做过. ...
- Sublime Text3添加右键
在Sublime Text3安装目录下新建一个文件 sublime_addright.inf 文件内容: [Version] Signature="$Windows NT$" [D ...
- Redis 哨兵 Sentinel
Redis Sentinel:redis集群应用,分布式系统. 多个Sentinal进程之间通过 gossip 协议来接收主服务器是否下线的信息,通过 Raft 一致性协议来决定故障转移及转移服务 ...
- LeetCode 845——数组中的最长山脉
1. 题目 2. 解答 2.1 方法一 left 数组表示当前元素左边比当前元素小的元素个数,right 数组数组表示当前元素右边比当前元素小的元素个数.在山脉的中间 B[i] 处,其左边和右边肯定都 ...
- 【RL系列】从蒙特卡罗方法步入真正的强化学习
蒙特卡罗方法给我的感觉是和Reinforcement Learning: An Introduction的第二章中Bandit问题的解法比较相似,两者皆是通过大量的实验然后估计每个状态动作的平均收益. ...