失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 压测学习总结(7)——Jmeter性能测试之脚本增强

压测学习总结(7)——Jmeter性能测试之脚本增强

时间:2023-04-03 16:47:59

相关推荐

压测学习总结(7)——Jmeter性能测试之脚本增强

参数化

在Jmeter中,实现参数化的方式很多。 本质上来说,参数化的实现方式有两种:

文件方式:一般建议通过配置元件--CSV 数据文件设置组件来实现。

CSV 数据文件设置组件

函数方式:一般通过调用Jmeter内置的、第三方插件、自定义的函数来实现。 一般通过函数助手来生成调用的字符串。

调用方式

在jmeter中,任何鼠标点击可以输入的地方(输入字符串),都可以实现调用参数化操作,在Jmeter中,参数、变量、函数的调用方式是固定的: ${参数名} ${变量名} ${函数名}

CSV 数据文件设置组件详解:

文件名:即参数文件的名称。 可以使用相对地址,也可以使用绝对地址。

文件的编码:参数文件的编码,要求和实际编码保持一致。 默认为空,对应的文件编码格式为ANSI。

PS:建议参数文件使用记事本进行编辑,编码格式采用默认的ANSI。

变量名称:该处可以填写一个or多个变量名称,也可以不填写。

PS: ·如果有多个变量名称,则不论参数文件中的值的实际分隔符是什么,变量名称之间始终使用逗号进行分隔。 ·一个变量名称只会读取参数文件中的一列值。变量名称和值是按顺序一一对应。即第一个变量对应第一列值,第N个变量对应第N列值。 如果该处为空,则Jmeter会读取参数文件中的第一行的值作为变量名,然后从第二行开始取值。不建议留空。

忽略首行:表示忽略参数文件的第一行,直接从第二行开始读值。

分隔符:用来指定参数文件的列的分隔符,要求和实际的分隔符保持一致。

是否允许带引号?:即通过双引号屏蔽值本身所携带的分隔符字符。

遇见文件结束符再次循环?:是指读取到最后一列没有值的时候,循环读取。

遇见文件结束符停止线程?:该选项是在循环选项的值为false时才会起效。 作用是表示没有值的时候,停止线程。

线程共享模式:该选项影响的是Jmeter中的参数的取值方式。 可选的模式有三种:

所有线程:默认方式,所有线程。表示当前的测试计划下的所有线程共用一个参数文件的副本。对于参数值采取先到先拿,顺序获取的方式。 如果不设置Recycle on EOF为true,则作用就是唯一取值。

当前线程组:表示一个线程组中的所有线程共用一个参数文件的副本。如果有多个线程组,则参数文件会生成多个副本。线程组之间相互不影响,独立取值。每一个线程组中,还是采取先到先拿,顺序获取的方式。

当前线程:表示每一个线程都会拥有一个独立的参数文件的副本。线程自己采取顺序获取的方式。线程之间相互不影响。 该方式等价于LR中的默认参数取值方式。

关联

关联是用来解决请求之间的依赖关系的。在工具层面,工具需要解决的问题其实是两个:

先存:先保存服务器响应的数据;后用:在后续的请求中调用所保存的数据。在Jmeter中,关联一般都是通过后置处理器组件来实现。常用的是:正则表达式提取器、JSON Extractor。

正则表达式提取器:

要检查的字段:默认是主体,即要从响应主体里提取数据。

信息头:是指响应的信息头,目前很多token相关的数据可能是通过响应头来返回的。

引用名称:即变量名称,由用户自己指定。

正则表达式:该处填写的是用来获取数据的正则表达式。

通常来说,我们截取关联数据的左右固定的字符串,然后将需要关联的数据替换为"(.*?)"即可。

示例: 服务器返回:aaa数据bbb aaa和bbb是固定不变的,即为左右边界,数据是变化的。则最终的正则表达式可以写为 aaa(.*?)bbb PS:不论是左右边界还是数据本身包含回车换行的话,则不能用点“.”,要用“[\\s\\S]”替代。 ·模板:该处可以填写的内容有两种:字符串常量、位置变量$N$,当然也可以是组合。 ·字符串常量:不是位置变量格式的都是字符串常量。表示将字符串常量的值直接赋值给引用变量。 ·位置变量$N$: N表示将正则表达式第N对括号所对应匹配的值赋值给变量。

PS:一般来说,我们的正则表达式只有一对括号,所以模板很多时候就写$1$即可。

如果觉得《压测学习总结(7)——Jmeter性能测试之脚本增强》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。