2012-11-06 49 views
0

這是我的javascript,我手動爲我的網站寫了一個壓力測試,讓4個虛擬用戶。Javascript:製作獨立表單提交

<html> 
<head> 
<script type="text/javascript"> 
function test() { 
var myStringArray = [ "user1", "user2" , "user3" , "user4" ] 
var len = myStringArray.length; 
for (var i=0; i<len; ++i) { 
document.inform.cid.value=myStringArray[0]; 
document.inform.pw.value="xxxxxx"; 
document.inform.submit(); 
} 
} 
</script> 
</head> 

<body> 
    <form name="inform" method="post" target="newWin" action="http://localhost:8080/logon?debug=1"> 
    <input type="text" name="cid" > 
<input type="password" name="pw" /> 
<input type="hidden" name="throttle" value="999" /> 
    <input type="submit" value="go" onclick="test()"> 
    </form> 
</body> 
</html> 

當我運行上述程序時,它只提交一次,即與最後一個用戶。

我的要求是,我想用4個虛擬用戶打開4個新窗口。

請讓我知道,我如何打開4個虛擬用戶的4個新窗口。

謝謝。

+0

你首先需要改變'document.inform.cid。 value = myStringArray [0];'帶'document.inform.cid.value = myStringArray [i];'因爲它只使用數組中的第一項。 – andrux

+0

這不是程序,這是一個HTML頁面。它運行在一個瀏覽器中,使虛擬用戶(不同會話)的模擬變得複雜 - 而是編寫一個真正的程序 – Bergi

回答

1

您需要爲形式的target屬性賦予不同的價值爲他們在新窗口/標籤打開:

例如:

for (var i=0; i<len; ++i) { 

    document.inform.target = i; // a different target each time 

    document.inform.cid.value=myStringArray[0]; 
    document.inform.pw.value="xxxxxx"; 
    document.inform.submit(); 
} 

入住這演示使用jQuery的,但概念相同):http://jsfiddle.net/dvJMx/


編輯

引入的延遲之間的每個提交,你可以這樣做:

演示:http://jsfiddle.net/dvJMx/1/

var windowCounter = 1; // make sure you declare this globally 

for (var i=0; i<len; ++i) { 

    setTimeout(function() { 
     document.inform.target = windowCounter++; // a different target each time 

     document.inform.cid.value=myStringArray[0]; 
     document.inform.pw.value="xxxxxx"; 
     document.inform.submit(); 

    }, i*1000); // change 1000 to the interval you need in milliseconds 

} 
+0

非常感謝,它的運行良好,所有這些請求是同時發生的,是否有可能在每次提交之間保持時間差距??再次感謝 。 – Pawan

+0

是的,可以。看我的編輯。 – techfoobar

+0

延遲代碼給了我錯誤,http://stackoverflow.com/questions/13256479/cr-ns-error-not-available-when-running-a-simple-javascript – Pawan