Jmeter(一)_打印時間戳與年月時分秒
Jmeter中提供了一種函數,可以打印時間戳,如下圖
年: yyyy 月:MM 日:dd
時: HH 分: mm 秒:ss
關於時間戳的格式,可以自由組合定義,這里我寫成這樣 yyyy-MM-dd HH:mm:ss
生成的函數是這樣的:${__time(yyyy-MM-dd HH:mm:ss,)}
現在將這個函數寫入下一個接口
執行,查看結果樹,可以看到結果中,將當前時間打印出來了哦~
此函數適用於一些需要填寫時間參數的接口,用於實時獲取當前時間。時間參數如果寫死的話,過段時間接口就會報錯啦~
下面說一下時間偏移如何打印。
說到時間偏移,就是說我不光想打印當前時間,我還想打印明天,后台,甚至是明年的時間,那么我們要怎么去處理?這里就需要用到 BeanShell Sampler
在Parameters中傳遞變量,執行並查看結果樹,發現成功打印了跨度為一年的時間戳
附:beanshell打印時間的代碼
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
try{
Date date =new Date(); //獲取當前時間
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String nowDate = sf.format(date);
Calendar cal = Calendar.getInstance();
cal.setTime(sf.parse(nowDate));
cal.add(Calendar.DAY_OF_YEAR,+0);
String orderDate = sf.format(cal.getTime());
cal.add(Calendar.DAY_OF_YEAR,+365);
String senderDate = sf.format(cal.getTime());
vars.put("orderDate",orderDate);
vars.put("senderDate",senderDate);
}
catch(Exception e){
}
Jmeter(二)_Xpath關聯
在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',則返回空值