不得不說jmeter是一個很強大的工具,上手容易/插件多/擴展性強,現(xiàn)在進入正題,接口中參數(shù)需要加密需要獲得token,之前是直接叫開發(fā)把加密校驗關(guān)閉,直接在redis里面導(dǎo)入一批token直接使用,本次是先調(diào)用登陸接口獲取到token再將獲取到的token進行加密,需要的步驟:
? ? 1. 第一個線程,跑通登陸接口
? ? ? ? 1).選擇插件BeanShell PreProcessor,編寫腳本獲取登陸接口中需要加密的sign(因為登陸接口中token為非必傳,所以此處傳入null進行加密):

? ? ? ? 2).添加查看結(jié)果數(shù),查看返回結(jié)果,添加正則表達(dá)式提取器獲取到返回結(jié)果中需要獲取的userToken:


? ? ? ? 3).將獲取到的token設(shè)置為全局變量,方便后續(xù)接口使用,添加后置處理器:BeanShell PostProcessor,特別注意添加第一行代碼(雖然不曉得為嘛要添加,反正經(jīng)過調(diào)試不添加第一段在設(shè)置全局變量時就獲取不到token變量的值):

2. 添加第二個線程,業(yè)務(wù)流程接口:
? ? 1). 添加前置處理器BeanShell PreProcessor,編寫接口需要加密的參數(shù),業(yè)務(wù)流程的接口都需要傳入token,token為登陸接口獲取的token,可直接用:${__P(token,)}獲取,請求頭參數(shù):


? ? 3. 設(shè)置完以上信息接口基本就跑通了,在接口請求中添加斷言校驗接口,此處只添加了簡單的響應(yīng)斷言,只要響應(yīng)碼為200就當(dāng)作接口請求通過:

在這個過程中遇到的難點就是在設(shè)置全局變量時一直不能獲取到,在網(wǎng)上查了好多資料照著寫也不能實現(xiàn),后面發(fā)現(xiàn)因為在BeanShell PreProcessor插件里面有一行代碼錯誤導(dǎo)致請求頭里面無法獲取到。
以此記錄設(shè)置全局變量方法