在Jmeter中,除了正則表達式可以用作關聯,還有一種方式也可以做關聯,那就是 XPath Extractor。它是利用xpath提取出關鍵信息,傳遞變量。
具體用法
添加一個后置處理器-XPath Extractor
實際操作
以騰訊新聞網為例,我們做一次演練。對騰訊新聞網我們發起一次請求,觀察結果。
現在我想利用xpath把這些url都取出來,我們來寫一個xpath表達式匹配一下。發現url都被匹配出來了。
.//a[@class='linkto']/@href 具體是什么意思呢?意思就是通過a>class>href這三層標簽進行逐級檢索,找到class=linkto標簽下的所有href,進行匹配
這里如果我想匹配到href標簽下的文字標題怎么辦?改一下表達式吧--.//a[@class='linkto'],我們發現取出來都是標題,后面可以再進行拼接
現在表達式沒有問題了,我們將添加的xpath提取器掛在http請求下面。添加一個debug查看結果,可以看到debug中已經獲取到了這些url
我們可以添加兩個xpath提取器,分別提取url和title進行拼裝,運行查看結果
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',則返回空值
參考
https://blog.csdn.net/gongbing798930123/article/details/78955597
https://www.blazemeter.com/blog/using-xpath-extractor-jmeter-0
龍淵閣測試家園:317765580