test.html 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <html>
  3. <head>
  4. <title>Test</title>
  5. <script type='text/javascript' language="javascript" src='jquery.js'></script>
  6. <script type='text/javascript' language="javascript">
  7. <!--
  8. function mbox() {
  9. alert('Javascript OK');
  10. }
  11. var totalCount = 10;
  12. var pendingCount = 0;
  13. var errorCount = 0;
  14. var pushCount = 0;
  15. var allErrorCount = 0;
  16. var autoTest = false;
  17. var testType = "cgi";
  18. function NextTestType() {
  19. if (testType == "cgi") testType = "lp";
  20. else if (testType == "lp") testType = "lua";
  21. else testType = "cgi";
  22. }
  23. function runTest(method, isAsync) {
  24. ++pushCount;
  25. document.getElementById('start').innerHTML = 'Test: ' + pushCount;
  26. document.getElementById('resTotal').innerHTML = 'running';
  27. for (var i = 1; i <= totalCount; ++i) {
  28. document.getElementById('res'+i).innerHTML = "ready";
  29. }
  30. errorCount = 0;
  31. pendingCount = totalCount;
  32. for (var i = 1; i <= totalCount; ++i) {
  33. fetch(i, method, isAsync);
  34. }
  35. }
  36. function runAutoTest() {
  37. if (autoTest) {
  38. runTest("POST", true)
  39. setTimeout("runAutoTest()", 250)
  40. }
  41. }
  42. function fetch(id, method, isAsync) {
  43. document.getElementById('res'+id).innerHTML = "pending";
  44. $.ajax({
  45. async: isAsync,
  46. url: 'echo.' + testType + '?id=' + id,
  47. type: method,
  48. timeout: 2000,
  49. data: { 'id' : id ,
  50. 'longText1' : "adfsdfasdklkjlgasfdfjkhq345sdafbmkanq3trsdghkjqw4etrjlkabsdfkabvauiregtlkjasdbvabl4btrjawebbfjsdhbjk342r5bjksdbfkljbhasdfbhj234qjhasdg76k11234jhv900adfasddsfmzasdfhjgajsvhgkjhasdf77aefcae4fkjzasdfgukeaf7dkkegasdfigjcvxgui",
  51. 'longText2' : "bsdfsdfasdklkjlgasdfjkhq345sdafbmkanq3trsdghkjqw4etrjlkabsdfkabvauiregtlkjasdbvabl4btrjawebbfjsdhbjk342r5bjksdbfkljbhasdfbhj234qjhasdg76k11234jhv900adfasddsfmzasdfhjgajsvhgkjhasdf77aefcae4fkjzasdfgukeaf7dkkegasdfigjcvxgui",
  52. 'longText3' : "sdfsadagsdklkjlgasdfjkhq345sdafbmkanq3trsdghkjqw4etrjlkabsdfkabvauiregtlkjasdbvabl4btrjawebbfjsdhbjk342r5bjksdbfkljbhasdfbhj234qjhasdg76k11234jhv900adfasddsfmzasdfhjgajsvhgkjhasdf77aefcae4fkjzasdfgukeaf7dkkegasdfigjcvxgui",
  53. 'longText4' : "q34sdfas3fhbkjlgasdfjkhq345sdafbmkanq3trsdghkjqw4etrjlkabsdfkabvauiregtlkjasdbvabl4btrjawebbfjsdhbjk342r5bjksdbfkljbhasdfbhj234qjhasdg76k11234jhv900adfasddsfmzasdfhjgajsvhgkjhasdf77aefcae4fkjzasdfgukeaf7dkkegasdfigjcvxgui",
  54. 'longText5' : "askj2kjcvxychklgasdfjkhq345sdafbmkanq3trsdghkjqw4etrjlkabsdfkabvauiregtlkjasdbvabl4btrjawebbfjsdhbjk342r5bjksdbfkljbhasdfbhj234qjhasdg76k11234jhv900adfasddsfmzasdfhjgajsvhgkjhasdf77aefcae4fkjzasdfgukeaf7dkkegasdfigjcvxgui",
  55. 'longText6' : "asdfjklhlkjhv8öajsdfjkhq345sdafbmkanq3trsdghkjqw4etrjlkabsdfkabvauiregtlkjasdbvabl4btrjawebbfjsdhbjk342r5bjksdbfkljbhasdfbhj234qjhasdg76k11234jhv900adfasddsfmzasdfhjgajsvhgkjhasdf77aefcae4fkjzasdfgukeaf7dkkegasdfigjcvxgui",
  56. 'async' : isAsync
  57. },
  58. dataType: 'json',
  59. succes: function(data) {
  60. },
  61. error: function() {
  62. ++errorCount;
  63. },
  64. complete: function(jqXHR, textStatus) {
  65. --pendingCount;
  66. document.getElementById('res'+id).innerHTML = textStatus;
  67. console.log('id: ' + id + ' (' + pendingCount + '/' + totalCount + '), status: ' + textStatus);
  68. if (pendingCount == 0) {
  69. document.getElementById('resTotal').innerHTML = 'done';
  70. console.log('complete, error count: ' + errorCount);
  71. allErrorCount = allErrorCount + errorCount;
  72. document.getElementById('resSAll').innerHTML = 'total errors: ' + allErrorCount + "/" + (pushCount*totalCount);
  73. }
  74. }
  75. });
  76. }
  77. //-->
  78. </script>
  79. </head>
  80. <body>
  81. <p>
  82. <div id="start">Test not started.</div>
  83. </p>
  84. <p>
  85. <table>
  86. <tr>
  87. <td>
  88. <input id="testButton1" type="button" onclick="javascript:runTest('GET', false)" value="sync GET"></input>
  89. </td>
  90. <td>
  91. <input id="testButton2" type="button" onclick="javascript:runTest('POST', false)" value="sync POST"></input>
  92. </td>
  93. </tr>
  94. <tr>
  95. <td>
  96. <input id="testButton3" type="button" onclick="javascript:runTest('GET', true)" value="async GET"></input>
  97. </td>
  98. <td>
  99. <input id="testButton4" type="button" onclick="javascript:runTest('POST', true)" value="async POST"></input>
  100. </td>
  101. </tr>
  102. <tr>
  103. <td>
  104. <input id="testButton5" type="button" onclick="autoTest=!autoTest; javascript:runAutoTest()" value="automatic test"></input>
  105. </td>
  106. <td>
  107. <input id="testButton6" type="button" onclick="NextTestType(); this.value=testType" value='cgi'></input>
  108. </td>
  109. </tr>
  110. <tr>
  111. <td>
  112. <input id="testButtonReset" type="button" onclick="autoTest=false; javascript:location.reload(true)" value="reset"></input>
  113. </td>
  114. <td>
  115. <input id="testButtonBack" type="button" onclick="history.back()" value="back"></input>
  116. </td>
  117. </tr>
  118. <tr>
  119. <td>
  120. <input id="testButtonBox" type="button" onclick="javascript:mbox()" value="MsgBox"></input>
  121. </td>
  122. <td>
  123. </td>
  124. </tr>
  125. </table>
  126. </p>
  127. <p>
  128. <table border="1">
  129. <tr><th>Test</th><th>Result</th></tr>
  130. <tr><td>1</td><td><div id="res1">not started</div></td></tr>
  131. <tr><td>2</td><td><div id="res2">not started</div></td></tr>
  132. <tr><td>3</td><td><div id="res3">not started</div></td></tr>
  133. <tr><td>4</td><td><div id="res4">not started</div></td></tr>
  134. <tr><td>5</td><td><div id="res5">not started</div></td></tr>
  135. <tr><td>6</td><td><div id="res6">not started</div></td></tr>
  136. <tr><td>7</td><td><div id="res7">not started</div></td></tr>
  137. <tr><td>8</td><td><div id="res8">not started</div></td></tr>
  138. <tr><td>9</td><td><div id="res9">not started</div></td></tr>
  139. <tr><td>10</td><td><div id="res10">not started</div></td></tr>
  140. </table>
  141. <div id="resTotal">Push [Test] to start.</div>
  142. <div id="resSAll"></div>
  143. </p>
  144. </body>
  145. </html>