Jmeter进行参数化

Jmeter组件参数化

参数化是什么

动态的获取并设置数据

为什么使用参数化

执行批量操作,批量添加批量删除,人工效率太低运用程序代替人工获取并设置数据,安全高效比如:对被测系统的用户名和密码进行参数化,来模拟多个用户同时登录系统

参数化实现之用户自定义变量

通过这个功能,能实现多接口共享数据,修改一条即可修改全部

Filename:所需数据文件的路径。如和脚本同一路径,可直接填写文件名

File encoding:编码和文件保持一致即可,默认为ANSI。如有中文,建议为UTF-8

Variable Names:引用变量时的变量名,对应数据文件中的每一列,以逗号分隔。如不填写,文件的第一行数据将被读取为变量名

Delimiter:在.txt、.dat文件中,可以用逗号(,)或者Tab键(\t)来区分列与列

Allow quote data:选项选为“true”的时候对全角字符的处理出现乱码

Recycle on EOF:到数据文件结尾时是否循环读取。设置为True时,线程数过多,数据文件读取到最后一行时,会再次从第一行开始读取。设置为False,到达文件结尾时如继续读取,则值会默认为,可通过设置jmeter属性csvdataset.eofstring来改变该值。

Stop thread on EOF:Recycle on EOF设置为False,Stop thread on EOF设置为True,则读取数据文件最后一行后,停止测试,不管还有多少线程组未执行。

Sharing mode:共享模式。默认在所有线程组中使用,可选择每个线程组单独打开

相同的部分使用用户自定义变量

只需要修改一次接口

效果展示

参数化实现之CSV Data Set Config

添加CSV Data Set Config:

添加界面:

通过这个组件可以动态获取并设置数据,实现批量添加操作

名词解释:

Filename:所需数据文件的路径。如和脚本同一路径,可直接填写文件名Fileencoding:编码和文件保持一致即可,默认为ANSI。如有中文,建议为UTF-8VariableNames:引用变量时的变量名,对应数据文件中的每一列,以逗号分隔。Delimiter:在.txt、.dat文件中,可以用逗号(,)或者Tab键(\t)来区分列与列Allowquote data:选项选为“true”的时候对全角字符的处理出现乱码Recycleon EOF:到数据文件结尾时是否循环读取。设置为True时,线程数过多,数据文件读取到最后一行时,会再次从第一行开始读取。设置为False,到达文件结尾时如继续读取,则值会默认为<EOF>,可通过设置jmeter属性csvdataset.eofstring来改变该值。Stopthread on EOF:Recycleon EOF设置为False,Stopthread on EOF设置为True,则读取数据文件最后一行后,停止测试,不管还有多少线程组未执行。Sharingmode:共享模式。默认在所有线程组中使用,可选择每个线程组单独打开

添加引用文件:

引用:

在jmeter中添加

线程数改为某个值

查看结果树:

其他:

线程组线程数改为大于文件中数据的处理:

遇到结束符在循环

遇到结束符停止线程

如果数据来自数据库

数据库导出txt文件

使用Jmeter函数助手(文件中不要出现中文):

1、点击 选项-->函数助手 调出函数助手对话框2、选择 _CSVRead 函数(下图第一个框)3、函数参数:1)第一个参数:填写文件路径。2)第二个参数:文件列号是从0开始的,第一列0、第二列1、第三列2、依次类推,然后点击【生成】按钮,则会自动生成我们需要的参数化函数。3)复制生成的参数化函数,copy过程需要使用的地方即可。4)_Random函数是从某数据段随机读取数据替换参数,当需要添加多条数据记录且某些字段需要唯一性时使用。

Jmeter正则表达式提取

使用正则提取

运用Jmeter正则提取器,可以从请求的响应结果中取到需要的内容,从而实现关联。关联是请求与请求之间存在数据依赖关系,需要从上一个请求获取下一个请求需要回传回去的数据

正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

字符描述

*匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。

+匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。

?匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 、 "does" 中的 "does" 、 "doxy" 中的 "do" 。? 等价于 {0,1}。

( )标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。

.匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 . 。

构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。

正则表达式提取的相关设置

说明:

(1)引用名称:下一个请求要引用的参数名称,如填写title,则可用${title}引用它。(2)正则表达式:():括起来的部分就是要提取的。.:匹配任何字符串。+:一次或多次。?:不要太贪婪,在找到第一个匹配项后停止。(3)模板:用$$引用起来,如果在正则表达式中有多个正则表达式,则可以是$2$$3$等等,表示解析到的第几个值给title。如:$1$表示解析到的第1个值(4)匹配数字:0代表随机取值,1代表全部取值,通常情况下填0(5)缺省值:如果参数没有取得到值,那默认给一个值让它取。

案例:api接口

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Jmeter组件参数化 参数化是什么 动态的获取并设置数据 为什么使用参数化 执行批量操作,批量添加批量删除,人工...
    小张同学111阅读 212评论 0 0
  • 5.1参数化是什么? 动态的获取并设置数据 5.2为什么使用参数化 1.执行批量操作,批量添加批量删除,人工效率太...
    小Ai826阅读 266评论 0 0
  • 本文由作者张迎贞授权网易云社区发布。 一、用户定义的变量 1、右键快捷菜单中选择添加-配置元件-用户自定义变量。 ...
    43ce3d72fadb阅读 13,340评论 1 1
  • 一. 性能测试 1.0 为什么要进行性能测试? 评估当前系统的能力 寻找性能瓶颈,优化系统性能 评估软件是否满足...
    zflain阅读 203评论 0 0
  • 一. 性能测试 1.0 为什么要进行性能测试? 评估当前系统的能力 寻找性能瓶颈,优化系统性能 评估软件是否满足...
    5888eb1818d9阅读 237评论 0 0