0

これは私の JavaScript です。4 人の仮想ユーザーを作成して、Web サイトのストレス テストを手動で作成しています。

<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>

上記のプログラムを実行したとき、その送信は 1 回だけでした。つまり、最後のユーザーでした。

私の要件は、4 つの仮想ユーザーで 4 つの新しいウィンドウを開きたいということです。

4 人の仮想ユーザーで 4 つの新しいウィンドウを開く方法を教えてください。

ありがとう 。

4

1 に答える 1

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

}
于 2012-11-06T15:27:16.517 に答える