不得不說jmeter是一個(gè)很強(qiáng)大的工具,上手容易/插件多/擴(kuò)展性強(qiáng),現(xiàn)在進(jìn)入正題,接口中參數(shù)需要加密需要獲得token,之前是直接叫開發(fā)把加密校驗(yàn)關(guān)閉,直接在redis里面導(dǎo)入一批token直接使用,本次是先調(diào)用登陸接口獲取到token再將獲取到的token進(jìn)行加密,需要的步驟:
? ? 1. 第一個(gè)線程,跑通登陸接口
? ? ? ? 1).選擇插件BeanShell PreProcessor,編寫腳本獲取登陸接口中需要加密的sign(因?yàn)榈顷懡涌谥衪oken為非必傳,所以此處傳入null進(jìn)行加密):
? ? ? ? 2).添加查看結(jié)果數(shù),查看返回結(jié)果,添加正則表達(dá)式提取器獲取到返回結(jié)果中需要獲取的userToken:
? ? ? ? 3).將獲取到的token設(shè)置為全局變量,方便后續(xù)接口使用,添加后置處理器:BeanShell PostProcessor,特別注意添加第一行代碼(雖然不曉得為嘛要添加,反正經(jīng)過調(diào)試不添加第一段在設(shè)置全局變量時(shí)就獲取不到token變量的值):
2. 添加第二個(gè)線程,業(yè)務(wù)流程接口:
? ? 1). 添加前置處理器BeanShell PreProcessor,編寫接口需要加密的參數(shù),業(yè)務(wù)流程的接口都需要傳入token,token為登陸接口獲取的token,可直接用:${__P(token,)}獲取,請求頭參數(shù):
? ? 3. 設(shè)置完以上信息接口基本就跑通了,在接口請求中添加斷言校驗(yàn)接口,此處只添加了簡單的響應(yīng)斷言,只要響應(yīng)碼為200就當(dāng)作接口請求通過:
在這個(gè)過程中遇到的難點(diǎn)就是在設(shè)置全局變量時(shí)一直不能獲取到,在網(wǎng)上查了好多資料照著寫也不能實(shí)現(xiàn),后面發(fā)現(xiàn)因?yàn)樵贐eanShell PreProcessor插件里面有一行代碼錯(cuò)誤導(dǎo)致請求頭里面無法獲取到。
以此記錄設(shè)置全局變量方法