Jmeter参数化(_csvread函数、CSV Data Set Config)
方法一、Jmeter自带的函数助手——_CSVRead函数
1.数据准备:先在excel存储数据,保存格式选择csv格式。或在记事本存储数据,列之间用英文逗号分隔,保存为txt
2.使用_csvread函数:选项-->函数助手对话框,打开函数助手弹窗,选择_csvread函数
第一行:输入csv文件所在的路径,如F:\test.csv。
第二行:输入参数所在的列,列数是从0开始数的。如第一列是用户名对应的列号为0;第二列是密码对应的列号为1。
点击生成被调用的函数:${__CSVRead(F:\test.csv,0)},在参数对应的值处填入该值。
方法二、CSV Data Set Config
通过Test Plan或者Thread Group的Add->Config Element(配置元件)->CSV Data Set Config,设置变量名后通过${name}引用
以下是CSV Data Set Config各个参数的简要说明:
FileName:和脚本同路径只需写文件名,如果不是则填写全路径名称
File Encoding: 编码方式,可以不填写,默认为ANSI。如果有中文,建议utf-8
Varible Names: 定义文本文件中的参数名,参数之间逗号分隔,定义后可在脚本在以Shell变量的同样的方式引用。如给出变量名user,pass,通过变量名引用${name},${pwd}
Delimiter(use '\t' for Tab):这个是用来隔开变量的分隔符,如上面的user,pass,那分隔符就是“,”。
Allow Quoated data: 双引号相关,例:如果参数中需包含逗号","或者双引号",该项可以选择True
Recycle on EOF: 设置为True后,允许循环取值
Stop Thread on EOF: 当Recycle on EOF为false并且Stop Thread on EOF为true,则读完csv文件中的记录后,停止运行
Sharing Mode: 设置是否线程共享。
All threads:所有线程,所有线程循环取值,线程1取第一行,线程二取下一行。
Current thread group:当前线程组,各个线程组分别循环取值。
Current thread:当前线程,该测试计划内的所有线程都取第一行。
方法三、用户定义的变量
选中取样器,右键:添加-配置元件-用户定义的变量。在列表中填入名称和值,在别处就用${name}来引用
方法四、正则表达式提取器获取
在打开登录页的时候服务器有返回一个sid,获取到sid后,然后登录进入到首页;所以在这个请求下添加后置处理器:右键-添加-后置处理器-正则表达式提取器
第1部分:名称+注释,可不修改,只是为了方便自己识别
第2部分:apply to 默认即可
第3部分:要检查的字段:主体等选择,一般我们选择主体,即服务器返回给我们的页面主体信息
第4部分:
【引用名称】:就是参数名称,在别处引用;如输入mysid,别处引用的时候使用${mysid}
【正则表达式】:表达式中()内的内容就是要提取的。如sid/(.*?)",表示查找sid/字符串之后的内容,直到出现第一个"时结束;(注意括号里的表示提取的内容)
【模板】:用$$引用起来,如果在正则表达式中有多个正则表达式(多个括号括起来的东东),则可以是$1$(表示只有一组数据),$2$等等,表示解析到的第1个、第2个值给mysid
【匹配数字】:0代表随机取值,-1代表所有,1代表全部取值
【缺省值】:如果参数没有取到值,则使用此处的缺省值
注意:运行脚本后,在“察看结果树”监听器中,[响应数据]标签页先搜索sid出现的位置,及出现的规律,如出现的时候前面会有“sid/”字符串; 调试正则提取表达式的时候,可添加Debug Sampler来查看是否正确提取到对应的值(右键-添加-Sampler-Debug Sampler)
方法五、从数据库获取
1) 将其中的mysql-connector-java-5.1.34-bin.jar放到Jmeter的lib目录下
2) 添加“配置元件”->“JDBC Connection Configuration”,设置下列参数:
Variable Name:连接池名称
Database URL:jdbc:mysql://host:port/db(jdbc:mysql://ip地址:端口号/数据库名称)
JDBC Driver class:com.mysql.jdbc.Driver
username:连接数据库的用户名(如root)
password:连接数据库的密码
3) 添加“Sampler”->“JDBC Request”,在SQL Query中输入查询语句,如下:
select concat(domain,'+',po_pwd) as userpass from domain;
Variable Name:连接池名称
注意:该值要和JDBC Connection Configuration中配置的Variable Name值对应,否则会提示:No pool found named: 'pool12', ensure Variable Name matches Variable Name of JDBC Connection Configuration;
4) 在JDBC请求中添加“后置处理器”->“正则表达式提取器”,以提取用户名、密码为例,设置正则表达式提取器的参数:
引用名称:userPass
正则表达式:(.*)\+(.*)
模板:$1$$2$
使用时,userPass_g1即为用户名,userPass_g2即为对应用户名的密码;
注意:
(1)+在正则表达式中是关键字,所以需要\转义。
(2)匹配数字,填0或不填,表示随机读取,如果填正整数,如1,则不同虚拟用户或循环固定读取某行数据。
Jmeter参数化(_csvread函数、CSV Data Set Config)的更多相关文章
- JMeter 参数化之利用CSV Data Set Config从文件读取参数并关联变量
参数化之利用CSV Data Set Config从文件读取参数并关联变量 by:授客 QQ:1033553122 1. 添加CSV Data Set Config 右键线程组->配置元 ...
- jmeter 参数化学习之CSV Data Set Config随机读取一行参数
需要使用到循环控制器,if控制器,CSV Data Set Config,Random Variable 4个组件 如图 先在线程组下面放一个随机数生成器 然后在同一层级设置一个永久的循环控制器,记住 ...
- jmeter参数化之 【CSV Data Set Config/CSV数据配置文件】
这里以登录功能为例: 1.新建.txt文件,将参数值写入到txt文件中(多个参数值如:用户名,密码 之间以逗号隔开),将文件放置在想要放置的目录下 2.添加csv数据文件设置 右键线程组->添加 ...
- 参数化之利用CSV Data Set Config从文件读取参数并关联变量
众所周知,在进行接口测试的过程中,需要创建不同的场景(不同条件的输入,来验证不同的入参的返回结果).因而,在日常的自动化接口监控或商品监控等线上监控过程中,需要配置大量的入参来监控接口的返回是否正确. ...
- jmeter配置原件之使用CSV Data Set Config参数化
测试过程中经常需要对发送的请求进行参数化,jmeter提供的CSV Data Set Config 配置元件可以很好的对请求数据进行参数化,下面介绍使用CSV Data Set Config参数化 1 ...
- CSV Data Set Config 拓展开发
1.目的 在日常的性能测试项目中,经常会遇到参数化的问题,我们所熟知的LR工具对参数化支持非常友好,然而JMeter相对逊色一些.大家都知道在使用JMeter工具参数化时常用CSV Data Set ...
- CSV Data Set Config 详细使用说明
JMeter 5.1.1 CSV Data Set Config 场景一:线程组中设置:单线程执行1次 如上图所示:变量名称为空时JMeter默认把new 1.txt的文件首行作为变量名 再如:此时A ...
- Jmeter利用CSV Data Set Config 和 _CSVRead函数实现参数化
测试接口时,当请求参数不是固定的,每次请求对应的参数都是不同的,就需要对请求参数进行参数化.我们这里简单介绍一下5个用户与一个用户建立好友关系. 一.测试需求描述 1. 本次测试的接口为http服务端 ...
- jmeter(四)参数化之CSV Data Set Config 和 CSVRead函数的区别
jmeter的参数化可以添加配置元件CSV Data Set Config,也可以使用函数助手CSVRead.下面我就介绍一下2者的区别. 1.CSVRead函数,有2个参数值(路径和序号): 特点: ...
随机推荐
- 【cf contest 1119 H】Triple
题目 给出 \(n\) 个三元组\(\{ a_i,b_i,c_i \}\)和\(x,y,z\): 将每个三元组扩展成(\(x\)个\(a_i\),\(y\)个\(b_i\),\(z\)个\(c_i\) ...
- shell脚本编程基础之while、for、until循环
while及until循环结构 while CONDITION:do statement done 进入循环:条件满足 退出循环:条件不满足 当需要命令的执行状态返回值时,可以直接把整个命令当做循环的 ...
- presto集成kerberos以及访问集成了kerberos的hive集群
1.创建主体 注: 192.168.0.230 为单节点集群 192.168.4.50为kdc服务器 192.168.0.9为客户端 1.1.Kdc服务器创建主体 # kadmin.local -q ...
- cnetos6.5安装Varnish
安装依赖包: tar -zxvf docutils-0.13.1.tar.gz python setup.py install unzip pcre2-10.23.zip ./configure -- ...
- java 优秀开源项目
一.https://github.com/zhangdaiscott/jeecg-boot 简介:一款基于代码生成器的JAVA快速开发平台!全新架构前后端分离:SpringBoot 2.x,Ant D ...
- 刷题记录:[SUCTF 2019]EasySQL
目录 刷题记录:[SUCTF 2019]EasySQL 一.涉及知识点 1.堆叠注入 2.set sql_mode=PIPES_AS_CONCAT;将||视为字符串的连接操作符而非或运算符 3.没有过 ...
- 菜鸟学IT之Hadoop综合大作业
Hadoop综合大作业 作业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/3363 1.将爬虫大作业产生的csv文件上传到HDF ...
- spring @Autowired注入map
注入map,平常一般不会这么做,今天看一段老代码时发现有这么个用法.补习一下. @Autowired 标注作用于 Map 类型时,如果 Map 的 key 为 String 类型,则 Spring 会 ...
- Java线程同步的Monitor机制(Lock配合Condition)
Monitor模式是一种常见的并行开发机制, 一个Monitor实例可以被多个线程安全使用, 所有的monitor下面的方法在运行时是互斥的, 这种互斥机制机制可以用于一些特性, 例如让线程等待某种条 ...
- ES6将两个数组合并成一个对象数组
需求 有这么两个数组 let metrodates = [ "2008-01", "2008-02", "2008-03",..ect ]; ...