jmeter后置处理器详解;

一、xpath 提取器;

xpath使用路径表达式在XML文档中选取节点。节点是通过沿着路径来选取的,通过路径可以找到我们想要的节点或者节点范围;

如:'/div',从根节点上选取div节点;

  '//div',从匹配选择的当前节点选择含有div节点的标签;

  './div',选取当前节点下的div标签;

  '../',回到上一级节点;选取当前节点的父节点;

  “..div[@id='11']”,获取div标签中,含有id属性且值为11的标签;

如:提取江夏区官网的新闻;html中,遇到“<>”,表示标签,xpath绝对路径(/)时都得加入该标签名;相对路径(//)可以跳过部分标签名;下图是提取是官方示例;

如下图,提取标题的写法://div[@id="jxzxc1"]/ul/li/span/a/text() 或 //div[@id="jxzxc1"]/ul/li//a/@title

可通过察看结果树;XPath Tester测试提取的语法是否正确;

 

 HTML响应应选中'Use Tidy',将HTML响应转换为有效的XHTML(与XML兼容的HTML);

 对于XHTML或XML响应,应取消选中'Use Tidy';

 对于HTML,CSS Selector Extractor是正确的执行解决方案。不要将XPath用于HTML提取。

 

二、CSS选择器提取器;(CSS/JQuery Extractor)

 允许用户使用CSS选择器语法从服务器HTML响应中提取值;

谷歌浏览器—F12(DevTools)—箭头(选择网页内容)—(DevTools中)右键—Copy—Copy selector,可复制CSS路径;#jxzxc1 > ul > li:nth-child(1) > span:nth-child(1) > a

取指定标题,在CSS提取器中,属性填写‘title’;

 

 

取随机标题,可以传入变量,借助于函数助手的__Random,生成1-8之间的随机数;

 

 

 

 三、jmeter JsonPath表达式提取响应;

链接https://easy-mock.com/mock/5b88b27476b79510db917603/example/query1;

这是一个多层嵌套的jsonlist,需要提取所有cabinInfos列表下,patFlag=Y时,cabin,standardPrice和finallyPrice。如果按照传统的正则表达式提取,那么,很难满足这个需求了,因此需要用到jsonpath表达式;

$..[?(@.patFlag=="Y")].["cabin","standardPrice","finallyPrice"]

 

 

 

posted on 2020-03-13 22:24  星空6  阅读(2288)  评论(0编辑  收藏  举报

导航