做网站发房源综合语录,工业设计服务平台,网站做外链的好处,襄阳品牌网站建设最近在利用JMeter做接口自动化测试#xff0c;正则表达式提取器和JSON提取器用的还挺多#xff0c;想着分享下#xff0c;希望对大家的接口自动化测试项目有所启发。
在 JMeter 中#xff0c;正则表达式和 JSON 提取器都是用于从响应数据中提取所需内容#xff0c;但它们…最近在利用JMeter做接口自动化测试正则表达式提取器和JSON提取器用的还挺多想着分享下希望对大家的接口自动化测试项目有所启发。
在 JMeter 中正则表达式和 JSON 提取器都是用于从响应数据中提取所需内容但它们的使用场景略有不同。正则表达式提取器适用于处理非结构化或不规则格式的响应数据而 JSON 提取器适用于处理结构化的 JSON 响应数据。
正则表达式提取器正则表达式提取器是 JMeter 的内置功能用于从响应数据中提取特定模式的文本。它适用于那些响应数据中的内容没有明确定义结构的情况。
例如当响应数据是自由格式的文本、HTML、XML 或其他非结构化数据时可以使用正则表达式提取器来捕获信息需要编写适当的正则表达式来匹配并捕获所需的内容。
JSON 提取器JSON 提取器是 JMeter 的插件专门用于从 JSON 格式的响应数据中提取数据。它针对 JSON 数据结构进行了优化并提供了更便捷的方式来解析和提取 JSON 数据。
可以使用 JSON 提取器根据 JSON 路径表达式来定位和提取 JSON 对象、数组或属性中的值。JSON 提取器更适用于处理结构化的响应数据如 API 响应返回的 JSON 格式数据。
一、使用场景
A接口返回的JSON数据如下B接口需要用到A接口的返回参数id_card_num所以需要将A接口返回的参数提取出来存在一个变量例如card_num_test中在B接口中直接以${card_num_test}的形式调用即可。 二、 正则表达式提取器
1、新建http请求 2、添加正则表达式提取器
选中http请求鼠标右键–添加–后置处理器–正则表达式提取器 3、填写正则表达式的参数 名称自定义
Apply to :
Main sample and sub-samples匹配范围包括当前父取样器并覆盖子取样器Main sample only默认匹配范围是当前父取样器大多数情况下选择默认即可Sub-samples only 仅匹配子取样器JMeter Variable Name to use支持对 JMeter变量值进行匹配输入框内可输入jmeter的变量名称
要检查的响应字段
主体响应数据的主体部分Bodyunescaped针对替换了的响应码部分Body as a Document返回内容作为一个文档进行匹配信息头Request Headers请求头部分URLURL链接响应代码响应码例如HTTP返回码200表示成功响应信息响应信息例如处理成功返回“成功”字样或者“OK”字样
引用名称下一个请求要引用的参数名称如填写card_num_test则可用$card_num_test}引用它。
正则表达式编写一个正则表达式来匹配要提取的内容例如id_card_num:“(.?)” ()括起来的部分就是要提取的。 .匹配任何字符串。 一次或多次。 ?不要太贪婪在找到第一个匹配项后停止。
模板指定如何处理匹配结果例如− 1 -1−1表示取所有值0 00表示随机取值1 11表示取第一个值2 22表示取第二个值
匹配数字1代表全部取值0表示随机取值
缺省值如果正则表达式取不到值则使用此缺省值
4、添加一个Debug Sampler
可以用来调试验证正则表达式是否正确。 5、执行脚本查看结果
与接口返回的值一致证明正则表达式编写正确B接口需要用到这个值的时候直接以${card_num_test}的形式调用。 三、JSON提取器
1、新建http请求 2、添加正则表达式提取器
选中http请求鼠标右键–添加–后置处理器–JSON Extractor 3、填写JSON提取器的参数 名称自定义
Apply to 应用范围一般默认为Main sample only可根据实际使用需求选择
Main sample and sub-samples作用于主请求和子请求
Main sample only仅作用于主请求
Sub-samples only仅作用于子请求
JMeter Variable作用于JMeter变量(输入框内可输入JMeter的变量名称)用法可用于提取正则表达式提取器中的值
Names of Created variables作为引用的变量名称多个变量名通过分号;隔开自定义
JSON Path expessions格式为 . 层级名称本次示例为 .层级名称本次示例为.层级名称本次示例为.data.id_card_num
Match No.取第几个数值0代表随机-1代表取全部数组数据1代表取一个变量数值与设置的变量名称有关本次示例填-1说明如果填写1后面引用变量的时候直接用c a r d n u m t e s t 即可如果填写 − 1 返回的是一个数组后面引用变量的时候要用 {card_num_test}即可如果填写-1返回的是一个数组后面引用变量的时候要用cardnumtest即可如果填写−1返回的是一个数组后面引用变量的时候要用{card_num_test_1}${card_num_test_2}的形式
Compute concatenation var(suffix_ALL)匹配到的所有数值并保存默认为空即可
Default Value取值失败时展示的内容默认为空即可
4、添加一个Debug Sampler
可以用来调试验证正则表达式是否正确。 5、执行脚本查看结果
与接口返回的值一致证明正则表达式编写正确B接口需要用到这个值的时候直接以${card_num_test_1}的形式调用。 今天的分享就到这里~
行动吧在路上总比一直观望的要好未来的你肯定会感 谢现在拼搏的自己如果想学习提升找不到资料没人答疑解惑时请及时加入扣群 320231853里面有各种软件测试开发资料和技术可以一起交流学习哦。
最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走
这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你