Jmeter -- 参数化(函数助手和CSV数据文件配置)
使用场景:
例如:模拟多用户登陆时
参数化两种方式:
方式一:使用函数助手
1. 创建包含多个登录名和密码的文件
可以在文本编辑器中输入,格式如下:
username,password
username2,password2
username3 , password3
注意中间以逗号分隔,保存后缀名为csv(dat,txt后缀均可)
2. 顶部标题栏选择options-->function helper dialog 打开函数助手对话框
3. 将第二步生成的函数填写到入参位置
4. OK,可以执行啦
执行时会自动调用配置的文件中的对应列内容
方式二:使用配置元件
1. 创建包含多个登录名和密码的文件(同方式一)
注意文件编码方式
2. 新建CSV配置元件 Add-->Config Element-->CSV Data Set Config
3. 填写CSV配置元件参数
参数说明:
1) filename: 文件名,指保存信息的文件目录,可以相对或者绝对路径(当csv文件在bin目录下时,只需给出文件名即可)
2) file encoding: 文件编码
3) variable names(comma-delimited): 参数名称(多个名称之间用逗号隔开)
4) ignore first line(only used if variable names is not empty): false代表全部文件内容都有效, true代表忽略第一行,从第二行开始读取
5) delimiter(user '\t' for tab): 分隔符(一般用逗号即可)
6) allow quoted data: True设置文件中的参数值都必须用"引号"引起来,False则不需要
7) recycle on EOF: 到了文件尾,是否从头开始循环读入。(每次读取一行,每次读取的参数仅供一个线程使用,如果线程数超过文本的记录行数,那么可以选择true(从头再次读取))
8) stop thread on EOF: 到了文件尾,是否停止线程
recycle on EOF和stop thread on EOF的区别:
a. 当Recycle on EOF 选择true时,Stop thread on EOF选择true和false无任何意义,通俗的讲,在前面控制了不停的循环读取,后面再来让stop或run没有任何意义
b. 当Recycle on EOF 选择flase时,Stop thread on EOF选择true:线程4个,参数3个,那么只会请求3次
c. 当Recycle on EOF 选择flase时,Stop thread on EOF选择flase:线程4个,参数3个,那么会请求4次,但第4次没有参数可取,不让循环,所以第4次请求错误
9) sharing mode: 设置线程共享
a. all threads 所有线程:测试计划中所有线程,假如说有线程1到线程n (n>1),线程1取了一次值后,线程2取值时,取到的是csv文件中的下一行,即与线程1取的不是同一行
b. current thread group 当前线程组:假设有线程组A、线程组B,A组内有线程A1到线程An,线程组B内有线程B1到线程Bn。取值情况是:线程A1取到了第1行,线程A2取第2行,现在B1取第1行,线程B2取第2行
c. current thread 当前线程:假设测试计划内有线程1到线程n (n>1),则线程1取了第1行,线程2也取第1行
ps: 简单起见,一个jmx文件里,只一个测试计划,一个线程组,按上图配置,修改文件名和列名即可
配置时,注意线程数和配置文件的行数(一般写成一致的)
4. OK,可以执行啦
PS:recycle on EOF和stop thread on EOF设置,执行结果也可以从日志中分析
例如:线程数为8,CSV文件中只有4条记录。recycle on EOF为false,stop thread on EOF为true(即不循环,到文件尾就结束)
执行日志如下:
日志: Stop Thread seen for thread 登陆参数化-config element 1-5, reason: org.apache.jorphan.util.JMeterStopThreadException: End of file:C:/Users/Administrator/Desktop/000.txt detected for CSV DataSet:CSV Data Set Config configured with stopThread:true, recycle:false
从日志可见,线程1-4分别读取文件的第1-4行,线程5-8未执行
Jmeter -- 参数化(函数助手和CSV数据文件配置)的更多相关文章
- jemeter压测, 高级应用: 发1万个请求,每个请求参数都不同, 使用CSV数据文件配置
今天接到一个压测任务, 数据源需要自己从测试环境库中取, 并且使用jemeter 请求, 每个请求参数都不相同 这里使用jemeter的 CSV数据文件来配置: 这样配置好后, 开始发送请求: csv ...
- jmeter压测学习7-登录参数化(CSV 数据文件设置)
前言 我们在压测登录接口的时候,如果只用一个账号去设置并发压测,这样的结果很显然是不合理的,一个用户并发无法模拟真实的情况. 如果要压测登录接口,肯定得准备几百,甚至上千的账号去登录,测试的结果才具有 ...
- Jmeter系列(32)- 详解 CSV 数据文件设置
如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html 了解一哈什么是 CSV 文件 为了实现 ...
- Jmeter CSV数据文件设置使用之一
第一步: 在Jmeter 里,新建CSV数据文件设置,选择对应的文件,变量名称根据需要自己取,如bug,test,如下图所示: 第二步: 配置Jmetet 数据源,参数对应的名称要与CSV数据文件设置 ...
- pyhton读入Excel和csv数据文件
pyhton读入Excel和csv数据文件#file 数据文件的输入输出操作(主要包括Excel表格和csv表格文件)import pandas as pd #pyhton读入数据必须要导入panda ...
- jmeter笔记(6)--参数化--函数助手
函数助手提供的功能很多,本次笔记主要整理_CSVRead 函数._Random函数以及_RandomString函数的基础使用方法 1._CSVRead 作用:直接读取csv文件的值生成函数 1.在[ ...
- Jmeter之函数助手
本文转载自:心的开始 Emily0120 JMeter函数是一些能够转化在测试树中取样器或者其他配置元件的域的特殊值.一个函数的调用就像这样:${_functionName(var1,var2,va ...
- jmeter主要函数助手功用说明
jmeter中虽然有很多的插件,但是有些需要安装,有些具有一定的局限性.函数助手是一个快捷的工具库.下面记录一下函数助手中一些主要的函数的使用方法. 注:不内容中所有的实例均基于3.2记录 1._Be ...
- Jmeter之参数化函数助手__randomstring
1.Tools->函数助手对话框,选择__Random String,2表示随机生成的字符长度:3表示从哪些字符中随机生成:然后点击生成,得到对应的变量: 5中372表示该函数随机生成的字符串, ...
随机推荐
- C++线性表通过结构体实现操作和结构体字符串快速排序和shell排序结合
#include<iostream> #include<string> #define ml 10 using namespace std; typedef struct{// ...
- PHP:API 接口规范完整版本
整体规范建议采用RESTful 方式来实施. 协议 API与用户的通信协议,总是使用HTTPs协议,确保交互数据的传输安全. 域名 应该尽量将API部署在专用域名之下.https://api.exam ...
- python-day11(正式学习)
目录 文件高级应用 多重操作 r+t:可读,可写(文件名为a) w+t:可写可读 a+t:可追加可读 文件内指针移动及一些操作 指针移动seek(offset,whence) 寻找指针位置tell() ...
- Comet OJ - Contest #13 「火鼠的皮衣 -不焦躁的内心-」
来源:Comet OJ - Contest #13 芝士相关: 复平面在信息学奥赛中的应用[雾 其实是道 sb 题??? 发现原式貌似十分可二项式定理,然后发现确实如此 我们把 \(a^i\) 替换成 ...
- P2496 [SDOI2012]体育课
传送门 分块 对每个块维护一个 $add$ 和 $del$ 标记,对于块 $o$ 内某个位置 $i$,它真实的修改量为 $a[i]+add[o]*i-del[o]$ 这样就可以维护一个区间加一个等差数 ...
- liunx 环境下安装 Eclipse C++
第一步:首先安装JDK 进入JDK官网:https://www.oracle.com/technetwork/java/javase/downloads/index.html 下载对应的jdk 注意 ...
- AWS EC2 搭建 Hadoop 和 Spark 集群
前言 本篇演示如何使用 AWS EC2 云服务搭建集群.当然在只有一台计算机的情况下搭建完全分布式集群,还有另外几种方法:一种是本地搭建多台虚拟机,好处是免费易操控,坏处是虚拟机对宿主机配置要求较高, ...
- scrapy存储mysql
scrapy 数据存储mysql #spider.pyfrom scrapy.linkextractors import LinkExtractor from scrapy.spiders imp ...
- 微信小程序 setData动态设置数组中的数据
setdata传递动态数据值必须为对象(只能是key:value) 语法如下 this.setData({ filter: 1212 }) 如果setdata要传递数组呢? 首先相到的是 this.s ...
- 383-基于kintex UltraScale XCKU040的双路QSFP+光纤PCIe 卡
一.板卡概述 本板卡系我司自主研发,基于Xilinx UltraScale Kintex系列FPGA XCKU040-FFVA1156-2-I架构,支持PCIE Gen3 x8模式的高速信号处理板卡 ...