jmeter五种参数化方式之CSV Data Set Config参数化

 

一、用户定义的变量

一般会设置全局不变的参数,如host、账号、密码等

设置名称username,password  值王荔,123456

线程设置2次和循环设置2次,2次采样器传参和结果一样

二、用户参数

添加用户参数

设置3组参数

参数化

当线程设置线程数4个,会循环参数1 2 3 1;当循环设置4次,会循环参数1 4次;当线程设置2个,循环设置5次,会参数1和2分别循环5次

三、随机变量

添加随机变量

设置随机变量

变量名称:名称可以引用,如 ${xxx}

输出格式:列如此处输入x,那么得到结果是x1、x2之类的格式

最小值:输入生成随机数的最小数字

最大值:输入生成随机数的最大数字

分别设置10线程或10次循环,随机生成10个变量

四、计数器

添加计数器

设置计数器

启动(start) 
给定计数器的起始值、初始值,第一次迭代时,会把该值赋给计数器 
注:英文版下是Start,Jmeter的中文语言将Start翻译成了“启动”,有些歧义

递增(Increment): 
每次迭代后,给计数器增加的值

最大值(Maximum) : 
计数器的最大值,如果超过最大值,重新设置为初始值(Start),默认的最大值为Long.MAX_VALUE,2^63-1

Number format : 
可选格式,比如000,格式化为001,002。默认格式为Long.toString(),但是默认格式下,似乎还是可以当作数字使用

引用名称(Reference Name) : 
用于控制在其它元素中引用该值,形式:$(reference_name}

与每用户独立的跟踪计数器(Track Counter Independently for each User): 
换言之,这个是全局的计数器,还是说每个用户拥有自己的计数器。如果不勾选,即全局的,比如用户#1 获取值为1,用户#2获取值为2,如果是独立的,即不勾选,每个用户有自己的值,比如用户#1 获取值为1,用户#2获取值还是为1

Reset counter on each Thread Group Iteration : 
可选,仅勾选与每用户独立的跟踪计数器时可用,如果勾选了,每次线程组迭代,都会重置计数器的值。当线程组是在一个循环控制器内时比较有用
 

未勾选与每用户独立的跟踪计数器

线程10时、循环10次时,递增迭代

勾选与每用户独立的跟踪计数器

线程10时,迭代第一个变量;循环10次时,递增迭代

 

五、csv data set config参数化

添加csv data set config

设置参数文件

 

设置csv data set config

  1. Filename:文件名,指保存信息的文件目录,可以相对或者绝对路径(比如:D:\ceshi.Txt)
  2. File encoding:csv文件编码,可以不填
  3. Variable Names:变量名,多个变量用“,”分开。变量使用格式${OA_VendingMachineNum}和${Name}
  4. Delimiter:csv文件中的分隔符(用”\t”代替tab键)(一般情况下,分隔符为英文逗号)
  5. Allow quoted data:是否允许引用数据(尚不清楚)
  6. Recycle on EOF :到了文件尾处,是否循环读取参数,选项:true和false。因为CSV Data Set Config一次读入一行,分割后存入若干变量交给一个线程,如果线程数超过文本的记录行数,那么可以选择从头再次读入
  7. 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次请求错误

     8. Sharing mode:共享模式,All threads –所有线程,Current thread group—当前线程组,Current thread—当前线程。经试验得出来的结果是(不考虑线程组迭代):

  • 如果测试计划中有线程组A、线程组B,A组内有线程A1到线程An,线程组B内有线程B1到线程Bn,CSV Data Set Config放在线程组A的下级组织树,不管怎么设置Sharing mode,都只针对线程组A且取之情况一样:线程A1取第一行,线程A2取第二行。CSV Data Set Config放在测试计划下级组织树(与线程组并列),情况如下 :

   All threads:测试计划中所有线程,线程组A、线程组B共用一个CSV文件,所取数据与线程实际执行顺序有关(先执行先取)。补充一点:线程组之间是并行执行,各线程实际执行时间根据Ramp-UP Period而来,如下图,若线程A、线程B均设置Ramp-Up Period:2,取之情况是:线程A1取第1行,线程B1取第2行,线程A2取第3行,线程B2取第4行。

        Current thread group:取之情况是:线程A1取第1行,线程A2取第2行,线程B1取第1行,线程B2取第2行。(线程组互不影响)

   Current thread:当前线程。A1取第一行,A2取第一行;B1取第一行,B2取第一行(均取第一行)

CSV Data Set Config默认设置,线程10个、循环10次,结果一样

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/568495.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Liunx服务器】阿里云服务器下部署多个tomcat服务

现在有这样一个场景,一个阿里云服务器上面已经有tomcat项目和多个maven项目,现在需要在一个新项目中配置一个空的tomcat,现将具体流程记录下来。 1.下载tomcat包或者找到已下载的包 2.将tomcat的包解压到指定项目目录:/data/proj…

python 按照当前日期创建文件

import time import os.path#获得当前系统时间的字符串 localtimetime.strftime(%Y-%m-%d %H:%M:%S,time.localtime(time.time())) print(localtimelocaltime) #系统当前时间年份 yeartime.strftime(%Y,time.localtime(time.time())) #月份 monthtime.strftime(%m,time.localti…

数据结构二叉树遍历求后序

注意左右子树的递归 参考自https://blog.csdn.net/hou_blog/article/details/50015503

【数据库】Mysql函数DATE_ADD() 增加日期/时间

有这样一个场景:数据库还款计划表有到期还款日字段,正常是每月2日。但这个字段有些是每月1日,现需要统一改成2日,可以用到DATE_ADD函数,但是执行时需要注意:只能执行一次 DATE_ADD(date,INTERVAL expr type…

【数据库】Mysql函数DATE_FORMAT() 显示日期/时间

上一篇文章介绍了Mysql函数DATE_ADD(),这篇文章主要是为了解决上次遗留的问题: 把问题变得更复杂一点:假设有两个借款,其中一个借款1的到期还款日为2日,借款2的到期还款日为10日。这个字段loan_pmt_due_date日期有多个…

fiddler抓包工具使用技巧

一、快速找所有post、get、Result code200请求 1、所有post请求的图标都是带有向右的小箭头的那种,如果能让所有向右的小箭头都高亮显示就好了解决方案:输入命令:post 然后点击enter键回车,可以看到所有的post请求都是以蓝色的底…

【数据库】Mysql的CONCAT()函数拼接字符串

mysql CONCAT()函数用于将多个字符串连接成一个字符串,是最重要的mysql函数之一: mysql CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。 回到上一篇文章的问题:假设有两个借款…

Jmeter中JDBC Connection Configuration实现MySQL JDBC Request数据库处理

一、JDBC Connection Configuration数据库配置元件 线程组-添加-配置元件-JDBC Connection Configuration Name:元件命名空间,请随意 Comments:注释,请随意 Variable Name:数据库连接池的名称,因为一个测试计划可以有多个JDBC Connection …

【数据库】Mysql的REPLACE()函数替换字符串

mysql中replace函数直接替换mysql数据库中某字段中的特定字符串,用起来非常的方便。 REPLACE(str,from_str,to_str) 第一个字符串str中,将from_str替换为to_str 回到上一篇文章的问题:假设有两个借款,其中一个借款…

百度智能云文档汇总

百度智能云文档汇总目录: 一、百度语音-->https://cloud.baidu.com/doc/SPEECH/index.html 百度语音提供对自然语言文本的解析服务。自然语言文本是用户意图的表述,意图解析的目的就是将文本解析成意图表示。 二、文字识别-->https://cloud.baidu…

Python单元测试框架之unittest+requests+ddt+excel接口自动化测试

unitetest是python里单元测试框架,是基于 java 的 junit 测试框架 相当于是一个 python 版的 junit,除了 unittest,还有一个 pytest 框架 unittest.TestCase:TestCase类,所有测试用例类继承的基本类 一个TestCase的实例就是一个…

【业务篇】史上最全经验版用例之IOS和Android版APP版本更新、IOS版规避审核?

一、IOS app设置苹果审核 为了app提交苹果能快速审核通过,故需设置app审核状态,隐藏部分敏感功能 1、线上app版本1.0.0,新版本app2.0.0测试通过,设置2.0.0版本app审核状态,隐藏2.0.0版本部分敏感功能,提交…

Python之Pymysql模块操作MySQL增删改查

Python3 MySQL 数据库连接 - PyMySQL 驱动 PyMySQL 连接数据库,实现增删改查 什么是 PyMySQL? PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。 PyMySQL 遵循 Python 数据库 API v2.0 规范&#x…

Python之日志处理(logging模块)详解

logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点 1、可以通过设置不同的日志等级,在release版本中只输出重…

神秘的安全测试思考案例(一)

定义:安全测试是在软件产品开发基本完成时,验证产品是否符合安全需求定义和产品质量标准的过程。 概念:安全测试是检查系统对非法侵入渗透的防范能力。 准则:理论上来讲,只要有足够的时间和资源,没有无法进…

STL Map学习总结

1、 Map是关联容器,以键值对的形式进行存储,方便进行查找,关键词起到索引的作用,值则表示与索引相关联的数据,以红黑树的结构实现,插入删除等操作都可以在O(log n)时间内完成 2、它的特点是增加和删除节点…

【功能业务篇】APP获取用户定位、传参经纬度思考

常用的三种定位方式有:基于GPS定位、基于基站地位、基于wifi定位。 1、基于GPS定位: GPS定位需要GPS模块(硬件)的支持,没有GPS模块是无法进行GPS定位的。 GPS定位最大的优点就是其定位精确度高(一般误差在10m内),无网络也能用;缺点就是耗电高、定位慢、室…

cmd运行python程序

先cd到当前目录,然后python XXX.py

mysql 四种存储引擎

前言 数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以 获得特定的功…

Android ADB调试之无线连接设备

Android无线调试 一、数据线连接手机和电脑(首次设置需数据线连接),开启开发者模式和USB调试,确保手机和电脑已连接 cmd下执行adb devices 显示上图1,说明已连接 二、华为手机设置 1、开发人员选项 2、USB调试 3、…