Day17.后置处理器_JSON_正则表达式_边界提取器_完成删
2020-06-21 本文已影响0人
伍个一
接Day16的脚本继续进行
接口信息说明:
用户管理模块
登录接口
api:post
method:post
request data:
{
"loginName":"IDO",
"passwd":"123"//base编码
}
退出接口:
api:get
method:get
添加用户接口:
api:post
method:post
headers:{
"Content-Type":"application/json",
"token":""
}
request data:
{
"login_name":"IDO",
"phone":"13100000000",
"real_name":"老徐",
"token":""
}
删除用户接口
api:put
method:put
headers:{
"Content-Type":"application/json",
"token":""
}
request data:
{
"login_name":"IDO",
"phone":"13100000000",
"real_name":"老徐",
"token":""
}
博文管理模块:
添加博文接口:
api:post
method:post
headers:{
"Content-Type":"application/json",
"token":""
}
request data:
{
"blog_name":"21天打卡",
"bolg_title":"Jmeter打卡之Day16",
"blog_details":"21天打卡",
"token":""
}
删除博文接口:
api:delete
method:delete
headers:{
"Content-Type":"application/json",
"token":""
}
request data:
{
"blog_name":"21天打卡",
"bolg_title":"Jmeter打卡之Day16",
"blog_details":"21天打卡",
"token":""
}
1. 后置处理器说明
- 字面意思,后处理器在采样器后应用。(注意,它们应用于同一作用域中的所有采样器,因此为了确保后处理器仅应用于特定采样器,将其添加为采样器的子级)。
- 后处理器在断言之前运行,因此它们无法访问任何断言结果,并且示例状态也不会反映任何断言的结果。
1.1 JSON提取器
JSON 后处理器使您能够使用 JSON-PATH 语法从 JSON 响应中提取数据。此后处理器与正则表达式提取器非常相似。它必须作为 HTTP 采样器或任何其他具有响应的采样器的子级放置
不清楚JSON格式的请转:JSON杂谈
//JSON路径
json.loginName
JSON提取器注释
JSON提取调试示例
1.2 正则表达式提取器
使用 Perl 类型的正则表达式(不过多赘述正则表达式的类型)从服务器响应中提取值。作为后处理器,此元素将在其作用域中的 请求之后执行,应用正则表达式、提取请求的值、生成模板字符串并将结果存储到给定的变量名称中。
//表达式
"loginName": ".*"
//这里面会存在几个坑
1.表达式过滤出多个内容
2.想要多个表达式
3.不会写正则
正则表达式提取器注释
正则表达式调试示例
1.3 边界提取器
- 不知道这个组件和正则表达式有什么区别,有点鸡肋,个人不怎么用。
-
允许用户使用左和右边界从服务器响应中提取值。作为后处理器,此元素将在其作用域中的每个取样器请求之后执行,测试边界、提取请求的值、生成模板字符串并将结果存储到给定的变量名称中。
边界提取器注释
边界值提取器示例
1.4 其他处理器
//CSS提取器
https://jmeter.apache.org/usermanual/component_reference.html#CSS_Selector_Extractor
//XPath提取器
https://jmeter.apache.org/usermanual/component_reference.html#XPath2_Extractor
//结果状态操作处理程序
https://jmeter.apache.org/usermanual/component_reference.html#Result_Status_Action_Handler
2.后置处理器使用场景
2.1 关联接口
例如要测试一个场景:删除数据,那么要先完成(又叫数据依赖):
//先添加再删除
登录接口-->添加接口-->删除接口-->退出接口
针对于这个场景进行分析:
- 1.删除场景的开始:登录完之后要抛出登录信息token,作为全局变量,供后面使用
- 2.添加接口拿到token之后,进行数据添加,添加接口完成后要记录添加的信息,然后把返回的数据ID,或者是其他字段取出来供删除使用
- 3.删除接口拿到添加接口的ID,然后根据ID进行删除操作
- 4.删除场景的闭环:退出
2.2 清洗脏数据
例如要测试一个场景:添加数据,那么完成后要把添加的数据进行删除,如果不删除的话,数据在库里越堆越多,可能对下次测试造成影响(又叫数据清洗):
//先添加再删除
登录接口-->添加接口-->后置处理器(JDBC操作删除SQL,删除数据)-->退出接口
针对于这个场景进行分析:
- 1.删除场景的开始:登录完之后要抛出登录信息token,作为全局变量,供后面使用
- 2.添加接口拿到token之后,进行数据添加,添加接口完成后要记录添加的信息,然后把返回的数据ID,或者是其他字段取出来供删除使用
- 3.通过后置处理器的删除SQL,然后进行删除
- 4.删除场景的闭环:退出
3.作业场景
新增一个删除博文的接口,针对一个删除博文的场景进行测试。
要求:完成三次,分别使用以下三种后置处理器
- 1.JSON提取器
- 2.正则表达式提取器
- 3.边界提取器
4.示例脚本
4.1 图片示例
结构示例4.2 脚本示例
链接:https://pan.baidu.com/s/1BtKypSWZW03zj2S_lZA5Ew
提取码:175r