Jmeter前置处理器使用说明

说明

Pre Processors:意为前置处理器,用于对于采集器进行处理,且是在sampler启动之前,此处和后置处理器是有所区别的;
前置处理器

此处理器为HTML链接解析器,用于从前一个sampler返回的html页面中按照规则解析链接和表单,再根据此处理器所在的sampler中的规则进行匹配修改,而后该sampler会执行;
HTML Link Parser
此处理器无配置,使用示例如下:
如下示例中执行说明为:
1. 发送sampler“搜索”并返回HTML页面;
2. sampler“点击链接”中下的HTML链接解析器会将步骤1中返回的HTML页面根据“点击链接”这个sampler设置的规则进行解析并将解析结果发送给sampler“点击链接”;
3. sampler“点击搜索”发送;
搜索
点击
运行此用例结果截图如下:
链接解析器结果

2、HTTP URL Re-writing Modifier

HTTP URL重写修改器,此处理器与HTTP Link Parser类似,但专用于使用url重写来存储sessionId而非cookie的http request,在线程组级别添加此修改器则应用于所有sample,若为单个sample添加则只适用该sample;
ReWrite
参数配置:
Session Argument Name:会话参数名称,用于搜索sessionId,其他sample也可通过此参数来 调用其获取的sessionId;
Path Extension:路径扩展,如url添加了分号作为分割,则勾选此项;
Do not use equals in path extension:用于url不用等号来分割key和value的类型;
Do not use questionmark in path extension:用于不带?的类型;
Cache Session Id?:勾选此项则会存储在其挂载的sample上获取到的sessionId供后边的其他sample使用;
URL Encode:是否使用url编码;

3、User Parameters

用户参数,用于做几组参数给线程组的各个线程使用,如果线程数多于用户参数组数,则多出来的线程则从第一组用户参数开始依次调用参数组;
User Parameters
参数配置:
Name:此前置处理器的名称;
Update Once Per Iteration:标识是否每轮迭代更新一次元素;

4、JDBC PreProcessor

数据库预处理器,用于在sample开始前查询数据库并获取一些值;
JDBC
参数配置:
Variable Name of Pool declared in JDBC Connection Configuration:连接池名称,需与JDBC链接配置中的Variable Name相同(此预处理器需要一个JDBC Connection Configuration,此配置器在配置元件中);
Query Type:数据库查询类型,根据需要自行选择;
Query:数据库语句输入框,根据需要输入,注意结尾不要加”;”;
Parameter values:参数名称,如果Query的语句中有”?”则此处填值,可以使用调用参数方式;
Parameter types:参数类型,与Parameter values对应,设置参数类型,与sql字段类型相同;
Variable names:设定此项可以获取固定列的所有值;
Result variable name:随意设定一个名称,则此名称会被作为一个参数并对应Query出来的内容;可以使用参数调用的方法来获取此设置的名称对应的值;
Query timeout(s):超时时间;
Handle ResultSet:有四个选项,结果保存的方式;

5、RegEx User Parameters

正则表达式,使用正则表达式为从另一个HTTP请求中提取的HTTP参数指定动态值
RegEx User
参数配置:
name:此前置处理器名称;
Regular Expression Reference Name:调用的正则表达式提取器中的引用名称;
Parameter names regexp group number:用于提取参数名称的正则表达式的组编号;
Parameter values regex group number:用于提取参数值的正则表达式的组编号;

6、Sample Timeout

超时器,用于设定sample的超时时间,如果完成时间过长,此预处理器会调度计时器任务以中断样本;
Sample Timeout
参数配置:
name:超时器名称;
Sample timeout:超时时间;

7、JSR223 PreProcessor

JSR223预处理器,用于调用脚本;
JSR223 PreProcessor
参数配置:
Name:名称,随意设定;
Language:使用的JSR223语言,可根据需要选择;
Parameters:传递给脚本的参数;
Script file:脚本文件;
Script compilation caching:存储编译的脚本,默认勾选;
Script:要运行的脚本;
脚本中可用参数说明:
vars:操作Jmeter变量
    a) vars.get(“name”):从jmeter中获得变量值
    b) vars.put(“key”,”value”):保存数据到jmeter变量中,如果变量不存在会自动创建
props: 操作Jmeter属性
    a) props.get(“START.HMS”);  注:START.HMS为属性名
    b) props.put(“PROP1”,”1234”); 保存数据到Jmeter属性中,如果属性不存在会自动创建
log: 记录日志
比如log.info(“日志信息”); 具体查看: https://www.slf4j.org/api/org/slf4j/Logger.html
ctx: 操作上下文,具体查看:
http://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterContext.html
prev: 操作前一个请求。注意必须有前一个请求才可用,否则会报错,具体查看:
http://jmeter.apache.org/api/org/apache/jmeter/samplers/SampleResult.html
sampler: 操作当前请求。具体查看:
http://jmeter.apache.org/api/org/apache/jmeter/samplers/Sampler.html

8、BeanShell PreProcessor

BeanShell预处理器,语法使用与BeanShell Sampler是一样的。但可使用的内置变量稍有不同;
BeanShell PreProcessor
参数配置:
Reset bsh interpreter beford each call:是否重新构造interpreter,即是否重新初始化
Paraneters:BeanShell 脚本中的变量初始化时可以在这里指定值,这里接受变量与字符串数组,如果是字符串数组两个元素之间用空格隔开
ScriptFile——File Name:指定运行的BeanShell脚本
Script:编写BeanShell脚本,通过BeanShell可以访问ctx、vars、props、prev、sample、log。其中通过ctx可以访问Jmeter运行时状态,比如线程数和线程状态;通过vars访问定义的变量;通过props访问运行时设置;通过prev访问前一个取样器结果;通过sample访问当前取样器;通过log写日志

猜你喜欢

转载自blog.csdn.net/df0128/article/details/80953755