一、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"]