性能测试工具 四、Jmeter 基础-前置处理器、后置处理器

Maple · 2020年01月10日 · 1702 次阅读

前置处理器

前置处理器中,我觉得 BeanShell 预处理程序,用户参数,JDBC 预处理程序用的比较多
JDBC 预处理程序:跟 JDBC request 类似,不做过多介绍
BeanShell 预处理程序:准备在进阶篇中介绍,基础篇不做过多介绍,会用到 java
用户参数:我在工作中用的很少,还是喜欢用户自定义变量

后置处理器

主要元器件:正则表达式提取器,JSON 提取器,边界提取器,XPath 提取器,BeanShell 后置处理程序

正则表达式提取器

APPly to
Main sample and sub-samples:作用于主节点的取样器及对应子节点的取样器
Main sample only:仅作用于主节点的取样器
Sub-samples only:仅作用于子节点的取样器
JMeter Variable:作用于 jmeter 变量 (输入框内可输入 jmeter 的变量名称),从指定变量值中提取需要的值。
要检查的响应字段
主体:响应报文的主体,最常用
Body(unescaped):主体,是替换了所有的 html 转义符的响应主体内容,注意 html 转义符处理时不考虑上下文,因此可能有不正确的转换,不太建议使用
Body as a Document:从不同类型的文件中提取文本,注意这个选项比较影响性能
信息头:响应信息头(如果你使用的是中文版的 Jmeter,会看到这一项是信息头,这是中文翻译问题,应以英文为准)
Request Headers:请求信息头
URL:请求 url
响应代码:比如 200、404 等
响应信息:响应信息
参数设置说明
引用名称:参数名称,可以被调用
正则表达式:使用正则表达式解析响应结果,正则的基本使用方法可参考正则表达式的官方说明
模板:如果正则表达式有多个提取结果,则结果是数组形式,模板 $1$,$2$ 等等,表示把解析到的第几个值赋给变量;从 1 开始匹配,以此类推。若只有一个结果,则只能是 $1$;
匹配数字(0 代表随机):正则表达式匹配数据的结果可以看做一个数组,表示如何取值:0 代表随机取值,正数 n 则表示取第 n 个值(比如 1 代表取第一个值),负数则表示提取所有符合条件的值。
缺省值:默认值,取不到的情况,参数名称赋的值
举例
view=1&token=721652512141&name=ggui
要取 token 值
正则表达式:token=(\d+)&name=ggui

特别说明
".*?"在正则中非常好用,能解决大部分匹配
上面表达式可改写成token=(.*?)&name=ggui

JSON 提取器

用于提取请求返回结果中的某个值或者某一组值,标准写法为 $.key,其中 key 为返回结果中的一个键,如果是多层则继续用.key 即可,如果遇到 key 的 value 值为一个 List,则使用.key[n],其中 n 为 list 中元素的索引
参数设置说明
Names of created variables:参数名称,可以被调用
JSON Path expressions:表达式
Match No.(0 for Random):匹配编号,-1 匹配所属有,0 随机,其他则从 1 开始
Default Values:默认值,取不到的情况,参数名称赋的值
举例

{
    "data":[
        {
            "name":"张三",
            "age":18
        },
        {
            "name":"李四",
            "age":28
        }
    ]
}

要取第一个人的姓名
JSON Path expressions:$.data[0].name
要取年龄>18 的姓名
JSON Path expressions:$.data[?(@.age>18)].name

边界提取器

参数设置说明
引用名称:参数名称,可以被调用
左边界:要提取字符的左边
有边界:要提取字符的右边
匹配数字(0 代表随机):匹配编号,-1 匹配所属有,0 随机,其他则从 1 开始
缺省值:默认值,取不到的情况,参数名称赋的值
举例
view=1&token=721652512141&name=ggui
左边界:token=
右边界:&name
可得到结果 721652512141
PS:注意,左右边界尽可能唯一,能更精确匹配到想提取的字符

XPath 提取器

XML Parsing Options(要解析的 XML 参数)
Use Tidy(tolerant parser):当需要处理的页面是 HTML 格式时,必须选中该选项;如果是 XML 或 XHTML 格式(例如 RSS 返回),则取消选中
Quiet:表示只显示需要的 HTML 页面
报告异常:表示显示响应报错
显示警告:表示显示警告
Use Namespaces:如果启用该选项,后续的 XML 解析器将使用命名空间来分辨
Validate XML:根据页面元素模式进行检查解析
Ignore Whitespace:忽略空白内容
Fetch external DTDs:如果选中该项,外部将使用 DTD 规则来获取页面内容
Return entire XPath fragment of text content:返回文本内容的整个 XPath 片段
参数设置说明
引用名称:参数名称,可以被调用
XPath Query:用于提取值的 XPath 表达式
匹配数字:匹配编号,-1 匹配所属有,0 随机,其他则从 1 开始
缺省值:默认值,取不到的情况,参数名称赋的值
举例

要获取【百度一下】按钮上的文字
XPath Query://input[@id="su"]/@value

BeanShell 后置处理程序

介于本阶段是基础篇,Beanshell 相关的放在进阶篇介绍,这里不做过多讲解

总结

本章节讲述前置和后置处理器,前置处理器的元器件和 Beanshell 后置处理器会在进阶篇介绍,后置处理器介绍了最常用的正则表达式提取器,JSON 提取器,边界提取器,XPath 提取器。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册