在使用jmeter過程中冈敛,例如登錄接口中signature字段是多個字符串拼接后md5加密所得,用jmeter自帶的函數(shù)操作比較麻煩,我這里選擇使用jmeter去加載本人更加熟悉的Python腳本栋艳,來解決此問題。
1.首先在官網(wǎng)下載支持Python語言的jmeter語言擴展包
下載地址:Jython Standalone
步驟一:選擇最新版本即可
步驟二:選擇右上角download句各,選擇jar包
2.把下載的jython-standalone-2.7.2.jar 放到 jmeter的lib/ext文件夾吸占。重啟jmeter,此時就可以看到支持Python語言(如果不重新啟動默認不會生效)
放在jmeter的lib/ext文件夾下
3.此時新建JSR223 Sampler凿宾,語言選擇jython
JSR223 Sampler
語言選擇jython
4.通過Python實現(xiàn)登錄signature的md5加密矾屯。
拷貝自己已經(jīng)寫好的Python代碼到Script區(qū)域:修改部分:1.獲得jmeter已有的參數(shù)用vars.get("參數(shù)名"),2.將處理好的值傳給jmeter用vars.put("引用參數(shù)名",Python代碼塊中參數(shù))
import hashlib
import time
time_stamp = str(int(time.time())) # 獲取時間戳
user = vars.get("user") # 獲取jmeter參數(shù)user
pwd = vars.get("pwd") # 獲取jmeter參數(shù)pwd
key = vars.get("sign_key") # 獲取jmeter參數(shù)sign_key
sign_body = '{"YHB": {"SJHM": "%s", "MM": "%s"}}' % (user, pwd) # 將字符串參數(shù)組合起來
sign_str = 'Body=%s' % sign_body + '&Timestamp=%s' % time_stamp + key # 將字符串參數(shù)組合起來
m = hashlib.md5()
m.update(sign_str.encode('UTF-8'))
signature = m.hexdigest() # 將字符串sign_strMD5加密
vars.put("sign_body_new",sign_body) # 將參數(shù)sign_body傳給jmeter初厚,并將變量命名為sign_body_new
vars.put("signature_new",signature)
vars.put("time_stamp_new",time_stamp)
log.info("==========="+time_stamp+"============") # 日志打印
log.info("==========="+signature+"============")
試運行的時候件蚕,打開選項-日志,查看后臺運行日志
打開日志
運行結果
5.運行結果顯示产禾,已成功加密骤坐,接下來就直接在jmeter中使用上述變量即可。
變量引用
最后結果:加密成功
最終結果