在前一篇文章使用jMeter構(gòu)造大量并發(fā)的隨機(jī)HTTP請(qǐng)求里我通過jMeter構(gòu)造了大量的HTTP GET并發(fā)請(qǐng)求,對(duì)服務(wù)器產(chǎn)生了大量讀操作。
現(xiàn)在我有另一個(gè)需求場(chǎng)景:假設(shè)我開發(fā)了一個(gè)創(chuàng)建Service Request的微服務(wù),需要使用HTTP post調(diào)用。為了防止Cross Site Request Forgery(跨站域請(qǐng)求偽造),這個(gè)微服務(wù)調(diào)用時(shí)需要傳一個(gè)XSRF token,這個(gè)XSRF token需要另一個(gè)HTTP get請(qǐng)求從服務(wù)器請(qǐng)求。
因此,這里存在兩個(gè)邏輯上相關(guān)的HTTP請(qǐng)求:
1. 先調(diào)用HTTP get從服務(wù)器讀取XSRF token
2. 將第一步獲得的XSRF token作為HTTP post 請(qǐng)求頭部的一個(gè)參數(shù)傳至服務(wù)器。
用jMeter怎么實(shí)現(xiàn)這個(gè)場(chǎng)景呢?
總的思路就是使用Transaction Controller,將http get請(qǐng)求和http post請(qǐng)求包在一起,如下圖所示。
在第一個(gè)http get請(qǐng)求里,使用HTTP頭部參數(shù)x-csrf-token去讀取token。
創(chuàng)建一個(gè)參數(shù)jerrycsrftoken,使用正則表達(dá)式將服務(wù)器通過HTTP響應(yīng)頭部返回的token解析出來并保存。
然后創(chuàng)建第二個(gè)HTTP post請(qǐng)求,在請(qǐng)求頭部使用第一個(gè)請(qǐng)求創(chuàng)建的參數(shù)jerrycsrftoken即可。
這是我HTTP post請(qǐng)求的body內(nèi)容,里面使用了jMeter自帶的隨機(jī)數(shù)發(fā)生器作為創(chuàng)建成功的Service Request的后綴。
最后使用jMeter成功創(chuàng)建的Service Request在系統(tǒng)顯示如圖:
要獲取更多Jerry的原創(chuàng)技術(shù)文章,請(qǐng)關(guān)注公眾號(hào)"汪子熙"
聯(lián)系客服