我使用jMeter 3.2編寫一些測試。我有一個帶有測試帳戶信息的CSV文件。每行包含用戶的登錄信息。每個用戶需要請求在以後的請求中使用的令牌。對CSV中的每個元素執行請求,而不是每個用戶
我的測試計劃:
的獲得令牌請求檢索令牌。登錄請求登錄到用戶並返回另一個令牌。選擇客戶卡選擇一個客戶並返回最終的令牌。對於postprocesser的代碼是(我不是在這個經歷,所以任何建議表示讚賞):
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
// Check if our map already exists
if (props.get("map") == null) {
JSONObject obj = new JSONObject();
obj.put("${department}", new String(data));
log.info("Adding department to map. Department: ${department}. Token: " + new String(data));
props.put("map", obj.toJSONString());
} else {
// Retrieve the current map
map = props.get("map");
JSONParser parser = new JSONParser();
JSONObject jobj = (JSONObject) parser.parse(map);
// Add the new department (with it's token) to the map
jobj.put("${department}", new String(data));
log.info("Updating map for department. Department: ${department}. Token: " + new String(data));
props.put("map", jobj.toJSONString());
}
嘗試1: 我設置了一個曾經只控制器登錄用戶和檢索令牌。
現在讓我說我的CSV文件中有10行,但在我的測試中,我只想使用3個用戶並循環10次。會發生什麼是3個登錄請求被髮送(每個用戶一個)。這適用於第一次迭代。在2次迭代中,3個線程將使用沒有令牌的行4-6,從而失敗。
嘗試2: 我正在使用if控制器來檢查令牌是否已設置。我根本沒有這個工作。我向控制器中添加了一個beanshell預處理器,我試圖檢索該令牌。如果它爲空或空,我將令牌變量設置爲「」。在if控制器中,我檢查這個值。但是,是的。沒有運氣。
嘗試3 在Beanshell中檢查是否已經創建了令牌。如果沒有,請調用檢索它的測試片段。不幸的是,這似乎不可能。
可能值得注意的是,我將我的令牌存儲在屬性中,以便所有線程都可以訪問它。
如果您需要更多信息,請讓我知道。
你能展示你的測試計劃嗎? – user7294900
我已經添加了我的測試計劃 – Casper
什麼是數據?你如何獲得數據並期望它成爲令牌?你怎麼在BeanShell中調用測試片段? – user7294900