1. 程式人生 > >使用jmeter模擬加密介面請求

使用jmeter模擬加密介面請求

突然寫好的指令碼執行不通過了,自己抓包一看,請求報文都做了加密處理,跟開發確認後的確是加密了,問清楚了加密方式跟處理方法,接下來就開始用jmeter模擬,由於jmeter本身並沒有加密功能,但是它是java開源專案可以擴充套件,我讓開發將他的加密類從eclipse中匯出來打成jar包,放在jmeter安裝資料夾lib資料夾中,然後就開始寫指令碼了,這裡要用到beanshell Sampler,在beanshell Sampler中寫java程式碼使用剛才放入jmeter中擴充套件的jar包中的加密方法,將加密後的內容儲存在變數中,然後在http請求指令碼中讀取引用來使用


首先,在測試計劃中引用jar檔案


由於我的請求中需要一個單據時間是終端生成給過去的,於是這裡我得使用前置處理器 BeanShell PreProcessor去建立日期引數,在請求報文中使用




引用開始匯入的jar包中的加密方法對報文進行加密處理,並引用前面生成好的時間變數 orderDate,將加密後的字串儲存在變數 md5中




接下來就是模擬請求報文了



tenderId是我請求這個介面前,必須先請求“單品建立”介面新建一個單品成功後,後臺返回過來的資料,這兩個介面資料是有關聯的,直接用斷言將請求“單品建立”介面返回的資料剝離出來在這個介面中關聯起來(斷言是基礎,這裡不多解釋),開始時間startDate,我直接使用了jmeter的時間函式取了當前時間作為引數,endDate時間是引用前面BeanShell PreProcessor中準備好的引數關聯,最後&h=${md5} 拼接關聯成功,請求成功,打完收工。


總結:首先要了解介面之間相關聯的業務,可以自己抓包理解,也可以向開發詢問(這個更重要),總之搞清這中間的處理過程是最重要的,寫好的介面指令碼跑起來有問題了,不要慌忙,抓個包對比了解下,一切盡在掌控中,多虧之前有過幾個月的開發經驗,不然這些東西也研究不透徹。