jmeter参数化的用法和用途
参数化,能打开这篇博客看的应该都懂。。。最早我能想到的就是对传的参数进行参数化,比如手机号,我传131开头的、133开头的、135开头的,如果不会参数化,就要写三个http请求,分别传这三种参数,学会了参数化,只写一个http请求就够了,当然还会加点jmeter的其它一些小东西。以我的理解,jmeter有四种参数化,我只用熟了两种,不过这两种应该是最好用的两种,今天就主要说说这两种,另外两种会大概提一下。(又回来修改一下,感觉jmeter既然有四种参数化,就有它的原因,今天又明白了其中一个存在的原因,虽然还觉得函数助手有点多此一举了,所以下面主要有三种参数化的方法)
我学参数化时候用了“京东万象”的接口,那里提供很多接口可以供学习者使用,不用再因为学习接口测试而想办法抓包了。这里我主要用的是一个查询天气预报的接口,输入城市,就可以查这个城市的天气预报,下面是这个接口的信息。
下面介绍第一种参数化方法:CSV Data Set Config
这种方法需要写一个参数文件,放在电脑指定一个地方,
这个东西在配置元件里,按着名字找就行了。
名称:随意填写
Filename:写参数文件放置的位置,应该也可以用相对路径,相对路径和绝对路径,根据个人喜好选择。这里可以看出我在F盘的jmeter目录下,有个city.txt的文件。文件内容如下:
File encoding:这里应该是编码规则,先空着,如果编码不对可以试试utf-8。(这个接口我之前写了utf-8,运行结果有问题)
Variable Names (comma-delimited):这里是参数的引用名,我在这写的city(如果这里看不懂,先往下看)。这里只参数化了其中一个参数,如果多个参数,参数名之间用英文的逗号隔开,如city,province。上面那个参数的文件里的参数值,就要写两列,之间用英文逗号隔开,如石家庄,河北。(应该是这样的,如有需要可以试试)。
然后加一个http请求,具体怎么写不多说了,直接上图。
和一般的http请求差不多,只是在传参数那里,看第二个传的参数。这里我为了省事,传的city这个参数,后面的参数值,就是引用上面CSV Data Set Config的Variable Names (comma-delimited),那里我写的city,这里格式就是这样:${city}。写到这里应该比较清楚了,用CSV Data Set Config调取文件,获取参数值,放到http请求里传出去。
因为这里有四个参数,我要设置一下线程组。
这里线程数设置为4,执行时候就自动获取参数,把文件里的4个参数都获取一遍,如果参数很多,可以使用这种参数啊化方法。就像我用过一次测试手机号段的,从100-199,一共100个号段,就是用的这种参数化。
还有一种参数化,也是使用的外部文件,当参数值的,那个使用了一个函数助手,简单介绍一下。
函数助手是在上面菜单栏里选项—>函数助手对话框。
这里找到__CSVRead这个函数,函数参数这里可以看到两个参数,上面的就是参数文件的路径,和刚才一样,都在F盘那个目录;下面这个大概就是取第几列的意思,计算机都是从0开始计数,这里的0表示的是第一列。点击生成,生成的这个复制到http请求的city那个参数值那里就可以了,这里也要注意设置线程数。这个生成的字符串还是有规律的,看明白了也不用每次都打开函数助手生成,不过我还是喜欢用第一个那种参数化方法。
第三种参数化方法:用户参数
用户参数是在线程组,右键,添加,前置处理器里的,看一下用户参数内容,很简单。
上面的名称和注释,内容随意。
我这里名称还是用的city,后面的用户1、2、3、4,就是四个参数,一定要勾选“每次迭代更新一次”,不然执行了几次,都是取的一个城市,http请求还和第一种参数化写法一样,再附一张图。
这个线程数也要记得改一下。这种参数化方法适用于参数少的情况。
第四种:用户定义的变量
这也是一种参数化方法,之前觉得有第一种和第三种就够了,因为用户定义的变量,并不能让一个参数有多个参数值可选,不明白为什么要有这个功能,直到今天突然领悟了,还要感谢项目中实践。之前测接口,有几百种情况,写了几百个HTTP请求,那会儿也没弄参数化,今天又发布了一版,而且IP地址变了,这下就得改几百个IP了,虽然只是简单的复制粘贴。改了几个突然想到了参数化,IP这里能不能参数化呢?如果能用哪种好?很快就想到了这个之前感觉很鸡肋的方法。下面就是这种参数化的使用方法,还是用的查询天气预报接口。(这期间把jmeter升成4.0了,只能截4.0的图了)
点下面的添加,就可以添加一行,把url写进这里了。如果想参数化端口号,再添加一行,写端口号就可以了。引用url方法和其它参数引用方法一样了。
IP那里被参数化了,可以执行。这么参数化下来,以后就不怕服务器IP再变了,如果变动,直接改一下用户定义的变量里面那个url的值就可以了。这种参数化方法适用于大量的HTTP请求里有相同的信息。(jmeter4.0可以设置成中文的,截图时候没设置)
jmeter也可以连接数据库,从数据库中查询的数据可以当参数,但是这应该不算参数化,从数据库中找到很多数据,能真正当参数的只有一个,我还没实现每条数据当一次参数的方法,不知道有没有,如果有后续会写出来。
上面介绍了参数化的用法,举得例子都是在http请求的Parameters里传参数,其实参数不止在这里用,同样http请求的Body Data里的参数也可以用参数化,看图。
这是实际工作中用的参数化,我在尝试各种手机号段注册能不能成功。
参数化也可以用在HTTP信息头管理器,断言也可以,就不附图了,我现在只用到了这几处,我想参数化还有其它地方的应用,不过用法都一样,就在实践中一点一点的琢磨了。
参数化虽然好用,但是也不是越多越好,根据自己情况,判断哪里需要参数化。
jmeter参数化的用法和用途相关推荐
- jmeter csv参数化_运用Jmeter参数化来实现接口自动化测试
本文记录如何使用Jmeter参数化(csv)实现接口自动化--测试Token不同入参情况下,接口请求能够返回正确的结果 1. 首先需要使用Jmeter获取一个Token,如何获取暂略(同一般访问请求方 ...
- jmeter参数化之用户参数
传参比较少的值(若参数值比较多请参考[JMeter 参数化 CSV引入文件 函数使用]) 1.jmeter-->线程组-->添加-前置处理器-用户参数,一个参数名 searchtxt 2. ...
- Jmeter 参数化请求实例
Jmeter 参数化请求实例 在jmeter中的请求可以参数化,其中参数化的方式有4种: 1.CSV Data Set Config 2.数据库 3.用户自定义变量 4.用jmeter中的函数 ...
- Jmeter参数化的理解
jmeter参数化有两种情况: jmeter执行的sql语句中值的参数化(如select过滤条件) csv data set config 参数表示方式${zjhm} jmx脚本的设置属性参数化,方便 ...
- Jmeter基础之JMeter参数化补充练习
我们本篇文章演示在请求中,以Json形式的数据格式,实现JMeter参数化. 我们以小项目学院管理系统为例,下载地址:点击下载,里面有详细的启动配置说明和API接口文档. 接口文档如下: 学院-新增1 ...
- 玩转JMETER参数化
JMETER 参数化 JMETER 跟LoadRunner 一样也有参数,一般在项目性能测试过程中间,不允许相同用户名和密码进行登录,这个时候就需要用到参数化,使每个虚拟用户都使用不同的用户名和密码进 ...
- jmter测试jmeter参数化(必须掌握)
回顾接口测试知识 接口三要素: 请求地址/方式 请求参数 返回值 HTTP协议 请求方式 get 带参数 params 不带参数 只有一些地址 post x-www-form-urlencoded 参 ...
- 转载:Python 的关键字 yield 有哪些用法和用途?
原始链接:https://www.zhihu.com/question/345210030/answer/841903171 Python 的关键字 yield 有哪些用法和用途? 飞鸿 人生到处知何 ...
- JMeter笔记9 | JMeter参数化
9 | JMeter参数化 1 测试对象 2 分析 3 JMeter参数化 3.1 配置元件 3.2 CSV Data Set Config 3.2.1 元件介绍 3.2.2 界面参数 3.3 函数助 ...
最新文章
- 小程序---canvas画图,生成分享图片,画图文字换行
- JVM学习笔记(四)------内存调优
- 4G物联网网关和工业路由器的区别
- python移动文件中某个内容_如何在Python中移动文件
- mysql 安装绑定my.ini
- 分屏如何保持运行状态_如何提升心理素质,在比赛中保持更好的状态
- 安装Visio2010 64bit时提示不能安装32位版本的Office 2010 ,因为您当前已经安装了64位Office产品的解决方法(亲测可行)
- 基于java的药品管理系统_基于Java药品管理系统
- python计算器函数图像_Python图形计算器,python,图像,化
- win10服务器账号和密码,WIN10提示输入管理员用户和密码
- 三角测量计算三维坐标的代码_室内定位系统的三边测量与三角测量
- 【Audio音频兴趣拓展】如何调试频响曲线?
- lumion6.0的下载和安装教程
- 【PTA】日程安排(多重继承+重载)
- Datawhale数据分析思考与问题解决
- 几个常见网络故障修复命令
- 解决[Vue warn]: Unknown custom element: <ag> - did you register the component correctly? For recursive
- 微型计算机中的i3或i51般指的是什么,cpu到底有什么区别,i3,i5,i7?
- udp丢包 又是udp丢包
- 前端开发 html第二课 自结束标签 注释 标签中的属性 文档声明 进制 字符编码 文档使用 VScode 实体 meta标签 语义化标签 块元素和行内元素 布局标签
热门文章
- SiamFC++ SiamCAR SiamBAN
- Android 6.0 Marshmallow介绍
- 为什么苹果蓝牙耳机连上还是公放_高版本AirPods无线蓝牙耳机二代、三代开团啦!...
- F005-如是我观,知识产权 #F520
- 机器学习常见任务类型
- 数据库去重,group by、distinct、rowid的用法,oracle和mysql如何数据去重保留一条
- Linux ar命令(更改静态库相关属性信息)
- JavaScript图片轮播图
- (SSM解析错误)$%7BpageContext.request.contextPath%7D/account/save
- shell 批量 ping 多个IP地址