在Jmeter中,除了正则表达式可以用作关联,还有一种方式也可以做关联,那就是 XPath Extractor。它是利用xpath提取出关键信息,传递变量。
具体用法
添加一个后置处理器-XPath Extractor
image image
实际操作
以腾讯新闻网为例,我们做一次演练。对腾讯新闻网我们发起一次请求,观察结果。
image现在我想利用xpath把这些url都取出来,我们来写一个xpath表达式匹配一下。发现url都被匹配出来了。
image.//a[@class='linkto']/@href 具体是什么意思呢?意思就是通过a>class>href这三层标签进行逐级检索,找到class=linkto标签下的所有href,进行匹配
这里如果我想匹配到href标签下的文字标题怎么办?改一下表达式吧--.//a[@class='linkto'],我们发现取出来都是标题,后面可以再进行拼接
image
现在表达式没有问题了,我们将添加的xpath提取器挂在http请求下面。添加一个debug查看结果,可以看到debug中已经获取到了这些url
image image我们可以添加两个xpath提取器,分别提取url和title进行拼装,运行查看结果
image image** xpath基本语法**
//[@class,'A ']/@href 从根目录下定位所有class=A的href*
****//*[@class,'A '] **从根目录下定位所有class=A标签内的文本******
******//*[contains(@class,'A ')] ******从根目录下******@class值中包含A的节点******
******substring-before(.//*[@class='A']/text(),'0') 返回根目录下[@class='A']/text()中第一个'0'前面的部分,如果不存在'0',则返回空值******
********substring-after(.//*[@class='A']/text(),'0') 返回根目录下[@class='A']/text()中第一个'0'后面的部分,如果不存在'0',则返回空值********
image
网友评论