問題出現(xiàn) 只是瀏覽兩個(gè)AJAX頁面。腳本經(jīng)過關(guān)聯(lián)等編輯后,在vugen里回放沒有問題,添加到controller里運(yùn)行2個(gè)用戶會(huì)出現(xiàn)一個(gè)用戶失敗的現(xiàn)象,但不是每次都出現(xiàn),每運(yùn)行三次,大概有二次會(huì)出現(xiàn)這樣的現(xiàn)象。沒有思考時(shí)間,沒有pacing設(shè)置。如果運(yùn)行500用戶就會(huì)有300以上的用戶會(huì)出錯(cuò)。 排錯(cuò)
打開LOG,選擇:總是發(fā)送消息。再次回放,查看出錯(cuò)vuser的LOG,看到在腳本101行出錯(cuò),具體代碼不再給出。只是請(qǐng)求了一個(gè)servlet。因?yàn)樵趘ugen中回放沒有出錯(cuò),排除了腳本的問題。 再次選擇LOG,選擇:Data returned by server,再次在controller中運(yùn)行一次。查看出錯(cuò)vuser的LOG,查看response值為一個(gè)java異常。 提交到開發(fā),檢查該行代碼。
原因解釋 代碼中,用(Token+兩位隨機(jī)值)來確認(rèn)client的身份是否唯一。但token的生成是依賴一個(gè)name變量。在這個(gè)應(yīng)用中,name的變量為同一值。故生成的token也為同一值。那么導(dǎo)致的結(jié)果就是只有隨機(jī)值來確認(rèn)client的唯一身份。如何生成隨機(jī)值這里不再討論,但導(dǎo)致的結(jié)果是生成兩位隨機(jī)值相同的概率很大。故出現(xiàn)以上錯(cuò)誤。 解決辦法 增加隨機(jī)值的長(zhǎng)度。 至此,問題解決。
|