JMeter笔记8
1 测试对象接之前的说明,我们的测试对象为禅道开源版本;按照之前的文章搭建部署好本地禅道,开启服务即可①先到官网下载Windows 一键安装包,安装完后启动服务即可;
②直接使用官网的《禅道API文档V1》,地址为:https://www.zentao.net/book/apidoc-v1/664.html
在这里插入图片描述涉及的接口数据: 在这里插入图片描述 在这里插入图片描述2 Jmeter关联2.1 定义简单理解为某个接口的数据,需要依赖另一个接口的返回值这里我们举例说明,比如接口“获取我的个人信息”接口,需要依赖token;那么就需要先进行token获取,再加入请求头中;以上操作要满足,需要用到JMeter的【后置处理器】来进行操作。2.2 后置处理器即为JMeter的关联元件;可帮助我们从服务器接口返回值中查找我们想要的数据;以下分别通过【JSON提取器】和【正则表达式提取器】来获取token值,用于后续接口的关联数据。2.3 JSON提取器2.3.1 新建线程组在【测试计划】下新建一个线程组,名为【禅道接口】,并从【配置元件】中添加【HTTP信息头管理器】在这里插入图片描述【HTTP信息头管理器】中是我们需要请求的头信息,这里按照禅道接口文档,只指定了请求数据的格式为:application/json在这里插入图片描述2.3.2 新建取样器获取token接口在线程组【禅道接口】下添加【取样器】-【HTTP请求】,名为1-获取token;在这里插入图片描述按照接口文档,填写请求数据,注意以后的ip、port都在测试计划中进行声明为用户全局变量;在这里插入图片描述2.3.3 添加【JSON提取器】在http请求【1-获取token】中添加【后置处理器】-【JSON提取器】,并设置提取的参数,这里我们需要欧聪获取token的接口中提取token的值;提取规则如下:在这里插入图片描述在这里插入图片描述2.3.4 引用参数新建第二个接口“2-用户-1获取我的个人信息”,填写接口的请求信息:
在这里插入图片描述在该接口下添加一个【HTTP信息头管理器】,并引用token参数:在这里插入图片描述2.3.5 添加查看结果树测试计划-【监听器】-【查看结果树】;运行JMeter,数据请求成功,如下:在这里插入图片描述2.3.6 如何判断应用是否成功?我们可以禁用应用token,看是否接口“2-用户-1获取我的个人信息”能请求成功;禁用提取的token后,再次运行,提示没有进行认证,那就说明关联是OK了。
在这里插入图片描述2.4 正则表达式提取2.4.1 正则表达式提取器禁用之前的【JSON提取器】,添加【正则表达式提取器】,添加规则如下:
在这里插入图片描述按照获取token的返回值,提取测试如下:
在这里插入图片描述其他运行方式和参数引用和【JOSN提取器】一样。2.4.2 界面参数说明在这里插入图片描述2.4.2.1 apply to参数
说明
Main sample and sub-samples
作用于父节点取样器及对应子节点取样器
Main sample only
仅作用于父节点取样器
Sub-samples only
仅作用于子节点取样器
JMeter Variable
作用于jmeter变量(输入框内可输入jmeter的变量名称)
2.4.2.2 Field to check参数
说明
Body
接口响应主体内容,默认选择此项
Response Headers
响应头的所有内容
Request Headers
请求头的所有内容
url
是对sample的url进行匹配
Response Code
http响应代码
Response Message
http响应代码对应的响应信息
2.4.2.3 name of created Variable自定义变量名,其他地方引用时可填写;例如${变量名}2.4.2.4 Regular Expression正则表达式;语法为:左边界(.*?)右边界,左右边界就是为了能准确定位到想匹配的内容规则:在这里插入图片描述代码语言:python复制.*:贪婪匹配原则:整个表达式匹配成功的前提下,尽可能多的匹配,即匹配到不能匹配为止
.*?:非贪婪匹配:在匹配成功的情况下尽可能少的匹配2.4.2.5 Template模板是对应正则表达式提取器类型,样式为:n 代码语言:python复制若为:$0$,则为整个表达式匹配到的内容,就是包括小括号内跟小括号外的内容
若为:$1$,则对应正则表达式中的第一个(.*?)所匹配的内容
若为:$2$,则对应正则表达式中的第二个(.*?)所匹配的内容
若为:$1$$2$,则把2个(.*?)所匹配的内容拼接起来2.4.2.5 Match No.正则表达式匹配数据的最终结果可以看做一个数组,匹配数字即可看做是数组的第几个元素;当为 0 时,随机返回匹配的数据;为 1 时,表示返回匹配结果数组的第一个元素;当为负数(-1,-2,-100都可以)时,表示返回全部元素,并且同时会返回一个元素总数的变量,引用时,通过${变量名_1}的方式来取第1个匹配的内容,${变量名_2}来取第2个匹配的内容2.4.2.6 Default Value匹配失败时的默认值。通常用于后续的逻辑判断,建议使用一些特殊含义的,比如0,NULL,ERROR等。3 本文涉及的脚本代码语言:python复制
"page": 1,
"limit": 1
}
true
