用beanshell實現(xiàn)功能:如果參數(shù)required param中存在 ${column1_60} 這個字符串,那么就將這個字符串替換成 從數(shù)據(jù)庫中查詢出來的某一個值

實現(xiàn)代碼如下:

運行結(jié)果如下:

可以看到${column1_60}這個字符串并沒有按照預(yù)期結(jié)果替換
再次查看 查看結(jié)果樹中的BeanShell請求body,發(fā)現(xiàn)替換的那一行代碼變成了String data = data.replace("66",id);,這樣就理解了為什么替換不成功了,這句意思就變成了在required param中找66,如果找到了就替換成id的值,當(dāng)然不是我們想要的預(yù)期,查看了debug sampler剛好${column1_60}就是66


難道beanshell可以不通過vars.get 直接獲取到j(luò)meter的變量,直接用${column1_60} 就可以取到嗎?嘗試著打印了${column1_60} ,報錯

這一步和剛才的差距只是少了引號,加上引號再試就好了

這就說明beanshell有第二種方法可以取到j(luò)merer里的變量,這就理解了剛才替換的那句為什么執(zhí)行后變成了String data = data.replace("66",id);
vars.get("column1_60")?? 等價于? "${column1_60}"

解決開篇問題的辦法就是可以將excel數(shù)據(jù)中換個變量名,避免和jmeter中的變量沖突就可以了,將${column1_60}換成${test},這下就運行成功了
