aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcjd242018-04-23 20:43:08 +0100
committercjd242018-04-23 20:43:08 +0100
commit99434d883a56279daf2b804a640c40a07fa57e03 (patch)
treec7b2ad308e6d1dfadcea69f8846fde2d0d57a99e
parentFinal report push? (diff)
parentadded to readme (diff)
downloadmedicine-99434d883a56279daf2b804a640c40a07fa57e03.tar.gz
medicine-99434d883a56279daf2b804a640c40a07fa57e03.zip

merging report stuff

-rw-r--r--report/deliverable-3/graphics/server_tests.pngbin0 -> 3348870 bytes
-rw-r--r--report/deliverable-3/main.out31
-rw-r--r--report/deliverable-3/main.synctex.gzbin116114 -> 122984 bytes
-rw-r--r--report/deliverable-3/main.toc21
-rw-r--r--report/deliverable-3/texts/contributions.tex2
-rw-r--r--report/deliverable-3/texts/testing.tex13
-rwxr-xr-xsetAndStartPG.sh5
-rw-r--r--test/stressTest/server_stats.csv243
-rw-r--r--test/stressTest/server_stats.html275
9 files changed, 564 insertions, 26 deletions
diff --git a/report/deliverable-3/graphics/server_tests.png b/report/deliverable-3/graphics/server_tests.png
new file mode 100644
index 0000000..53c74e2
--- /dev/null
+++ b/report/deliverable-3/graphics/server_tests.png
Binary files differ
diff --git a/report/deliverable-3/main.out b/report/deliverable-3/main.out
index 738ad91..4714a51 100644
--- a/report/deliverable-3/main.out
+++ b/report/deliverable-3/main.out
@@ -22,18 +22,19 @@
\BOOKMARK [2][-]{subsection.7.1}{Using Mocha and Postman}{section.7}% 22
\BOOKMARK [2][-]{subsection.7.2}{Integration Testing}{section.7}% 23
\BOOKMARK [3][-]{subsubsection.7.2.1}{CORS}{subsection.7.2}% 24
-\BOOKMARK [1][-]{section.8}{Process Management and Deployment}{}% 25
-\BOOKMARK [2][-]{subsection.8.1}{Process Manager Selection}{section.8}% 26
-\BOOKMARK [2][-]{subsection.8.2}{pm2 and KeyMetrics}{section.8}% 27
-\BOOKMARK [2][-]{subsection.8.3}{Process Limitations}{section.8}% 28
-\BOOKMARK [2][-]{subsection.8.4}{Heroku Hosting}{section.8}% 29
-\BOOKMARK [2][-]{subsection.8.5}{External System Hosting}{section.8}% 30
-\BOOKMARK [1][-]{section.9}{Conclusion}{}% 31
-\BOOKMARK [2][-]{subsection.9.1}{Future Development}{section.9}% 32
-\BOOKMARK [1][-]{section.10}{Individual Contributions}{}% 33
-\BOOKMARK [2][-]{subsection.10.1}{Tom Harley}{section.10}% 34
-\BOOKMARK [2][-]{subsection.10.2}{Josh Lee}{section.10}% 35
-\BOOKMARK [2][-]{subsection.10.3}{Calum Duff}{section.10}% 36
-\BOOKMARK [2][-]{subsection.10.4}{Johannes Weck}{section.10}% 37
-\BOOKMARK [2][-]{subsection.10.5}{Hafeez Abdul-Rehaman}{section.10}% 38
-\BOOKMARK [1][-]{appendix.A}{Scrum Board Images}{}% 39
+\BOOKMARK [2][-]{subsection.7.3}{Stress Testing}{section.7}% 25
+\BOOKMARK [1][-]{section.8}{Process Management and Deployment}{}% 26
+\BOOKMARK [2][-]{subsection.8.1}{Process Manager Selection}{section.8}% 27
+\BOOKMARK [2][-]{subsection.8.2}{pm2 and KeyMetrics}{section.8}% 28
+\BOOKMARK [2][-]{subsection.8.3}{Process Limitations}{section.8}% 29
+\BOOKMARK [2][-]{subsection.8.4}{Heroku Hosting}{section.8}% 30
+\BOOKMARK [2][-]{subsection.8.5}{External System Hosting}{section.8}% 31
+\BOOKMARK [1][-]{section.9}{Conclusion}{}% 32
+\BOOKMARK [2][-]{subsection.9.1}{Future Development}{section.9}% 33
+\BOOKMARK [1][-]{section.10}{Individual Contributions}{}% 34
+\BOOKMARK [2][-]{subsection.10.1}{Tom Harley}{section.10}% 35
+\BOOKMARK [2][-]{subsection.10.2}{Josh Lee}{section.10}% 36
+\BOOKMARK [2][-]{subsection.10.3}{Calum Duff}{section.10}% 37
+\BOOKMARK [2][-]{subsection.10.4}{Johannes Weck}{section.10}% 38
+\BOOKMARK [2][-]{subsection.10.5}{Hafeez Abdul-Rehaman}{section.10}% 39
+\BOOKMARK [1][-]{appendix.A}{Scrum Board Images}{}% 40
diff --git a/report/deliverable-3/main.synctex.gz b/report/deliverable-3/main.synctex.gz
index 5f6c716..0ca8657 100644
--- a/report/deliverable-3/main.synctex.gz
+++ b/report/deliverable-3/main.synctex.gz
Binary files differ
diff --git a/report/deliverable-3/main.toc b/report/deliverable-3/main.toc
index ea50ff0..e061cef 100644
--- a/report/deliverable-3/main.toc
+++ b/report/deliverable-3/main.toc
@@ -22,18 +22,19 @@
\contentsline {subsection}{\numberline {7.1}Using Mocha and Postman}{8}{subsection.7.1}
\contentsline {subsection}{\numberline {7.2}Integration Testing}{8}{subsection.7.2}
\contentsline {subsubsection}{\numberline {7.2.1}CORS}{8}{subsubsection.7.2.1}
-\contentsline {section}{\numberline {8}Process Management and Deployment}{8}{section.8}
+\contentsline {subsection}{\numberline {7.3}Stress Testing}{8}{subsection.7.3}
+\contentsline {section}{\numberline {8}Process Management and Deployment}{9}{section.8}
\contentsline {subsection}{\numberline {8.1}Process Manager Selection}{9}{subsection.8.1}
\contentsline {subsection}{\numberline {8.2}pm2 and KeyMetrics}{9}{subsection.8.2}
-\contentsline {subsection}{\numberline {8.3}Process Limitations}{9}{subsection.8.3}
-\contentsline {subsection}{\numberline {8.4}Heroku Hosting}{9}{subsection.8.4}
-\contentsline {subsection}{\numberline {8.5}External System Hosting}{9}{subsection.8.5}
+\contentsline {subsection}{\numberline {8.3}Process Limitations}{10}{subsection.8.3}
+\contentsline {subsection}{\numberline {8.4}Heroku Hosting}{10}{subsection.8.4}
+\contentsline {subsection}{\numberline {8.5}External System Hosting}{10}{subsection.8.5}
\contentsline {section}{\numberline {9}Conclusion}{10}{section.9}
-\contentsline {subsection}{\numberline {9.1}Future Development}{10}{subsection.9.1}
-\contentsline {section}{\numberline {10}Individual Contributions}{10}{section.10}
-\contentsline {subsection}{\numberline {10.1}Tom Harley}{10}{subsection.10.1}
-\contentsline {subsection}{\numberline {10.2}Josh Lee}{10}{subsection.10.2}
+\contentsline {subsection}{\numberline {9.1}Future Development}{11}{subsection.9.1}
+\contentsline {section}{\numberline {10}Individual Contributions}{11}{section.10}
+\contentsline {subsection}{\numberline {10.1}Tom Harley}{11}{subsection.10.1}
+\contentsline {subsection}{\numberline {10.2}Josh Lee}{11}{subsection.10.2}
\contentsline {subsection}{\numberline {10.3}Calum Duff}{11}{subsection.10.3}
\contentsline {subsection}{\numberline {10.4}Johannes Weck}{11}{subsection.10.4}
-\contentsline {subsection}{\numberline {10.5}Hafeez Abdul-Rehaman}{11}{subsection.10.5}
-\contentsline {section}{\numberline {A}Scrum Board Images}{12}{appendix.A}
+\contentsline {subsection}{\numberline {10.5}Hafeez Abdul-Rehaman}{12}{subsection.10.5}
+\contentsline {section}{\numberline {A}Scrum Board Images}{13}{appendix.A}
diff --git a/report/deliverable-3/texts/contributions.tex b/report/deliverable-3/texts/contributions.tex
index ce60516..d551ed3 100644
--- a/report/deliverable-3/texts/contributions.tex
+++ b/report/deliverable-3/texts/contributions.tex
@@ -18,4 +18,6 @@ During the last sprint I worked closely with Hafeez using pair-programming to re
\subsection{Hafeez Abdul-Rehaman}
My role in the development of the server, involved producing the authentication system and providing security to each of the routes in the RESTful API. This was done through node.js libraries including \textit{passportjs} and \textit{jsonwebtokens}. I also tested the functionality of this after implementation to ensure it was working using tools such as Postman and curl. Whilst also conducting tests for authentication, I assisted Johannes in running and resolving test issues found in other parts of the implementation. By using more than one team member on larger tasks, it took less time to solve these problems. This took a considerable amount of time during the last sprint, as testing was required to be much larger and thorough for the fully implemented system. During the later sprints, I was also designated as scrum master. This meant I was responsible for organising tasks and managing time, and removing obstacles the team may face.
+Another task that I completed was stress testing the final server. This involved using various tools to determine how well the server could handle certain scenarios. It also meant that I needed to create a virtual environment to conduct these tests. This was the most difficult part in the process, as certain packages and libraries were needed in order for it to function as expected.
+
As a team member, I did not feel that there were any major obstacles which impeded the development of the system. However, there were some issues regarding time and managing work set out by other modules within the Computer Science course. Some sprints clashed with other pieces of coursework that also needed to be completed. Therefore, additional care was needed when organising tasks related to the project and planning was required for an extended period of time which would overlap other upcoming coursework deadlines. This way as a team we could plan around other unrelated submissions.
diff --git a/report/deliverable-3/texts/testing.tex b/report/deliverable-3/texts/testing.tex
index db76713..feb1109 100644
--- a/report/deliverable-3/texts/testing.tex
+++ b/report/deliverable-3/texts/testing.tex
@@ -3,8 +3,19 @@ Testing was a key process in the development of the final product just as it was
\subsection{Using Mocha and Postman}
The JavaScript framework Mocha was still used in the testing process for modules. The test-suite for our project had some major work done since the last submission, allowing tests to run on the Gitlab server as well as addressing bugs in the test-suite and implementation. Whilst also using Mocha for Unit tests, it was used to test the individual routes and their response whilst comparing them to a template. The same method was applied to test requests. This automation increased the efficiency of production, however, the small amount of routes to test allowed us to be more thorough by manually sending requests to the server using Postman. Postman is a API development tool which allows requests to be sent through an easily manageable user interface. By doing this, expected values were easy to match with actual values, and further bugs could be caught even when the templates had matched previously.
->>>>>>> report
+
\subsection{Integration Testing}
Once the system had been fully implemented and tested, it was necessary to integrate with the rest of the system such as user interface and the machine learning servers. This allowed us to determine whether specific protocols were implemented correctly and to ensure that all the requirements set by the client were met. To begin the integration process, the server was hosted through the St Andrews web service which allows content to be hosted through the web. This was done by configuring an \textit{nginx} proxy that would allow binding of the loopback address and port number. Using \texttt{tmux}, the session was hosted persistently as it allows terminal sessions to be detached and run in the background. The server runs on the domain \textit{har4.host.cs.st-andrews.ac.uk}. From here, it was possible for other teams to send requests to the running server.
\subsubsection{CORS}
Integration testing also gave the opportunity to find additional errors specifically caused by the linking of servers. An example of this is the realisation of the lack of Cross-Origin support. The running server could not function properly as content requests were being sent to different origins and for security reasons this is not permitted. To fix this additional features were required to be implemented to support CORS. Specifically certain headers were added to permit different origin access.
+\subsection{Stress Testing}
+Near towards the end, a small duration of time was spent testing the robustness of the final system. This was done using different stress testing tools. First a virtual environment was created to host the server. This was to prevent any side effects that may occur to other processes and users. Once the environment was created, the server was started. The tools that were used included the \textit{Metasploit Framework}, which included multiple \textit{DoS} attack methods. This was designed to test extreme but common cases. In particular, the \textit{TCP synFlood} method was used as it is a very common technique occurring over the internet. It attacks the server during its three-way handshake, the process in which \textit{syn}s are sent and \textit{acknowledgements} are received. \textit{synFlood} essentially sends a succession of \textit{syn} requests, attempting to consume server resources. After conducting the attack, no noticeable effect on performance could be seen, demonstrating that the server could withstand simple TCP based \textit{DoS} attacks.
+
+More tests were conducted in a similar manner. \texttt{slowhttptest} was another tool used in testing the robustness of the system as shown in \ref{fig:stress}. This allowed attacks such as \textit{slowloris} and \textit{slowmessagebody}. These exploit the HTTP protocol as all requests are required to be completely received before they are processed. If the request has not been completely received then the server uses its resources waiting for the rest of the data. A denial of service occurs if too many of these resources are kept busy. Again, after attacking the system with this method, no visible drop in performance could be noticed. With the \textit{slowhttptest} tool, the results of the test were outputted to a \texttt{.csv} file and visualized in a web document. These results provide evidence to the robustness of the server. This can be seen in the folder \texttt{test/stressTest}.
+
+\begin{figure}[H]
+ \includegraphics[scale=0.4]{server_tests.png}
+ \centering
+ \caption{slowhttptest in action}
+ \label{fig:stress}
+\end{figure}
diff --git a/setAndStartPG.sh b/setAndStartPG.sh
new file mode 100755
index 0000000..c1db44a
--- /dev/null
+++ b/setAndStartPG.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+./getmeall.sh
+./runmepostgres.sh
+./redis-stable/src/redis-server redis-stable/redis.conf &
diff --git a/test/stressTest/server_stats.csv b/test/stressTest/server_stats.csv
new file mode 100644
index 0000000..d308244
--- /dev/null
+++ b/test/stressTest/server_stats.csv
@@ -0,0 +1,243 @@
+Seconds,Closed,Pending,Connected,Service Available
+0,0,1,0,1000
+1,0,1,153,1000
+2,0,1,311,1000
+3,0,1,469,1000
+4,0,1,618,1000
+5,0,1,759,1000
+6,0,1,904,1000
+7,0,0,1000,1000
+8,0,0,1000,1000
+9,0,0,1000,1000
+10,0,0,1000,1000
+11,0,0,1000,1000
+12,0,0,1000,1000
+13,0,0,1000,1000
+14,0,0,1000,1000
+15,0,0,1000,1000
+16,0,0,1000,1000
+17,0,0,1000,1000
+18,0,0,1000,1000
+19,0,0,1000,1000
+20,0,0,1000,1000
+21,0,0,1000,1000
+22,0,0,1000,1000
+23,0,0,1000,1000
+24,0,0,1000,1000
+25,0,0,1000,1000
+26,0,0,1000,1000
+27,0,0,1000,1000
+28,0,0,1000,1000
+29,0,0,1000,1000
+30,0,0,1000,1000
+31,0,0,1000,1000
+32,0,0,1000,1000
+33,0,0,1000,1000
+34,0,0,1000,1000
+35,0,0,1000,1000
+36,0,0,1000,1000
+37,0,0,1000,1000
+38,0,0,1000,1000
+39,0,0,1000,1000
+40,0,0,1000,1000
+41,0,0,1000,1000
+42,0,0,1000,1000
+43,0,0,1000,1000
+44,0,0,1000,1000
+45,0,0,1000,1000
+46,0,0,1000,1000
+47,0,0,1000,1000
+48,0,0,1000,1000
+49,0,0,1000,1000
+50,0,0,1000,1000
+51,0,0,1000,1000
+52,0,0,1000,1000
+53,0,0,1000,1000
+54,0,0,1000,1000
+55,0,0,1000,1000
+56,0,0,1000,1000
+57,0,0,1000,1000
+58,0,0,1000,1000
+59,0,0,1000,1000
+60,0,0,1000,1000
+61,0,0,1000,1000
+62,0,0,1000,1000
+63,0,0,1000,1000
+64,0,0,1000,1000
+65,0,0,1000,1000
+66,0,0,1000,1000
+67,0,0,1000,1000
+68,0,0,1000,1000
+69,0,0,1000,1000
+70,0,0,1000,1000
+71,0,0,1000,1000
+72,0,0,1000,1000
+73,0,0,1000,1000
+74,0,0,1000,1000
+75,0,0,1000,1000
+76,0,0,1000,1000
+77,0,0,1000,1000
+78,0,0,1000,1000
+79,0,0,1000,1000
+80,0,0,1000,1000
+81,0,0,1000,1000
+82,0,0,1000,1000
+83,0,0,1000,1000
+84,0,0,1000,1000
+85,0,0,1000,1000
+86,0,0,1000,1000
+87,0,0,1000,1000
+88,0,0,1000,1000
+89,0,0,1000,1000
+90,0,0,1000,1000
+91,0,0,1000,1000
+92,0,0,1000,1000
+93,0,0,1000,1000
+94,0,0,1000,1000
+95,0,0,1000,1000
+96,0,0,1000,1000
+97,0,0,1000,1000
+98,0,0,1000,1000
+99,0,0,1000,1000
+100,0,0,1000,1000
+101,0,0,1000,1000
+102,0,0,1000,1000
+103,0,0,1000,1000
+104,0,0,1000,1000
+105,0,0,1000,1000
+106,0,0,1000,1000
+107,0,0,1000,1000
+108,0,0,1000,1000
+109,0,0,1000,1000
+110,0,0,1000,1000
+111,0,0,1000,1000
+112,0,0,1000,1000
+113,0,0,1000,1000
+114,0,0,1000,1000
+115,0,0,1000,1000
+116,0,0,1000,1000
+117,0,0,1000,1000
+118,0,0,1000,1000
+119,0,0,1000,1000
+120,0,0,1000,1000
+121,0,0,1000,1000
+122,0,0,1000,1000
+123,0,0,1000,1000
+124,0,0,1000,1000
+125,0,0,1000,1000
+126,0,0,1000,1000
+127,0,0,1000,1000
+128,0,0,1000,1000
+129,0,0,1000,1000
+130,0,0,1000,1000
+131,0,0,1000,1000
+132,0,0,1000,1000
+133,0,0,1000,1000
+134,0,0,1000,1000
+135,0,0,1000,1000
+136,0,0,1000,1000
+137,0,0,1000,1000
+138,0,0,1000,1000
+139,0,0,1000,1000
+140,0,0,1000,1000
+141,0,0,1000,1000
+142,0,0,1000,1000
+143,0,0,1000,1000
+144,0,0,1000,1000
+145,0,0,1000,1000
+146,0,0,1000,1000
+147,0,0,1000,1000
+148,0,0,1000,1000
+149,0,0,1000,1000
+150,0,0,1000,1000
+151,0,0,1000,1000
+152,0,0,1000,1000
+153,0,0,1000,1000
+154,0,0,1000,1000
+155,0,0,1000,1000
+156,0,0,1000,1000
+157,0,0,1000,1000
+158,0,0,1000,1000
+159,0,0,1000,1000
+160,0,0,1000,1000
+161,0,0,1000,1000
+162,0,0,1000,1000
+163,0,0,1000,1000
+164,0,0,1000,1000
+165,0,0,1000,1000
+166,0,0,1000,1000
+167,0,0,1000,1000
+168,0,0,1000,1000
+169,0,0,1000,1000
+170,0,0,1000,1000
+171,0,0,1000,1000
+172,0,0,1000,1000
+173,0,0,1000,1000
+174,0,0,1000,1000
+175,0,0,1000,1000
+176,0,0,1000,1000
+177,0,0,1000,1000
+178,0,0,1000,1000
+179,0,0,1000,1000
+180,0,0,1000,1000
+181,0,0,1000,1000
+182,0,0,1000,1000
+183,0,0,1000,1000
+184,0,0,1000,1000
+185,0,0,1000,1000
+186,0,0,1000,1000
+187,0,0,1000,1000
+188,0,0,1000,1000
+189,0,0,1000,1000
+190,0,0,1000,1000
+191,0,0,1000,1000
+192,0,0,1000,1000
+193,0,0,1000,1000
+194,0,0,1000,1000
+195,0,0,1000,1000
+196,0,0,1000,1000
+197,0,0,1000,1000
+198,0,0,1000,1000
+199,0,0,1000,1000
+200,0,0,1000,1000
+201,0,0,1000,1000
+202,0,0,1000,1000
+203,0,0,1000,1000
+204,0,0,1000,1000
+205,0,0,1000,1000
+206,0,0,1000,1000
+207,0,0,1000,1000
+208,0,0,1000,1000
+209,0,0,1000,1000
+210,0,0,1000,1000
+211,0,0,1000,1000
+212,0,0,1000,1000
+213,0,0,1000,1000
+214,0,0,1000,1000
+215,0,0,1000,1000
+216,0,0,1000,1000
+217,0,0,1000,1000
+218,0,0,1000,1000
+219,0,0,1000,1000
+220,0,0,1000,1000
+221,0,0,1000,1000
+222,0,0,1000,1000
+223,0,0,1000,1000
+224,0,0,1000,1000
+225,0,0,1000,1000
+226,0,0,1000,1000
+227,0,0,1000,1000
+228,0,0,1000,1000
+229,0,0,1000,1000
+230,0,0,1000,1000
+231,0,0,1000,1000
+232,0,0,1000,1000
+233,0,0,1000,1000
+234,0,0,1000,1000
+235,0,0,1000,1000
+236,0,0,1000,1000
+237,0,0,1000,1000
+238,0,0,1000,1000
+239,0,0,1000,1000
+240,0,0,1000,1000
+241,0,0,1000,1000
diff --git a/test/stressTest/server_stats.html b/test/stressTest/server_stats.html
new file mode 100644
index 0000000..4e88f6d
--- /dev/null
+++ b/test/stressTest/server_stats.html
@@ -0,0 +1,275 @@
+<!-- SlowHTTPTest Analysis chart (c) Sergey Shekyan, Victor Agababov 2011 -->
+ <html>
+ <head>
+ <style>
+ body { font: 12px/18px "Lucida Grande", "Lucida Sans Unicode", Helvetica, Arial, Verdana, sans-serif; background-color: transparent; color: #333; -webkit-font-smoothing: antialiased; }
+ .slow_results {font-size: 12px; }
+ </style>
+ <script type="text/javascript" src="https://www.google.com/jsapi"></script>
+ <script type="text/javascript">
+ google.load("visualization", "1", {packages:["corechart"]});
+ google.setOnLoadCallback(drawChart);
+ function drawChart() {
+ var data = new google.visualization.DataTable();
+ data.addColumn('string', 'Seconds');
+ data.addColumn('number', 'Closed');
+ data.addColumn('number', 'Pending');
+ data.addColumn('number', 'Connected');
+ data.addColumn('number', 'Service available');
+ data.addRows([
+['0',0,1,0,1000],
+['1',0,1,153,1000],
+['2',0,1,311,1000],
+['3',0,1,469,1000],
+['4',0,1,618,1000],
+['5',0,1,759,1000],
+['6',0,1,904,1000],
+['7',0,0,1000,1000],
+['8',0,0,1000,1000],
+['9',0,0,1000,1000],
+['10',0,0,1000,1000],
+['11',0,0,1000,1000],
+['12',0,0,1000,1000],
+['13',0,0,1000,1000],
+['14',0,0,1000,1000],
+['15',0,0,1000,1000],
+['16',0,0,1000,1000],
+['17',0,0,1000,1000],
+['18',0,0,1000,1000],
+['19',0,0,1000,1000],
+['20',0,0,1000,1000],
+['21',0,0,1000,1000],
+['22',0,0,1000,1000],
+['23',0,0,1000,1000],
+['24',0,0,1000,1000],
+['25',0,0,1000,1000],
+['26',0,0,1000,1000],
+['27',0,0,1000,1000],
+['28',0,0,1000,1000],
+['29',0,0,1000,1000],
+['30',0,0,1000,1000],
+['31',0,0,1000,1000],
+['32',0,0,1000,1000],
+['33',0,0,1000,1000],
+['34',0,0,1000,1000],
+['35',0,0,1000,1000],
+['36',0,0,1000,1000],
+['37',0,0,1000,1000],
+['38',0,0,1000,1000],
+['39',0,0,1000,1000],
+['40',0,0,1000,1000],
+['41',0,0,1000,1000],
+['42',0,0,1000,1000],
+['43',0,0,1000,1000],
+['44',0,0,1000,1000],
+['45',0,0,1000,1000],
+['46',0,0,1000,1000],
+['47',0,0,1000,1000],
+['48',0,0,1000,1000],
+['49',0,0,1000,1000],
+['50',0,0,1000,1000],
+['51',0,0,1000,1000],
+['52',0,0,1000,1000],
+['53',0,0,1000,1000],
+['54',0,0,1000,1000],
+['55',0,0,1000,1000],
+['56',0,0,1000,1000],
+['57',0,0,1000,1000],
+['58',0,0,1000,1000],
+['59',0,0,1000,1000],
+['60',0,0,1000,1000],
+['61',0,0,1000,1000],
+['62',0,0,1000,1000],
+['63',0,0,1000,1000],
+['64',0,0,1000,1000],
+['65',0,0,1000,1000],
+['66',0,0,1000,1000],
+['67',0,0,1000,1000],
+['68',0,0,1000,1000],
+['69',0,0,1000,1000],
+['70',0,0,1000,1000],
+['71',0,0,1000,1000],
+['72',0,0,1000,1000],
+['73',0,0,1000,1000],
+['74',0,0,1000,1000],
+['75',0,0,1000,1000],
+['76',0,0,1000,1000],
+['77',0,0,1000,1000],
+['78',0,0,1000,1000],
+['79',0,0,1000,1000],
+['80',0,0,1000,1000],
+['81',0,0,1000,1000],
+['82',0,0,1000,1000],
+['83',0,0,1000,1000],
+['84',0,0,1000,1000],
+['85',0,0,1000,1000],
+['86',0,0,1000,1000],
+['87',0,0,1000,1000],
+['88',0,0,1000,1000],
+['89',0,0,1000,1000],
+['90',0,0,1000,1000],
+['91',0,0,1000,1000],
+['92',0,0,1000,1000],
+['93',0,0,1000,1000],
+['94',0,0,1000,1000],
+['95',0,0,1000,1000],
+['96',0,0,1000,1000],
+['97',0,0,1000,1000],
+['98',0,0,1000,1000],
+['99',0,0,1000,1000],
+['100',0,0,1000,1000],
+['101',0,0,1000,1000],
+['102',0,0,1000,1000],
+['103',0,0,1000,1000],
+['104',0,0,1000,1000],
+['105',0,0,1000,1000],
+['106',0,0,1000,1000],
+['107',0,0,1000,1000],
+['108',0,0,1000,1000],
+['109',0,0,1000,1000],
+['110',0,0,1000,1000],
+['111',0,0,1000,1000],
+['112',0,0,1000,1000],
+['113',0,0,1000,1000],
+['114',0,0,1000,1000],
+['115',0,0,1000,1000],
+['116',0,0,1000,1000],
+['117',0,0,1000,1000],
+['118',0,0,1000,1000],
+['119',0,0,1000,1000],
+['120',0,0,1000,1000],
+['121',0,0,1000,1000],
+['122',0,0,1000,1000],
+['123',0,0,1000,1000],
+['124',0,0,1000,1000],
+['125',0,0,1000,1000],
+['126',0,0,1000,1000],
+['127',0,0,1000,1000],
+['128',0,0,1000,1000],
+['129',0,0,1000,1000],
+['130',0,0,1000,1000],
+['131',0,0,1000,1000],
+['132',0,0,1000,1000],
+['133',0,0,1000,1000],
+['134',0,0,1000,1000],
+['135',0,0,1000,1000],
+['136',0,0,1000,1000],
+['137',0,0,1000,1000],
+['138',0,0,1000,1000],
+['139',0,0,1000,1000],
+['140',0,0,1000,1000],
+['141',0,0,1000,1000],
+['142',0,0,1000,1000],
+['143',0,0,1000,1000],
+['144',0,0,1000,1000],
+['145',0,0,1000,1000],
+['146',0,0,1000,1000],
+['147',0,0,1000,1000],
+['148',0,0,1000,1000],
+['149',0,0,1000,1000],
+['150',0,0,1000,1000],
+['151',0,0,1000,1000],
+['152',0,0,1000,1000],
+['153',0,0,1000,1000],
+['154',0,0,1000,1000],
+['155',0,0,1000,1000],
+['156',0,0,1000,1000],
+['157',0,0,1000,1000],
+['158',0,0,1000,1000],
+['159',0,0,1000,1000],
+['160',0,0,1000,1000],
+['161',0,0,1000,1000],
+['162',0,0,1000,1000],
+['163',0,0,1000,1000],
+['164',0,0,1000,1000],
+['165',0,0,1000,1000],
+['166',0,0,1000,1000],
+['167',0,0,1000,1000],
+['168',0,0,1000,1000],
+['169',0,0,1000,1000],
+['170',0,0,1000,1000],
+['171',0,0,1000,1000],
+['172',0,0,1000,1000],
+['173',0,0,1000,1000],
+['174',0,0,1000,1000],
+['175',0,0,1000,1000],
+['176',0,0,1000,1000],
+['177',0,0,1000,1000],
+['178',0,0,1000,1000],
+['179',0,0,1000,1000],
+['180',0,0,1000,1000],
+['181',0,0,1000,1000],
+['182',0,0,1000,1000],
+['183',0,0,1000,1000],
+['184',0,0,1000,1000],
+['185',0,0,1000,1000],
+['186',0,0,1000,1000],
+['187',0,0,1000,1000],
+['188',0,0,1000,1000],
+['189',0,0,1000,1000],
+['190',0,0,1000,1000],
+['191',0,0,1000,1000],
+['192',0,0,1000,1000],
+['193',0,0,1000,1000],
+['194',0,0,1000,1000],
+['195',0,0,1000,1000],
+['196',0,0,1000,1000],
+['197',0,0,1000,1000],
+['198',0,0,1000,1000],
+['199',0,0,1000,1000],
+['200',0,0,1000,1000],
+['201',0,0,1000,1000],
+['202',0,0,1000,1000],
+['203',0,0,1000,1000],
+['204',0,0,1000,1000],
+['205',0,0,1000,1000],
+['206',0,0,1000,1000],
+['207',0,0,1000,1000],
+['208',0,0,1000,1000],
+['209',0,0,1000,1000],
+['210',0,0,1000,1000],
+['211',0,0,1000,1000],
+['212',0,0,1000,1000],
+['213',0,0,1000,1000],
+['214',0,0,1000,1000],
+['215',0,0,1000,1000],
+['216',0,0,1000,1000],
+['217',0,0,1000,1000],
+['218',0,0,1000,1000],
+['219',0,0,1000,1000],
+['220',0,0,1000,1000],
+['221',0,0,1000,1000],
+['222',0,0,1000,1000],
+['223',0,0,1000,1000],
+['224',0,0,1000,1000],
+['225',0,0,1000,1000],
+['226',0,0,1000,1000],
+['227',0,0,1000,1000],
+['228',0,0,1000,1000],
+['229',0,0,1000,1000],
+['230',0,0,1000,1000],
+['231',0,0,1000,1000],
+['232',0,0,1000,1000],
+['233',0,0,1000,1000],
+['234',0,0,1000,1000],
+['235',0,0,1000,1000],
+['236',0,0,1000,1000],
+['237',0,0,1000,1000],
+['238',0,0,1000,1000],
+['239',0,0,1000,1000],
+['240',0,0,1000,1000],
+['241',0,0,1000,1000],
+ ]);
+ var chart = new google.visualization.AreaChart(document.getElementById('chart_div'));
+ chart.draw(data, {'width': 600, 'height': 360, 'title': 'Test results against http://localhost:3000/', hAxis: {'title': 'Seconds', 'titleTextStyle': {color: '#FF0000'}},
+ vAxis: {'title': 'Connections', 'titleTextStyle': {color: '#FF0000'}, 'viewWindowMode':'maximized'}
+ });
+ }
+ </script>
+ <title>SlowHTTPTest(tm) Connection Results</title>
+ </head>
+ <body>
+ <p><table class='slow_results' border='0'><tr><th>Test parameters</th></tr><tr><td><b>Test type</b></td><td>SLOW HEADERS</td></tr><tr><td><b>Number of connections</b></td><td>1000</td></tr><tr><td><b>Verb</b></td><td>GET</td></tr><tr><td><b>Content-Length header value</b></td><td>4096</td></tr><tr><td><b>Extra data max length</b></td><td>52</td></tr><tr><td><b>Interval between follow up data</b></td><td>10 seconds</td></tr><tr><td><b>Connections per seconds</b></td><td>200</td></tr><tr><td><b>Timeout for probe connection</b></td><td>3</td></tr><tr><td><b>Target test duration</b></td><td>240 seconds</td></tr><tr><td><b>Using proxy</b></td><td>no proxy </td></tr></table></p>
+ <div id="chart_div"></div>
+ </body>
+ </html>