Home

Webserver Stress Tool

image

Contents

1. http www paessler com products http www paessler comfwebstress Status Simply enter the first URL in the URL edit field and click on Go Watch the list of URLs in the lower part of the window Every time you click a link on the browser window or submit a FORM the URL is appended to the list If a POST request is submitted the POST data is also saved If a page is a frameset all URLs of the frameset are added to the list If a click opens a new window Webserver Stress Tool will also open a new window and record further clicks Webserver Stress Tool Configuring Webserver Stress Tool e 19 You may edit the list of URLs using Add URL Delete URL and Clear URLs Please note In the upper part of the window the Internet Explorer OCX Control is called as the web browser which uses the currently installed version of IE on your system Setting Up the Data Merging Feature To be more flexible with the URLs or to bypass caching mechanisms e g of a web application or proxy server in your test setup Webserver Stress Tool offers the possibility to merge additional dynamic data into the requested URLs Webserver Stress Tool Advanced Settings rUnique numbers in URL s POSTDATA s Use this Feature to have an unique number in the URL POSTDAT of each request e g to bypass caching mechanisms Simply place the placeholder ee in the URL POSTDATA stringis and it will be replaced with a number Th
2. OnAfterRequest Samples Writing to the user s logfile data log Finished request number inttostr data requestcount with resultcode inttostr request resultcode request result The following code dumps HTML and headers into the log data log data S logtcrl 4 header SS SSS SS SSS SS crlf request receivedheader crlf Seer nm Writing the HTML or any other data of a request to a disk file Please edit the filename filepath for your needs a savestringtofile d temp Data of user number inttostr data usernumber request number inttostr data requestcount txt request htm1 if a lt gt 0 then data log Could not write file result inttostr a end if Advanced URL Script Samples Reading a TOKEN from a page and reusing it on subsequent requests The following script shows how to read some data from the HTML of a page and the use this data in subsequent requests Webserver Stress Tool Configuring Webserver Stress Tool e 25 Requires Webserver Stress Tool 8 or later Sub OnBeforeClick if data clickcount 0 then data url http walldorf paessler com end if if data clickcount 1 then data url http walldorf paessler com test data token end if data log Preparing click inttostr data clickcount 1l of user inttostr data usernumber 1 end Sub Sub OnAfterClick data log end sub Sub O
3. because you will never know if you are actually testing the speed of your webserver or the speed of your proxy server 34 e Configuring Webserver Stress Tool Webserver Stress Tool A specific User Agent String can be sent to the server when Use Agent is selected You may select a user agent string from the list or edit the string yourself To add your own parameters to the HTTP request headers enable Addtl Headers and enter your data in the text control You may set a maximum timeout for finishing the HTTP requests by selecting Use Timeout Enter the timeout in seconds A good value to start with is 60 seconds since no human user would likely wait longer than that To throttle the data rate through which a user accesses the server enter a value in kbit s for Simulate Maximum Data Rate for Client This can be used to simulate users accessing the webserver through modem lines e g 50 kbit s If your webserver or web application requires cookies select enable cookies The cookies are shown in the detailed log file when Show Cookies in Log is selected The cookies are stored for each user and resent to the server for the following requests until a cookie invalidation is sent by the server Recursive Browsing The features in this group should only be used on powerful client systems especially for testing with high load conditions because the HTML of each request has to be parsed completely to identify image URLs link URLs etc R
4. Playing ee ME 8 When Should I Start Performance Testmng A 9 E GE 9 Webserver Stress Tool Features 11 Ke y HEEN 11 How much load can Webserver Stress Tool generate eee eeeeeeeceeeceseceseeeseenaeenaes 11 Webserver Stress Tool can be used for various tests cccessseceessececsesececseeeecessseeeenenaes 11 Festin SB EMents 5 sescssescctesG sets ina ee gege ENEE EE Eer 12 Test results can be VicWed ag 12 Other Features 2 i cccsi EEN a ae ee ee eal 13 Installation 14 System RequireMentts stierne reiner rere rees e rE EE E TEESE rE Tp EEEE EE EEE Eps Srei 14 Installation Deinstallation ccccccecsssceceessececseececeesececseaaececseseeceesaeeecsesaesecseseeeeesneeeeeenas 14 Configuring Webserver Stress Tool 15 Selecting the Test Type and the Number of Userg cee eeccecsseceececeseceeeeecsaeceeneecnaeeeenees 15 BKS OK 15 User Simulation 23 0 ees dese eege eege ees 16 Project Scenario Comments Operator 0 eee eesceseceseceseceeecaeeeeeeeeeeeeeeeeeneeens 17 Selecting the URLs or Editing the URL Sept 17 ii e Webserver Stress Tool Using Simple URL Sequences enee riisi ir nen ri E E iir Eh eer Ei EES 17 Choosing the URL Sequencing esesseeeeseeeseeesesrterrserrreserrteresresresrerrssesrresesreees 18 Using the URL Recorder iss css 25ecaesescaeessevessgss opesyesssteictsses ips ese onere esek 19 Setting Up the Data Merging Feature cece eeeeeeeeceeeceeecesecsecnsecaeeneeeas 20 Tutorial f
5. and hits e One user can conduct several transactions e g visit a homepage search for a product view a product s details buy a product etc e One transaction can create several page views e g add products to the shopping cart go to the checkout enter credit card etc e One page view can create multiple hits eg framesets images applets etc for a single webpage For Existing Websites If you already have your website online a good way to start calculating the load and load pattern is to use a good log file analyzer on the log files produced by your webserver Web log file analyzer tools will help you determine how many people access the site per day and per hour what pages scripts are used how often etc These logs will help you determine how many visitors and page views you have at specific times of the day as well as what your busiest day time is and what pages are most popular For New Websites If you are working on a new website you have to ascertain load and load pattern yourself One way to define the load pattern is e Step 1 Come up with the target number of users e Step 2 Define a couple of different model users e g teenager business professional senior citizen etc and surf from their point of view through the website Track the web pages they access and gather these stats Playing With Numbers At the end you should have a list of URLs and their frequency of use Try to answe
6. homepage URL such as www company com which redirects to a frameset In this view the arrow is the first request to the company URL The request is then redirected to a frameset page second arrow which consists of several HTML pages frames blue arrows The html pages of each frame then has their images green and red arrows In total a visitor of this webpage needed at least 5 seconds for the complete page to load That s very slow Graph Spectrum of Click Times This graph shows the distribution of user wait times for each run in the test Spectrum of Click Times How many users waited for how long under what load to complete a click Number of Users User Wait Tithe D s Only first 1000 tems were graphed Test Type RAMP run test for 400 minutes User Simulation ramp test with up to 1 200 simultaneous users 7 seconds between clicks BRESSLER S Webserver Stress Tool This sample graph shows the results of a Ramp Test The three axis are e Vertical percentage of users e Horizontal user wait time e Depth number of users At the beginning of the test first bars at the front of the chart most users get request times below 2 seconds 50 e Analyzing Graphical Results Webserver Stress Tool MI ws s User Wait Tim With more and more users accessing the server the request times deteriorate The bar s maximum is moving from left to right with increasing depth In this othe
7. Count characters or elements starting at S Index s Copy testtext 1 4 Delete var S string Index Count Integer Delete removes a substring of Count characters from string S starting with S Index a testtexttext Delete a 4 4 Insert Source string var S string Index Integer Insert merges Source into S at the position S index a testtexttext Insert text a 5 Pos Substr string S string Integer Pos searches for a substring Substr in a string S Substr and S are string type expressions Pos searches for Substr within S and returns an integer value that is the index of the first character of Substr within S Pos is case sensitive If Substr is not found Pos returns zero a pos sub textsubtest Length a string integer Length returns the number of characters actually used in the string or the number of elements in the array a length teststring UpperCase s string string UpperCase returns a copy of the string S with the same text but with all 7 bit ASCII characters between a and z converted to uppercase To convert 8 bit international characters use AnsiUpperCase instead a UpperCase Test LowerCase s string string LowerCase returns a string with the same text as the string passed in S but with all letters converted to lowercase The conversion affects only 7 bit ASCII characters between A and Z To convert 8 bit international characters use AnsiLowerCase a LowerC
8. EE caphastQeeuan en caeesstiebbiss eege 61 TL statements coesione eE ree E EE ESOR E ESETE EEEE E EEE re 62 Whil statementSi eg oreet ii erobert orris Ee estr ENEE cope SEE EER EES 62 loop StateMents geg EAEEEEEEENEEEE rE EEEE esee EES EEEIEE R EE EEEo EES 62 for statements e iinr aree ET eaaa EEE E Ee E E EEIT EEES EErEE E rite 63 Select CASE statements in iser esise iE r ep E EErEE E EEEE E eseu 63 function and sub declarapon cece ecseesceeeceseceecesecesecsaecseecaeeeseseeeeeeeeneees 64 Additional FUnCHONS sosise oerien ereer eree er ukk e Tkt rrie eh Seo sra 64 Useful RECS a EE Sa aed ae gaa staan nas tet aie see esha 64 iv e Contents Webserver Stress Tool Introduction Testing Basics Why testing Webserver Stress Tool The Business View Many websites today have a serious business mission to make money And whether that s through providing custom content and proprietary services through advertising opportunities or by selling retail products these high traffic websites and applications need to be up and running at all times Because if performance slows even a little fickle web users are likely to jump quickly to a competitor s site The message to website owners is clear Test and monitor your website Few websites if any perform exhaustive testing Usually focused solely on catching bugs many websites ignore functionality testing usability testing and performance testing three critical elements in defi
9. I Simulate Maximum Data Rate for Client kByte s 64 J Enable Cookies rRecursive browsing HTML parsing needs a lot of CPU power use with caution I7 Download Image URLs PE I Download EMBED OBJECT and FLASH fe Log Files Download Frames IFrames a tini Follow REFRESH Meta Tags HTML Meta Refresh Graphs First you need to note that Webserver Stress Tool simulates a browser only from a server s point of view e g sending the requests etc but does not simulate the rendering on the client s screen or the execution of client side scripts Thus Java applets Javascripts etc are not executed running scripts of many users would also put excessive load on the client s CPU For example a scripted inclusion of a banner ad is not processed and thus the image request is not sent to the server The implication is that the performance effect of such client side portions of the web application cannot be measured by this webserver loading stressing technology Also any requests that are generated through Javascripts will not be processed so use the Custom URL Script to add the these URLs manually Browser Simulation If you use a proxy server select Use Proxy and enter the address and Port of the proxy If your proxy server requires authentication select Use Proxy User and enter the USername and Password IMPORTANT It is not recommended to run tests across proxy servers
10. Server and User Bandwidth 00 0 eeeeeceeeseeeeeeeccesecesecesecaecnaecsaecaaeeaeseaeseeeeeens 51 Graph Open Requests and Traffte eee cece eseeeneeeeeesseeeeeesecnsecesecsaecsaecsaeeseseseeeeeeeees 52 Graph Protocol TIMES nsista casusstsesseeven capesstveseie opoasesssdedsesses chee ssteebebse gp chsenedbeeshs 52 Graph Test Client s Heal this ege ssctssaeeatiasts Te EEA a a EAE EE 53 Creating Reports 55 Report Word edd EENS Eege EEN 55 Report HEME EAER AT tbs Si caak tetas hey Ueteeh tage E egeger beet 56 Additional Features 58 Working with Different Test Scenarios 0 0 0 0 ce eeeeeeeeeeeeceeeceseceseceseceaecsaecseecseeeaeeeeeeeees 58 Command Line Interface siise iiri res aser o er ee r EEE EA dee 58 Running Several Tests at ONCE 0 2 0 0 cece seeseseeeseeevenseoncesneb esse seossesnsecnsessevsnevsnevstsesssnsnens 58 Usine KEE 58 Tips and Tricks 59 Check out the Paessler Knowledge Base 59 Recording HTTP URLs for Complex Web Applications 0 0 e cece ceeeceecseeereeereeeeeeenees 59 Appendix 59 script Syntax Tor URE SCripts sii 0s Seiwa csseasers teen E RE deed Eed uefee eerste 60 Basic Synta R scoxtente e ee eebe ere dees ee 60 SCH PU SUCUT seggt dee Eeer ee es 60 ru ET 60 EE 60 Character String sisie retoer eera ee oap EEEE EEst EESE EEES EEES EE EE aE E ri 61 COMMENES seia esine ar oeer Eei E ESEE case EEEE Eese EE EErEE T E S EE EE chee E ries 61 K 61 TEX ES oes egene Eeer ee Eege EE E eee nates 61 INTEAY P
11. Some sites use the Refresh meta tag as means of redirection To follow these redirections select Follow Refresh Meta Tag The HTML is parsed for lt meta name refresh content time url gt tags As soon as a tag is found a request is sent to the server the time value is not used Note HTTP header redirects are always processed Setting Program Options On this tab you can edit various program options Webserver Stress Tool Configuring Webserver Stress Tool e 35 Webserver Stress Tool 7 Trial Version BAE File Test Help E E a Save Start Test Help Set Program Options S Webserver Stress Tool Advanced Settings Test Type J7 Save All HTML Files To user click request htm nto N Link Checker record all lt a gt link URLs and check URLs after load test is completed Local URLs only Hide Stress Tool Window for maximum performance on slow systems URLs mp flogging ocal IP Adresses To Use _ L IV write Detailed And User Logs I Write Headers To Log V 10 0 0 198 Browser Settings Write Request Log C5 Write HTML Data To Log Iw Store logs in a ZIP file after test Write Headers HTML On Error only Iw Open HTML Report after test Open WORD Report after test p Timer J Start Test t 14 03 2005 wel 14 35 56 Select All Select None Log Files il Graphs Advanced Settings The HTML results of all requests can be written to a disk file by select
12. Times and Errors Click Time Hits s amp Clicks s Protocol Times System Health Options Volume amp Bandwidth Logging Write detailed log s Timer not enabled Using Local IPs 10 0 0 138 Client System Results per URL System Windows 2000 V5 2 Build 3790 CPU Proc Type 586 Rev Logfiles 772 at 2800 MHz Click Time Spectrum Results per User Detailed Log txt 53 MB Memory 1738 MB available RAM of 2146 MB total physical RAM 3869 MB available pagefile 4078 MB free disk space on C Client s MAC 00 50 56 cO 00 08 User O0001 txt 1 MB address Summary Log txt 0 MB User 00002 txt 1 MB Client s MAC 00 50 56 CO 00 01 address User 00003 txt 1 MB Client s MAC 00 CO 9F 3F 28 26 User 00004 txt 1 MB address User 00005 txt 1 MB Time measurement 0 0035710000 psec clock runs at 2 800 MHz User 00006 txt 1 MB resolution User 00007 txt 1 MB E Webserver Stress 7 0 0 152 Trial Version 4 Tool item ee LL ay computer Webserver Stress Tool Creating Reports e 57 Additional Features Working with Different Test Scenarios Each test scenario can be saved to disk using the menu option File Save Scenario as Each scenario consists of two files a INI file and a DAT file Using File Open Scenario File the scenarios can be reloaded again later Command Line Interface Webserver Stress Tool offers a command line interface to automate testing By using webstress8 exe scenarionfile ini as
13. Tool Find the Webserver Stress Tool group in your Programs Menu and select Webserver Stress Tool to start the program Selecting the Test Type and the Number of Users When you start Webserver Stress Tool for the first time you will be automatically directed to the Select Number of Users and Test Type window You can also click on Test Type in the left toolbar to access this panel Webserver Stress Tool 7 Enterprise Edition Site License Save Start Test Help File Test Help Est SC Webserver Stress Tool fics Type Test Type Ze CLICKS Run Test with constant load until each users has generated a specified number of clicks Wei C TIME Run Test with constant load for a specified time RAMP Run Test with increasing load For a specified time URLs my Run until 2 Clicks Per User RS User Simulation Browser Settings Number Of Users Click Delay Seconds Random Click Delay Use per URL click delay Project Scenario Comments Operator This window allows you to enter the main test settings for the load pattern you want to simulate Test Type Webserver Stress Tool offers three main test types Webserver Stress Tool Configuring Webserver Stress Tool e 15 Test Type Ze CLICKS Run Test with constant load until each users has generated a specified number of clicks TIME Run Test with constant load For a specified time C RAMP Run Te
14. also write a VB Script that selects the URLs and other parameters Using Simple URL Sequences Please enter your URLs and if needed the other parameters for POSTDATA usernames and password into the table of URLs K o gt EY a Kei d Number of URLs f4 Add URL Delete URL Clear URLs URL Recorder Data Merging POST data or filename Username Password Homepage 5 http waw website com Shop Start Page 10 http www website com shop Shop Login 5 http www website com login cart 18remember 2 User Pass1 Order 10 http waw website com order item 2 amp count 2 User Pass1 Here is a description of each field e Name Select a descriptive Name for each URL entry This name will be used in the graphs and in the logfiles e g Homepage Search Shopping Cart Checkout etc Webserver Stress Tool Configuring Webserver Stress Tool e 17 e Click Delay Enter the time the simulated user will take to read the previous page The simulated users will wait for this time in seconds after the previous URL has finished loading until this next URL will be clicked e URL Enter the URL using the standard format hitp servername port path get params Here are some samples http www server com home http www server com 8080 myfolder myfile php http www server com signupform cgi username name e POSTDATA Usually Webserver Stress Tool creates GET requests If you enter data into
15. command line input you instruct Webserver Stress Tool to load the scenario run the test and export the results into MS Word The report and the log files are saved with a file name that includes the name of the scenario file Running Several Tests at Once To run several tests at once you must first make sure that only one instance of webstress8 exe is running in one folder That means that if you want to run several copies of Webserver Stress Tool at once you must make sure that each EXE runs in its own folder Simply copy the program files webserver stress tool 8 folder as often as you need it Then create a CMD batch file like the following Start folderl webstress8 exe folderl lstszenario ini Start folder2 webstress8 exe folder2 2ndszenario ini Start folderl webstress8 exe folder3 3rdszenario ini Using Tokens Some servers generate a session ID when a user logs into a site that has to be placed into all subsequent URLs You do this with Webserver Stress Tool by placing the token into the HTML code of the page following the login or anywhere else using the following code lt TOKENyoursessionidhereTOKEN gt Any code inside a HTML page between lt TOKEN and TOKEN gt is stored for each user individually and can be resent in the next URL s or POSTDATA by using the placeholder 58 e Additional Features Webserver Stress Tool Tips and Tricks Check out the Paessler Knowledge Base
16. contains only the most important results Time and Date of test Short results for all periods Short results of complete test Glossary The detailed log must be enabled on the options page contains all of the Summary Log information and 42 e Reviewing Logfile Results Webserver Stress Tool User Logs Results per User Webserver Stress Tool Test Setup Data URLs number of users etc Test process information e g waiting for timer Detailed results for all periods Failed Requests Results of complete test Glossary Locations were the log files were saved to This log file can grow very large Depending on your operating system Webserver Stress Tool may not be able to show the log file If this is the case please use an external editor Note Large log files cannot be opened on Windows 95 98 ME machines The detailed log file and the user s log files are written to the disk almost instantly during the test and so can be helpful in diagnosing problems in the event of an abnormal program termination The summary log is written to the disk at the end of the test If Detailed Log is enabled on the options page Webserver Stress Tool writes a log file for each user This log files contains Activity log and data of all clicks frames images redirects requests etc Time to first byte Time to connect and similar data of each request Optionally all header data HTML data cookie data image URLs and
17. find out what pages are slower than others e Users follow complete sequence All users will use URL 1 for the first click URL 2 for the second click and so on If a user reaches the last URL he will start with URL 1 again Use this setting to simulate paths through your website e g to put products into an order from a shopping cart e Users visit first X URLs then random then last X URLs All users will use the first X URLs top to bottom After that the remaining URLs are assigned randomly For CLICKS tests you have the additional option to set a number of URLs at the bottom of the URL list the users should visit at the end of the test This would be an appropriate test pattern if you have a website in which users have to login using a couple of URLs then surf around and log out at the end Using the URL Recorder Webserver Stress Tool offers a click recorder to build the list of test URLs Click on URL Recorder to start the click recorder ebserver Stress Tool URL Recorde elt Ka LS gt 2 wi Back Forward Stop AddURL Delete URL Clear URLs Save URLs URL Ea http www paessler com webstress PAESSLER Ri Keng Home em Webserver Stress Tool Products A res i w PRTG Traffic Grapher Gs wr IPCheck Server Monitor Webserver Stress Tool gt gt Webserver Stress Tool Free Downloads Features Guided Tour System Requirements Web Server Performance Load and Stress Test
18. frame URLs Select a user log in the list of log files by clicking on it with the mouse and the file will be shown on the right portion of the window The page Results per User Complete Test shows the resulting numbers for each simulated user Reviewing Logfile Results e 43 webserver Stress Tool 7 Trial Version File Test Help olx D E z w New Open Save Start Test Abort Test Report Word Report HTML Help re EXPAESSLER Webserver Stress Tool Graphs Results per User Complete Test Results per URL Complete Test Avg Click Time ms Bytes 1 875 1 875 1 875 1 875 1 875 1 875 1 875 1 875 1 875 1 875 1 875 1 875 1 875 1 875 1 875 1 875 1 875 1 875 1 875 1 875 4 ose CPU Load E 2596 1 Test Progress METOTA The data shown is the data aggregated over the complete test Right click the table for a context menu and you can copy the table to the clipboard or save it to a file Copy to Clipboard Save To HTML file Results per URL The number of hits errors and time usage of each URL is shown on the page Results per URL Complete Test Webserver Stress Tool 44 e Reviewing Logfile Results Webserver Stress Tool Webserver Stress Tool 7 Trial Version gt 8 Save Start Test Abort Test Ho a g Report Word Report HTML Sr SC Webserver Stress Tool Logfiles Results per User Complete T
19. inttostr data usernumber 1 Adding custom text to the HTTP Header request additionalheader MyOwnHeaderline OnAfterRequest OnAfterRequest is called after each single HTTP Request of a user i e clicks images frames etc and can be used to log data and parse the results E g if you need some part of the HTML code to be reused in subsequent requests this is the place to extract this string from the HTML Input Parameters data usernumber Integer Number of simulated user first user is 0 data clickcount Integer Number of finished clicks first click is 0 data requestcount Integer Number of finished requests first request 24 e Configuring Webserver Stress Tool Webserver Stress Tool is 0 data requesttype String Type of Request e g CLICK IMAGE FRAME request html String Resulting HTML of this request can be raw GIF JPG data for images request receivedheader String Resulting HTTP Headers from the server request result String Result of a request e g OK Error request resultcode String HTTP status code of a request e g 200 404 etc Output Parameters data log String If not empty this text is added to the user s log data token String Use this variable to store e g tokens from one click or request to the next request additionalheader String Additional lines for the HTTP header sent to the server
20. myurl3 end if Selecting the URL based on the clicknumber if data clickcount 0 then data url http myurl end if if data clickcount 1 then data url http myurl2 end if if data clickcount 2 then data url http myurl3 end if Setting the image URLs from the script instead of using the download images frames etc feature of Web Stress which is very CPU cycle consuming you can tell Webserver Stress Tool the URLs it should request after requesting the main HTML AddimageURL adds each assigned URL to the list of image URLs data addimageurl http my server com imagel gif data addimageurl http my server com image2 gif data addimageurl http my server com image3 gif Setting the Click Delay you can set the time before this user initiates his mouse click in milliseconds e g using a random value data clickdelay random 10000 data usernumber 40 Setting POSTDATA and credentials data postdata MyPostData data username username data password password Writing to the user s logfile data log Preparing click tinttostr data clickcount 1 of user inttostr data usernumber 1 Reading the POSTDATA from a file please edit the filename filepath for your needs data postdata loadstringfromfile D temp mypostdata OnAfterClick OnAfterClick is called after each click of a user and can be used to do some extended logging or to analyze the HTML code Input Parameters data u
21. this column the request will be sent as POST request using the data that you provide must be URL encoded You can also use the content of a file for the POSTDATA by entering the filename with at the beginning and at the end e g mypostdata txt Note This file must reside in the folder of the webstress8 exe file e Username Password If you use BASIC authentication see Hypertext Transfer Protocol HTTP 1 0 http www ietf org rfc rfc1945 txt RFC 1945 for an explanation of BASIC authentication enter the Username and Password for the URL here With BASIC authentication the login data is sent as part of the HTTP header in clear text This will obviously not work for login mechanisms that use HTML POR Ma You have to simulate these logins using GET FORM data Note 1 NTLM or other authentications are not supported Note 2 Don t mix up HTTP authentication and login mechanisms that use HTML forms e Note from RFC 2617 HTTP 1 0 includes the specification for a Basic Access Authentication scheme This scheme is not considered to be a secure method of user authentication unless used in conjunction with some external secure system such as SSL as the user name and password are passed over the network as clear text While editing the list you can use the following buttons e Click Add URL to add another line for a new URL at the bottom you can also directly set the Number of URLs in the edit box You can use
22. up to 1000 URLs e Click Delete URL to delete the currently selected URL e With Clear URLs you can clear the complete list e The easiest way to get this list of URLs is to use the URL recorder see below e Also the Data Merging feature is explained below Choosing the URL Sequencing This setting determines how Webserver Stress Tool assigns the URLs to the users during the test IRL Sequencing Users select URL for each click randomly Ze Users always click the same URL to spreads load evenly on all URLs set number of users to a multiple of the number of URLs Users Follow complete sequence top to bottom and again if not enough URLs available Users visit first URL s then random URLs then last Test type CLICKS only There are 4 options 18 e Configuring Webserver Stress Tool Webserver Stress Tool e Users select URL for each click randomly Using the built in random function Webserver Stress Tool simply selects one of the URLs for each click Depending upon your website this can be a good setting to create real world loads e Users always click the same URL In the beginning of the test each user selects a URL and clicks only this URL during the test To spread the load evenly on all URLs set the number of users to the number of URLs or a multiple of that This setting is very useful in comparing the request times of different webpages e g with different implementations of a feature or to
23. with 0 Errors 0 00 User 00001 txt 0 MB Average Click Time for 500 Users 268 ms User 00002 txt 0 MB Successful clicks per Second 94 57 equals 340 438 78 Clicks per Hour User 00003 txt 0 MB 7 User 00004 txt 0 MB Results of period 4 from 33 sec to 43 sec User 00005 txt 0 MB Ve e e ee reg eg EEN User 00006 txt 0 MB User 00007 txt 0 MB Browser Settings User 00008 txt 0 MB e User 00009 txt 0 MB Settings User 00010 txt 0 MB Results of period 5 from 43 sec to 53 sec User 00011 txt 0 MB Jeiedoobsoaisoiaisisabisibboia baa aoa Bao bo Be User 00012 txt 0 MB Completed Clicks 941 with O Errors 0 00 User 00013 txt 0 MB Average Click Time for 500 Users 328 ms Options i Completed Clicks 885 with 0 Errors 0 00 Average Click Time for 500 Users 274 ms Successful clicks per Second 85 87 equals 309 114 92 Clicks per Hour User 00014 txt 0 MB User 00015 txt 0 MB Test Results User 00016 txt 0 MB Results of period 6 from 53 sec to 63 sec User 00017 txt 0 MB rte drett dretter User 00018 txt 0 MB Completed Clicks 989 with O Errors 0 00 RE User 00019 txt 0 MB Average Click Time for 500 Users 260 ms il User 00020 txt 0 MB Successful clicks per Second 96 04 equals 345 730 02 Clicks per Hour Log Fies User 00021 txt 0 MB 104 eq g User 00022 txt 0 MB Lech User 00023 txt 0 MB lt l Graphs Simulated Users Successful clicks per Second 92 62 equals 3
24. you quickly ascertain and identify performance problems so that you can quickly correct them to prevent user dissatisfaction and potential loss of revenue Through an intuitive interface flexible testing parameters and comprehensive reporting Webserver Stress Tool provides you the tool to include performance testing as a regular part of website and web application maintenance and deployment Once your webserver has been deployed with the correct configurations based upon performance testing you may also consider deploying a 24 7 monitoring application Paessler s PRTG Network Monitor http www paessler com can help you keep a constant vigil eye on your investment in web architecture technology The Technical View Although Webserver Stress Tool and performance testing in general solve key business issues such as up time user experience and ROI performance testing has a number of technical considerations to ensure that those business issues are resolved For example consider the following questions e Is your webserver prepared for the traffic you are expecting e Is your webserver prepared for increasing visitors over the months and years to come e Can your webserver survive a massive spike in user traffic e g if your website is mentioned on national TV or your company emails a newsletter to all customers and prospects e How many users can your webserver handle before users start getting error messages or server
25. 0 140 160 Time Since Start of Test s V Server Bandwidth kbit s V Avg User Bandwidth kbit s Test Type RAMP run test for 3 minutes User Simulation ramp test with up to 100 simultaneous users 2 seconds between clicks EDPAESSLER SC Webserver Stress Tool In this graph we can see that the average bandwidth available per user goes down from 360 Mbit to 80 Mbit when the number of users climbs from 1 to 100 users Graph Open Requests and Traffic This graph shows the number of open requests as well as the number of sent and received requests in comparison with the network traffic Open Requests amp Transferred Data Active Users 2555122204 285 367 448 530 611 693 774 BSS 937 1032 1141 1256 1300 1300 1300 sg Yapimpueg eer Bag Graph Protocol Times 45 40 T o fos D bi D F a Lan f 2 F amp 25 CG C SS fi S 20 F Hs Ei 10 5 5 000 10 000 15 000 20 000 Time since start of test s J Open Requests V Sent Requests per second JV Received Requests per second V Network Traffic kbit s Test Type RAMP run test for 400 minutes User Simulation ramp test with up to 1 300 simultaneous users 7 seconds between clicks EDPAESSLER SC Webserver Stress Tool 52 e Analyzing Graphical Results An HTTP request consists of several stages First the webserver name has to be resolved into an IP address using DNS Time for DNS then an IP port is opened on the server by the
26. 33 443 08 Clicks per Hour 9 Preparing Waiting Clicked Images Frames Click Done Errors J User Halted Running with 500 users Clicks to go 4 124 CPU Load eo Test Progress 5996 During the test you can navigate through all settings pages but you cannot change the program and test settings You can however look at the test results already during the test As long as the test is active there is a graphical view of the simulated users at the bottom of the window Each user is shown by a rectangular area with a color showing the status of the user This graph is updated every few seconds and will therefore not show all possible states for all users that would slow processing down But nevertheless this visualization provides a good illustration of what s going on in the test Also watch the status line at the bottom of the window for status information about the test By clicking Abort Test you can stop the test at any time When the test is finished the system will notify you with an audible sound a beep You can then review the results 40 e Running the Test Webserver Stress Tool If you have enabled Store logs in a ZIP file after test in the options all results have been stored into one ZIP file for later reference As soon as the test is finished you will see the report in your web browser or in Word if you have enabled Open HTML Report after test or Open WORD Report after te
27. It is always a good idea to check out the Paessler Knowledge Base which includes a number of technical articles about Webserver Stress Tool http kb paessler com Recording HTTP URLs for Complex Web Applications For load and stress testing tools like Webserver Stress Tool you need a list of URLs to be tested For complex applications using several frames or popups it can be quite complicated to come up with this list of URLs The solution is using an HTTP logging proxy To load performance and stress test an HTTP application or web server using a HTTP request generator like Webserver Stress Tool you must have a list of URLs the testing tool generates requests for Because Webserver Stress Tool does not simulate all the client processes e g javascripts it cannot come up with this list of URLs Why doesn t Webserver Stress Tool simulate everything that happens inside the browser The answer is PURE POWER Simulating the javascripts of hundreds or even thousands of users would make the test client machine so slow you wouldn t get a stress or load test for the server anymore The built in URL recorder of Webserver Stress Tool works fine with simple web front ends But as soon as more than one pop up several frames AJAX features or Flash are used the recorder hits its limits The solution is to use an HTTP logging proxy You configure Internet Explorer or any other browser to access the web application to be tested through this p
28. Webserver Stress Tool aggregates a number of different testing elements to help you get a holistic view of your entire website webserver application performance Click Time A simulated user s mouse click that sends a request one of the URLs from the URL list to the server and immediately requesting any necessary redirects frames and images if enabled The click time is calculated as the time between when the user clicked and when the server delivered the requested resources with all referenced items images etc Average Click Times The average values per URL per user or per website Time for DNS Time to resolve a URL s domain name using the client system s current DNS server Time to connect Time to set up a connection to the server Time to first byte TFB Time between initiating a request and receiving the first byte of data from the server Request Time TLB Time to last Byte Time for a single HTTP request De HTML page image frameset etc User Server Bandwidth The bandwidth a user and a server were able to achieve Sent Requests Number of requests sent to the server during a period Received Requests Number of answers received from the server during a period Open Requests Number of open request for a given moment Error rates Number of failed request per time period per user or per URL Webserver Stress Tool generates the applicable data elements for a specific test into a CS V format lo
29. Welcome Welcome to Webserver Stress Tool Freeware Webserver Stress Tool Most websites and web applications run smoothly and correctly as long as only one user e g the original developer or just a few users are visiting at a given time But what happens if thousands of users access the website or web application at the same time Using Webserver Stress Tool you can simulate various load patterns for your webserver which will help you find problems in your webserver set up With steadily increasing loads so called ramp tests you are able to find out how much load your server can handle before serious problems arise Contents Welcome i Welcome to Webserver Stress Tool Freeware cccccsscceesscecessececsesceceesececsesaeeessseeeeees i Introduction Testing Basics 5 Why testing aneron R E E E E E E E A euseeeriaees 5 Th Business Viewer Eed eeee Eed 5 The T chnical VIEW er AE Bees ae T 6 Performance Load or Stress Testing sesssesssseseseeestessesesrsesrsrrestesstessresreseeesereseeesressree 7 Perfotmance KE 7 Toad KES E E A husk neice aba ita aes a woe eas 7 Stress legt ee wees ed aos hee nee i ees ti 7 Ramp Tests eeoa ra eoir a SEENEN EES EEN 8 Calculation of Load and Load Pattern cecccccesssscecsssececseeeeceseeeeceesseeecneeseeessseeesseaeees 8 For Existing WeDsites s icc scuscspesschtasasces capessscevess eg ET TE aE e EE EE ETRE si 8 FomNew Websites a e ed ade ei ae es et 8
30. ames in scripts variable names function and procedure names etc follow the most common rules in basic should begin with a character a z or A Z or _ and can be followed by alphanumeric chars or _ char Cannot contain any other character or spaces Valid identifiers VarName _ Some V1A2 Some Invalid identifiers 2Var My Name Some more This is not valid Assign statements Assign statements assign a value or expression result to a variable or object property are built using Examples Webserver Stress Tool MyVar 2 Button Caption This is ok Character strings Strings sequence of characters are declared in basic using double quote character Some examples A This is a text Str Text concat Comments Comments can be inserted inside script You can use chars or REM Comments finish at the end of line Examples This is a comment before ShowMessage ShowMessage Ok REM This is another comment ShowMessage More ok H And this is a comment with two lines ShowMessage End of okays Variables There is no need to declare variable types in scripts but you can optionally declare variables by using DIM directive and its name Indexes Strings arrays and array properties can be indexed using and chars For example if Str is a string variable the expression Str 3 returns the third character in the string denoted by Str wh
31. ase Test CompareSir s1 s2 string integer CompareStr compares S1 to S2 with case sensitivity The return value is less than 0 if S1 is less than S2 0 if S1 equals S2 or greater than 0 if S1 is greater than S2 The compare operation is based on the 8 bit ordinal value of each character and is not affected by the current locale Configuring Webserver Stress Tool e 29 b CompareStr Test test CompareText s1 s2 string integer CompareText compares S1 and S2 and returns 0 if they are equal If S1 is greater than S2 CompareText returns an integer greater than 0 If S1 is less than S2 CompareText returns an integer less than 0 CompareText is not case sensitive and is not affected by the current locale b CompareText Test test AnsiUpperCase s string string AnsiUpperCase returns a string that is a copy of S converted to upper case The conversion uses the current locale This function supports multi byte character sets MBCS a AnsiUpperCase Test AnsiLowerCase s string string AnsiLowerCase returns a string that is a copy of the given string converted to lower case The conversion uses the current locale This function supports multi byte character sets MBCS a AnsiLowerCase Test AnsiCompareSir s1 s2 string integer AnsiCompareStr compares S1 to S2 with case sensitivity The compare operation is controlled by the current locale The return value is less than 0 if S1 is less than S2 0 if S1 equal
32. asures vital parameters of the machine it runs on It can be helpful to find out if the limits of the test client have been reached Especially the line for the CPU Load pink should be well below 100 If you constantly hit values above 90 for the CPU load the test results may be incorrect Also the network traffic blue line should be below the physical limits of your connection to the server Webserver Stress Tool Analyzing Graphical Results e 53 Transferred Data amp System Memmory amp CPU Load Active Users 041 116 197 285 367 448 536 618 706 708 B69 957 1059 1175 1290 1300 1300 100 1 640 Ls Kl 1 630 een bin 600 BI 1 620 sso a a 70 o E 1 610 SO Se S o 1 600 450 e 9 S 400 Fso o p 4 1 590 350 S 8 gt 4i Kl gt 1 580 300 2 0 z 5 250 Lane amp 1 570 200 ZS Q K 1 560 150 20 100 10 1 550 50 0 5 000 10 000 15 000 20 000 Time since start of test s M System Memory MB V Network Traffic kbit s 7 Local CPU Load Test Type RAMP run test for 400 minutes User Simulation ramp test with up to 1 300 simultaneous users 7 seconds between clicks EPAESSLER D gt Webserver Stress Tool 54 e Analyzing Graphical Results Webserver Stress Tool Creating Reports Webserver Stress Tool offers two methods to export results You can export all resulting information into a MS Word document MS Office must be installed and you can create a number of HTML fi
33. c Word DecodeTime breaks the object specified as the Time parameter into hours minutes seconds and milliseconds DecodeTime 1 978 h m s ms DayOfWeek Date TDateTime Integer Returns the day of the week of the specified date as an integer between 1 and 7 where Sunday is the first day of the week and Saturday is the seventh a DayOfWeek 35065 Date DateTime Use Date to obtain the current local date as a TDateTime value The time portion of the value is 0 midnight d date Now DateTime Returns the current date and time corresponding to the sum of the value returned by the global Date and Time functions Now is accurate only to the nearest second t now DateToSir Date TDateTime string Use DateToStr to obtain a string representation of a date value that can be used for display purposes DateToStr 35065 3455 TimeToStr Date TDateTime string Use TimeToStr to obtain a string representation of a time value that can be used for display purposes TimeToStr 2445 3455 DateTimeToStr Date TDateTime string Use DateTimeToStr to obtain a string representation of a date and time value that can be used for display purposes 32 e Configuring Webserver Stress Tool Webserver Stress Tool Webserver Stress Tool DateTimeToStr 35065 3455 Arithmetic Functions Round a float integer Round function rounds a real type value to an integer type value a Round 12 5 Trunc a float integer The Trunc fun
34. cation RFC 2617 June 1999 http www ietf org rfc rfc2617 txt S Spero Analysis of HTTP Performance Problems http sunsite unc edu mdma release http prob html Webserver Stress Tool Appendix e 65
35. ccessfully tested Webserver Stress Tool with e more than 500 MBit s network load e more than 1 000 000 page views per hour and e up to 10 000 simultaneous users but the actual load you can achieve is highly dependent on your network infrastructure your server client hardware the file sizes and your web application Webserver Stress Tool can be used for various tests Webserver Stress Tool e Performance Tests are used to test each part of the webserver or the web application to discover what parts if any are slow and how you can make them faster Most often this is done by testing various implementations of single web pages scripts to determine a configuration of code that is the fastest e Load Tests are performed by testing the website using the best estimate of the traffic your website must support Consider this like a real world test of the website e Stress Tests are simulated brute force attacks that apply excessive load on your webserver Real world situations like this can be created by a massive spike in users caused innocently enough by a new advertising campaign e Ramp Tests are used to determine the maximum threshold of users that can be served before error messages are produced Webserver Stress Tool Features e 11 Testing Elements Other custom tests are also possible e g tests to make sure that web pages can be requested simultaneously without problems database deadlocks semaphores etc
36. client to send the request header Time to Connect The server then answers the request Time to First Byte and sends all data When all data is transferred the request is finished Click Time Also in this graph a line is shown for the time for local socket which is the time that Webserver Stress Tool needed to acquire an open socket from the IP Webserver Stress Tool stack of the machine it runs on For usual tests this value should always be in the lower millisecond area 1 30 ms For extreme traffic tests this value can rise above 50 100 ms which is a sign that the performance limits of the local machine have been reached The average value of these five readings are displayed in this graph Protocol Times for all URLs Active Users O34 82 43 211 278 346 414 482 550 618 686 754 821 889 957 1039 1134 1229 1300 1300 1300 1300 28 000 26 000 24 000 22 000 20 000 18 000 16 000 T 14 000 E 12 000 10 000 8 000 6 000 4 000 e 2 000 S e ed An italy VAAN AN ion 0 5 000 10 000 15 000 20 000 Time Since Start of Test s IV Click Time JV Time to First Byte V Time to Connect JV Time for DNS V Time for local socket Test Type RAMP run test for 400 minutes User Simulation ramp test with up to 1 300 simultaneous users 7 seconds between clicks A EPESSLER D gt Webserver Stress Tool Graph Test Client s Health For this last graph Webserver Stress Tool constantly me
37. ction truncates a real type value to an integer type value a Trunc 12 5 Dec a integer or float Dec subtracts one from a variable Dec a Inc a integer or float Inc adds one to the variable Inc a Random Random returns a random number within the range 0 lt X lt 1 A random 10 Filehandling Functions LoadStringFromFile filename string string Loads a file into a string S loadstringfromfile c yourpath myfile txt SaveStringToFile filename string Saves a string into a file savestringtofile s c yourpath myfile txt Other Functions Beep Beep generates a message beep Beep Constants crif Returns a line break string ASCII characters 13 and 10 S crlf quotechar Returns a quote character Configuring Webserver Stress Tool e 33 S quotechar colonchar Returns a colon character Setting the Browser Simulation Parameters Many characteristics of the simulated browser can be set by the user Webserver Stress Tool 7 Enterprise Edition Site License File Test Help D e E E New Save Start Test EDPAESSLER ress Tool Set Browser Simulation Parameters Webserver St Browser Simulation Test Type Use Proxy Port H bt wii P Password URL Iw Use Agent Mozilla s 0 compatible Webserver Stress Tool 7 Windows EI D Addtl Headers P Browser Settings Iw Use Timeouts Requests taking longer than this value s are discarded 120
38. d into a graph you can right click on the graph and then move pan the chart Graph s Context Menu By using each graph s context menu right mouse click on the graph you can copy the graph to the clipboard save it to disk as an image file or print it out Copy Graph To Clipboard Save Graph as Bitmap BMP Save Graph as Metafile WMF Print Graph Zoom Out Webserver Stress Tool Graph Click Times amp Errors per URL This can be considered the most important chart because it shows the average times and the rate of errors that the simulated users have experienced when downloading pages during the test For each URL this graph shows the request times of clicks and the percentage of errors in the lower part of the chart If you enable download images there are two more lines for each URL showing the average request times and errors for the images Click Times and Errors per URL Active Users O48 129 224 719414 509 604 699 794 889 984 1100 1236 1300 1300 V Req Times Homepage J Req Times CGI BIN M Errors Homepage M Errors CGI BIN 4043 n St r 0 5 000 10 000 15 000 20 000 Time Since Start of Test s Test Type RAMP run test for 400 minutes User Simulation ramp test with up to 1 300 simultaneous users 7 seconds between clicks EOPAESSLER DP Webserver Stress Tool This sample graph shows the results of a 400 minute ramp test w
39. e sent to the server and answered completely Hits can be the PAGE request of a click or its frames images etc Time for DNS Time to resolve a URL s domain name using the client system s current DNS server Time to connect Time to set up a connection to the server Time to first byte TFB Time between initiating a request and receiving the first byte of data from the server Click Time The time a user had to wait until his click was finished including redirections frames images etc Click Delay The time a user needs to view the webpage he just downloaded until he initiates the next click User Bandwidth The bandwidth a user was able to achieve Sent Requests Number of requests sent to the server during a period Received Requests Number of answers received from the server during a period Webserver Stress Tool Webserver Stress Tool Features Key Features Webserver Stress Tool simulates anywhere from a few users to several hundred users accessing a website via HTTP HTTPS at the same time Based on a set of URLs or using a VBScript the software simulates independent users requesting webpages from that URL including images frames etc Each user is simulated by a separate thread with its own session information e g cookies are stored individually for each user URLs can be parameterized for each user and the sequence of URLs can be varied How much load can Webserver Stress Tool generate We have su
40. e Test Setup e Select Test Type CLICKS set number of clicks to 3 set Number of Users to 10 e On page URLs e Set Number of URLs to 3 select All Users follow complete Sequence Enter the three URLs e For URL 2 enter the following in the POSTDATA column username 1 amp password 2 e For URL 3 change the URL like this hitp myserver data htm data 1 e Click on Data Merging e Enable Replace Placeholders and enable Use data1 dat for URL 1 e Click on Edit Datax dat e Answer Edit data for what URL with the value 2 e Enter the username and password combinations into column 1 and 2 and click OK e Again Click on Edit Datax dat e Answer Edit data for what URL with the value 3 e Enter the data for URL 3 into column 1 and click OK e Click OK again e Review all the other settings e Run your test At first all 10 users send a request for URL 1 which is the plain homepage Then each user requests the login htm URL but with the 1 and 2 in the POSTDATA field replaced by values from the file data2 dat so that every request is sent with different login data 1 is replaced with data from column 1 2 for column 2 If login html sends a cookie this cookie is stored individually for each user and is resent with the third request For the third click Webserver Stress Tool replaces the 1 placeholder with the strings from data3 dat thus sending 10 different GET URLs to the server along with the cook
41. e costs for correcting a performance problem escalate as the development process moves forward For instance discovering a performance problem after an application or website is already deployed means countless man hours to correct the server issue man hours that were already spent configuring the webserver or application the first time During software development all software engineers and the quality assurance team should have access to performance test tools to test their own code for performance and for parallel execution problems e g problems caused by database locks or other mutexes Software engineering managers for web projects are realizing that each developer must be responsible for both the functionality and performance of code As soon as several web pages are working the first load tests should be conducted by the quality assurance team From that point forward performance testing should be part of the regular testing routine each day for each build of the software Here are some glossary terms used very often in the manual and inside the software e Click A simulated mouse click of a user sending a request one of the URLs from the URL list to the server and immediately requesting any necessary redirects frames and images if enabled e Request An HTTP request sent to the server regardless of an answer Introduction Testing Basics e 9 10 o Introduction Testing Basics Hit A completed HTTP request i
42. e hits per second and the users per clicks The difference to the graph above is that this time the values are calculated for all URLs together The following graph shows the results of the same test as in the previous section Click Time Hits s Users s all URLs Active Users 041 IS 156 231 306 380 455 530 604 679 754 828 903 978 1066 1168 1270 1300 1300 1300 Step S SIH D 5 000 10 000 15 000 20 000 Time Since Start of Test s M Click Time ms JW Clicks per Second V Hits per Second Test Type RAMP run test for 400 minutes User Simulation ramp test with up to 1 300 simultaneous users 7 seconds between clicks BRESSLER D Webserver Stress Tool We can see that with more than 500 users the two lines for clicks per second blue and hits per second green differ more and more The reason is that hits includes requests that produce errors but clicks are only calculated from the requests that were successful Graph Hierarchy For each simulated request that Webserver Stress Tool sends to the server one arrow is shown in this chart Each arrow represents one hit i e one HTTP request The black arrows are pages i e HTML files the green arrows represent images the blue arrows show frame s and the red arrows show failed requests 48 e Analyzing Graphical Results Webserver Stress Tool Hierarchy and Times of All Hits Request Hierarchy N ma 5 000 10 000 15 000 20 000 25 000 T
43. e numbers are ascending and unique for each request Choose the first number bere I Replace in URL with ascending number starting at 1 E X mMData Merging Replace placeholders with data from CS file Using this feature it is possible to place data from textfiles into URLs POST Data Username or password This can be used to simulate transactions or to bypass any caching mechanisms Choose between one file for all placeholders of all URLs i e data det in the directory of the EXE file or a file For each URL i e datal dat for URL1 data dat for URL2 etc 3 The Files must be comma delimited text files The placeholders are 1 for column 1 of the current comma delimited line 2 for column 2 etc For each user one line is read from the datafiles If the end of a datafile is reached the file is reread from the beginning I Replace placeholders x with data from data det 1 up to 99 Edit data det a jz Edit datax dat Unique numbers in URL s Use this feature to have a unique number in the URL of each request e g cachebuster to bypass caching mechanisms Simply place the placeholder in the URL string s and it will be replaced by a number The numbers are ascending and unique for all users and clicks Replace placeholders with data from file Use this feature to place data from text files into URLs POST Data Username or password This can be used to simulate transaction
44. e to process those requests By changing your website or application code under repeated tests you can discover critical issues to address for optimal performance Usually this type of test is run without requesting page images in order to concentrate the testing on the script and code itself Load Tests Load tests are performed by testing the website using the best estimate of the traffic your website needs to support Consider this a real world test of the website The first step is to define the maximum time it should take from a usability and customer experience standpoint not a technical one for a page to load Once you have determined this you need to calculate the impact of exceeding that maximum time will you lose sales Will you lose prospective customers A good rule of thumb is to make certain that no website visitor waits longer than ten 10 seconds for a web page to load Once this threshold has been determined you have to calculate the anticipated load and load pattern for your website which you can then simulate through Webserver Stress Tool See the Calculation of Load and Load Pattern section for details on load and load pattern calculation At the end of the load test you can compare the test results with your maximum request time threshold When some page requests take longer than the target times or generate error messages it is clear that there is work to do to the application and webserver Stress Test
45. ecursive Browsing features can result in considerable processor load on the client machine which could result in inexact readings for the performance of the target server Keep an eye on the processor load of the client during testing and run the test with and without these features Compare the results to determine your client machine recursive browsing testing threshold By selecting Download Image URLs you instruct Webserver Stress Tool to parse all lt IMG SRC url gt tags from the HTML code and send a request for each IMG URL to the server as soon as the complete HTML is received If an image is used several times on the page it is requested only once Enabling Download EMBED OBJECT and FLASH also downloads these objects Select Show Images in Log and Show Objects in Log if you want to have a log file entry for each image in the detailed log otherwise only one entry is generated stating how many images have been found and requested If your site uses HTML Frame tags you must select Download Frames IFrames Webserver Stress Tool then parses the HTML code for lt FRAME gt and lt IFRAME gt tags For each Frame URL a request is sent to the server If this frame is a frameset again additional requests are made until no more frames are found Select Show Frames in Log if you want to have a log file entry for each frame in the detailed log otherwise only one entry is generated stating how many frames have been found and requested
46. eiten A utfomeny zs OOH ASE A O 4 A mag 1 52 Bei 24cm Zei Spi MAK AND ERW UB Deutsch fe Q Report HTML Click on Report HTML to create a set of HTML and images files with the results of the test Choose an item from the menu in the left frame to navigate through the results Note The files of the HTML report are deleted whenever Webserver Stress Tool is re started or when a new test is started 56 e Creating Reports Webserver Stress Tool E Webserver Stress Tool Repor crosoft Internet Explorer Isi E Datei Bearbeiten Ansicht Favoriten Extras ay O zur ck O x a PO suchen Se Favoriten Medien O7 B Adresse fe D Webserver Stress Tool 7 logs report html gt wechseln zu Links 7 A DDPAESSLER A Project and Scenario Comments Operator SC Webserver Stress Tool test setup Test Type RAMP run test for 400 minutes Test Report User Simulation ramp test with up to 1 300 simultaneous users 7 seconds Settings between clicks Test Confiquration SCH Period Log every 100 seconds Hebe URL Sequencing Users always click the same URL to spreads load evenly on Results and Graphs all URLs set number of users to a multiple of the number of URLs URLs Click here Browser Settings Browser Simulation User Agent Mozilla 5 0 compatible Webserver Stress Tool Hierarchy 7 Windows Open Requests amp Traffic Browser Simulation HTTP Request Timeout 120 s Click
47. erformance and smaller load tests a leased line with 500 kb s or more should be enough but more bandwidth will always give you more reliable results Furthermore you have to make sure that the travel time of the data is far below the request times you measure Otherwise measured values will be unreliable Everything below a 300 kb s connection should be considered vague testing although it can give good results under some circumstances e g for long running web server scripts that only produce very little HTML code The same applies for modem connections Test Client Issues Webserver Stress Tool For high loads gt 250 000 clicks h a client machine with multi processor or at least hyperthreading is recommended It is also recommended to frequently defragment the disk drive that Webserver Stress Tool is using for the logs because the high number of files growing steadily in small chunks can cause serious fragmentation Performance Tips amp Tricks e 39 Running the Test After setting all desired settings for Load Pattern and Browser Settings click on Start Test to make Webserver Stress Tool begin executing the test Webserver Stress Tool 7 Trial Version File Test Help o a Abort Test BRESSLER View Logfile Results e Webserver Stress Tool Logfiles Results per User Complete Test Results per URL Complete Test Summary Log a Summary Log Detailed Log txt 0 MB 24 Completed Clicks 983
48. es are used in a round robin manner for each simulated user As the first user uses the first selected IP address for all his requests the second user uses the second IP address etc Timer Using the Start test at feature you can postpone the start of the test to a specific date and time Configuring Webserver Stress Tool e 37 Performance Tips amp Tricks Finding the Bottleneck of Your Test Setup Network Issues 38 e Performance Tips amp Tricks When running load tests on a webserver you must make sure that you do not hit a performance limitation of your test client or your network The best way to find these limits is to run a ramp test with twice or three times the load you want to test with or even more and inspect the Test Client s Health graph afterwards The graph for Network Traffic and Local CPU Usage should ramp up with the increasing number of users When either one hits a plateau you have found your limit or the limit of the server E g if you are using a 100 Mbit network you may see the Network Traffic graph hitting the 100 Mbit s bandwidth limitation of your network hardware To distinguish between client network and server issues it is a good idea to also monitor the CPU Load Network of the server which will also help find out what the bottleneck is If Webserver Stress Tool already indicates a limit but your server is more or less idle you need a machine with more testing power Also keep an e
49. est Results per URL Complete Test 0 00 1 621 452 Browser Settings Settings Se Options Test Results The data shown is the data aggregated over the complete test Right click the table for a context menu and you can copy the table to the clipboard or save it to a file Copy to Clipboard Save To HTML file Reviewing Logfile Results e 45 Analyzing Graph Basics Graphical Results This section describes the various graphs that are created during the test Most graphs use the time since the start of the test as the horizontal axis Several graphs use more than one vertical axis the secondary axis are shown on the right side of the chart For ramp tests the number of users that were active at a given moment in time is shown on the top of the graph This axis is not linear because Webserver Stress Tool ramps to the highest number of users at 80 of the given test time Usage of the Graphs 46 e Analyzing Graphical Results Hiding Graph Lines Using the checkboxes in the graph s legends you can hide unhide individual lines from the chart Click Time ms Clicks per Second V Hits per Second Zooming Panning Graphs You can zoom any graph by left clicking on the graph and dragging the mouse from top left to bottom right of the area you want to zoom into Drag the mouse from bottom right to top left to zoom out again or use the context menu to do SO After you have zoome
50. file a savestringtofile d temp myfile mystring if a lt gt 0 then data log Could not write file result inttostr a end if Loading a file into a string data postdata loadstringfromfile D temp mypostdata The following Request for Comment RFC documents provide valuable general background information for web stress professionals W3C HTTP Specifications and Drafts http www w3 org Protocols Specs html Berners Lee T Masinter L and M McCahill Uniform Resource Locators URL RFC 1738 December 1994 http www ietf org rfc rfc1738 txt Webserver Stress Tool Berners Lee T Fielding R and H Frystyk Hypertext Transfer Protocol HTTP 1 0 RFC 1945 May 1996 http www ietf org rfc rfc1945 tx t Fielding R Gettys J Mogul J Frystyk H and T Berners Lee Hypertext Transfer Protocol HTTP 1 1 RFC 2068 January 1997 http www ietf org rfc rfc2068 txt Irvine Gettys Mogul et al Hypertext Transfer Protocol HTTP 1 1 RFC 2616 update to RFC 2068 June 1999 http www w3 org Protocols rfc2616 rfc2616 html Berners Lee T Fielding R and L Masinter Uniform Resource Identifiers URI Generic Syntax and Semantics RFC 2396 August 1998 http www ietf org rfc rfc2396 txt Franks J Hallam Baker P Hostetler J Lawrence S Leach P Luotonen A Sink E and L Stewart HTTP Authentication Basic and Digest Access Authenti
51. g file for easy viewing Test results can be viewed as Webserver Stress Tool also provides several ways to view results 12 e Webserver Stress Tool Features Several easy to use graphs Summary Log Detailed Log User Log for each user Machine readable request log CSV Raw graph data CSV Webserver Stress Tool Other Features e Built in report generator Reports can be generated as HTML files and MS WORD documents e Includes a URL recorder complete web browser to select the URL s you want to test rather than typing them into a list e Works on any HTTP URL or HTTPS URL and can test any script CGI ASP PHP etc e Can also be used to test requests of larger download files eg ZIP e Works with any webserver no part of the software has to be installed on the server e Includes support for e proxies not for HTTPS with optional proxy authentication e basic user authentication username password e useragent string e any HTTP request header lines e Individual cookie handling for each simulated user e g ASP Session IDs e redirected requests and http meta refresh redirections e several IPs for the client machine up to 5000 IPs e data rate throttling e g to simulate users accessing the server via a slow modem line e timeouts e g to simulate surfers that click away after 20 seconds without answer of the server e When testing more than one URL several URL selection methods can be se
52. gt lt directoryCategories gt lt documentFiltering xsi type xsd boolean gt false lt documentFiltering gt sendIndex xsi type xsd int gt 10 lt endIndex gt estimateIsExact xsi type xsd boolean gt false lt estimateIsExact gt estimatedTotalResultsCount xsi type xsd int gt 2Z8000 lt estimatedTotalResultsCount gt resultElements xmlns ns3 http schemas xmlsoap org soap encoding xsi type ns3 Array ns3 arrayType nsl ResultElement 10 gt lt item xsi type nsl ResultElement gt lt cachedSize xsi type xsd string gt llk lt cachedSize gt lt directoryCategory xsi type nsl DirectoryCategory gt lt fullViewableName xsi type xsd string gt Top Computers Software Internet site management Monitorin g lt fullViewableName gt lt specialEncoding xsi type xsd string gt lt specialEncoding gt lt directoryCategory gt lt directoryTitle xsi type xsd string gt lt b gt Paesslera lt b gt lt directoryTitle gt lt hostName xsi type xsd string gt lt hostName gt relatedInformationPresent xsi type xsd boolean gt true lt relatedInformationPresent gt snippet xsi type xsd istring gt Powerful easy to use software solutions from amp lt b gt Paesslera lt bagt Network management with lt bragt PRTG Network monitoring with IPCheck Server Monitor lt snippet gt lt summary xsi type xsd istring gt Provides software to test and monitor Etc URL Script Function Reference Gl
53. h click of a user This event can be used to set the URLs image URLs Postdata etc Input Parameters data usernumber Integer Number of simulated users first user is 0 data clickcount Integer Number of finished clicks first click is 0 data requestcount Integer Number of finished requests first request is 0 data token String Use this variable to store e g tokens from one click or request to the next see Advanced Samples section below Output Parameters data url String URL for the next click 22 e Configuring Webserver Stress Tool Webserver Stress Tool data addimageurl String Adds the given URL to the list of image URLs that are requested after HTML is received data postdata String POSTDATA for the next click data username String USERNAME for the next click data password String PASSWORD for the next click data clickdelay integer Time to wait before click is executed milliseconds data log String If not empty this text is added to the user s log data soapaction String If you want to test a SOAP server set this variable to the string of your SOAPAction see Advanced Samples Section below OnBeforeClick Samples Selecting the URL based on the usernumber if data usernumber 0 then data url http myurl end if if data usernumber 1 then data url http myurl2 end if if data usernumber 2 then data url http
54. he TDateTime values is negative Similarly to increment a date and time value by a certain fractional number of days add the fractional number to the date and time value EncodeDate Year Month Day Word DateTime Returns a TDateTime value from the values specified as the Year Month and Day parameters The year must be between 1 and 9999 Valid Month values are 1 through 12 Valid Day values are 1 through 28 29 30 or 31 depending on the Month value For example the possible Day values for month 2 February are 1 through 28 or 1 through 29 depending on whether or not the Year value specifies a leap year d EncodeDate 2005 6 5 EncodeTime Hour Min Sec MSec Word DateTime Encodes the given hour minute second and millisecond into a DateTime value Valid Hour values are 0 through 23 Valid Min and Sec values are 0 through 59 Valid MSec values are 0 through 999 The resulting value is a number between 0 Configuring Webserver Stress Tool e 31 and inclusive that indicates the fractional part of a day given by the specified time or if 1 0 midnight on the following day The value 0 corresponds to midnight 0 5 corresponds to noon 0 75 corresponds to 6 00 pm and so on d EncodeTime 19 5 4 200 DecodeDate Date DateTime var Year Month Day integer Breaks the value specified as the Date parameter into Year Month and Day values DecodeDate 35065 y m d DecodeTime Time DateTime var Hour Min Sec MSe
55. ies received in run 2 You can examine the log files to make sure that the data was sent in the way you expected Webserver Stress Tool Configuring Webserver Stress Tool e 21 Using Custom URL Scripts for Advanced URL Sequences If simple URL sequences are not flexible enough for your testing needs then you should consider using Custom URL Scripts to configure Webserver Stress Tool On the URLs tab choose Custom URL Script to enable this feature A code editor comes up where you can edit your URL Script Webserver Stress Tool 7 Enterprise Edition Site License Eile Test Help Help EXPAESSLER Webserver Stress Tool IRL Pattern Simple URL Sequence Default and DEMO Scr user first user s 0 lic first click is 0 requests first request i5 Log Files kb d S PAS DG he t ckdelay r i te millisel a stri this text sa to the user s 5 Graphs ae Sub OnBeforeclick SETTING THE URL smyur mys erver com D CPU Load Test Progress A good start is to click Default Script then Webserver Stress Tool will load the built in demo script The script language is very similar to VBScript and description of the syntax and a list of allowed commands can be found in the Appendix The script must define four main functions OnBeforeClick OnAfterClick OnBeforeRequest and OnAfterRequest OnBeforeClick OnBeforeClick is called before eac
56. igits integer string IntToHex converts a number into a string containing the number s hexadecimal base 16 representation Value is the number to convert Digits indicates the minimum number of hexadecimal digits to return a IntToHex 12 4 SitrTolnt s string integer StrToInt converts the string S which represents an integer type number in either decimal or hexadecimal notation into a number a StrToInt 12 SitrTolntDef s string default integer integer StrToIntDef converts the string S which represents an integer type number in either decimal or hexadecimal notation into a number If S does not represent a valid number StrToIntDef returns Default a StrToIntDef 12 1 FloatToSir a float string FloatToStr converts the floating point value given by Value to its string representation The conversion uses general number format with 15 significant digits s floattostr 1 234 Date Time Functions The script language uses the following definition for date and time values The integral part of a value is the number of days that have passed since 12 30 1899 The fractional part of a value is fraction of a 24 hour day that has elapsed Following are some examples of TDateTime values and their corresponding dates and times 0 12 30 1899 12 00 am 2 75 1 1 1900 6 00 pm 1 25 12 29 1899 6 00 am 35065 1 1 1996 12 00 am To find the fractional number of days between two dates simply subtract the two values unless one of t
57. ile Str I 1 returns the character immediately after the one indexed by I More examples MyChar MyStr 2 MyStr 1 A MyArray 1 2 1530 Lines Strings 2 Some text Arrays Scripts support array constructors and support for variant arrays To construct an array use and chars You can construct multi index array nesting array constructors You can then access arrays using indexes If array is multi index separate indexes using Arrays in scripts use a zero based index Some examples Webserver Stress Tool Appendix e 61 NewArray 2 4 6 8 Num NewArray 1 Num receives 4 MultiArray green red blue apple orange lemon Str MultiArray 0 2 Str receives blue MultiArray 1 1 new orange if statements There are two forms of if statement if then end if and the if then else end if Like normal basic if the if expression is true the statements are executed If there is else part and expression is false statements after else are executed Examples IF J lt gt 0 THEN Result I J END IF IF J 0 THEN Exit ELSE Result I J END IF IF J lt gt 0 THEN Result I J Count Count 1 ELSE Done True END IF while statements A while statement is used to repeat statements while a control condition expression is evaluated as true The control condition is evaluated before the statements Hence if the control condition is false at first i
58. ime Since Start of Test ms E Pages E Images V W Frames V I Errors Test Type CLICKS run test until 5 clicks per user User Simulation 1 simultaneous users 1 seconds between clicks EXPAESSLER D gt Webserver Stress Tool This sample chart shows clicks to several URLs with HTML pages single black arrow and pages with frames and images black arrow with blue arrows There are also some failed requests red arrows Hierarchy and Times of All Hits Request Hierarchy N p 23 000 23 500 24 000 24 500 25 000 25 500 Time Since Start of Test ms H Pages E Images V W Frames V I Errors Test Type CLICKS run test until 5 clicks per user User Simulation 1 simultaneous users 1 seconds between clicks A BDPAESSLER D gt Webserver Stress Tool The longer a request took the further right the arrow ends As soon as the HTML text of a page request is received the images are requested from the server and shown in the chart with the green arrows Note the red arrows which represent failed PAGE requests Here is an older example of a hierarchy graph Webserver Stress Tool Analyzing Graphical Results e 49 Hierarchy and Times of All Requests Request Hierarchy N wo gt SCH 500 1 000 1 500 2 000 2 500 3 000 3 500 4 000 4 500 Time Since Start of Test ms mm Pages mmm images mmm Frames mam Errors It shows the request hierarchy for one user to a website The website has a
59. ing Save all HTML files The file names are built from the user number and the user s click and request number Note Use with caution this option can use a lot of CPU resources on the test client The Link Checker stores all unique URLs from all requested HTML pages during the test run and tests all these URLs for broken links after the stress load test is finished The results can be found in the log files On slow client machines it might help to enable Hide Stress Tool Window to squeeze out a little more testing power mainly because it makes sure no CPU cycles are used for screen updates Logging Webserver Stress Tool always writes a summary log file during test For more detailed log files enable Write Detailed and User Logs A detailed log for the entire test and an individual log for each user s activity will be written to disk Please be aware that for high traffic load tests with hundreds or even thousands of users detailed logging can have a serious impact on the performance of the testing client and thus the measured values can be incorrect It is always a good idea to run heavy tests with and without detailed logging to compare the results especially keep an eye on the CPU load of the client Using Write Request Log CSV an additional machine readable log file can be created that has one line of data per request of the test This option is good if you need to process the results yourself Note The request log can als
60. it Next you have to enter the Click Delay time for the simulated users This setting is as important as the Number of Users The lower the delay time between clicks the greater the level of stress on your webserver Look at the estimated load calculation below the click delay setting to see what load your settings will create Important These two values are the most critical values you will enter To create the highest possible load set the delay time between clicks to 0 zero This way Webserver Stress Tool will send the next user request immediately after the previous request is finished Please note When using the value of zero a setting of 40 80 users should be enough for most tests higher values can decrease the load because of multithreading overhead By enabling Random Click Delay you can tell Webserver Stress Tool to randomly use a delay time between two clicks that is between 0 seconds and the number of seconds you entered in Click Delay This will make the test pattern even more dynamic but a little less reproducible 16 e Configuring Webserver Stress Tool Webserver Stress Tool Project Scenario Comments Operator This is a great place to enter information about the test Oe parameters reason for test etc This comment will be inserted into test reports later and can help you to recreate the test later if necessary Selecting the URLs or Editing the URL Script Click on the URLs button in the left ha
61. ith up to 1 300 users accessing two URLs of a webserver every 7 seconds One URL is a static HTML file Homepage and the other URL is a CGI script We can see that with the rising number of users the request times of the CGI script green line increase much faster than the request times for the static HTML page red line In fact until about 300 simultaneous users marked with T1 the request times for the static file don t change much at all Active Users O48 129 224 719414 509 604 699 794 889 984 1100 1236 1300 1300 s4013 o 5 000 10 000 15 000 20 000 Time Since Start of Test s Webserver Stress Tool Analyzing Graphical Results e 47 Then as the number of users crosses the 500 mark marked with T2 we can see that the first requests produce errors The graph of the percentage of errors gray and pink line goes up from 0 and keeps rising up to 50 until the end of the test We can conclude that this server can support about 80 100 users clicking either link every 7 seconds with an average click time of 2 seconds With more than 100 users the request times especially those of the CGI increase substantially This server cannot support more than 500 users because with higher loads up to 50 of the requests produce errors Graph Click Times Hits s and Clicks s This graph shows the average time a user waited for his request to be processed including redirects images frames etc if enabled th
62. lected to simulate different user behavior e Using a VBScript the URLs used for testing and various other parameters can be set individually e Tests can run e until a specified number of clicks is reached for each user e until a specified time has passed e Test can be started at a specified time e Optional link checker can check all URLs for validity e Test results can be stored into a ZIP for later reference Webserver Stress Tool Webserver Stress Tool Features e 13 Installation System Requirements The following Windows versions are supported Windows XP Windows 2003 Server Windows Vista Windows 7 Windows 2008 R2 32bit and 64bit versions are supported Additionally you need a TCP IP based network and a powerful test client machine Please also refer to the Performance Tips amp Tricks Section Installation Deinstallation To install Webserver Stress Tool run the setup exe from the distribution ZIP file It is a common setup routine that should be completely self explanatory 14 e Installation To uninstall the software at a later time use the Add Remove Software applet from Windows Control Panel After deinstallation please check the installation directory usually c program files Webserver Stress Tool for any files that must be deleted manually The de installation process does not remove files that were created by the user e g log files Webserver Stress Tool Configuring Webserver Stress
63. les These reports can be created manually or automatically as soon as the test is finished Please enable Open HTML Report after test or Open WORD Report after test in the options Report Word The best way to store all results of a test into one file is to create a DOC file If you have Microsoft Office installed on the client machine click on Report Word after a test is finished Export Results to MS Word xi elect Items To Include In Report Cancel Graph Click Times Hits s amp Clicks s all Graph Hierarchy and Times of All Requests Graph Click Time Spectrum JV Graph Volume amp Bandwidth JV Graph Open Requests amp Traffic IV Graph Protocol Times J Summary Log Detailed Log Select what data you want to include in the report As soon as you click OK Microsoft Word is started using OLE and the report is built A few seconds later you can edit print and save the report using all the normal functions of Microsoft Word Webserver Stress Tool Creating Reporis e 55 EE era eet Datei Bearbeiten Ansicht Einfiigen Format Extras Tabelle Fenster LDF SS OIF Bh Be za SE E E EA 44 Standard Arial 1 Arial 03 03 2005 223026 Test Report Webserver Load Performance Stress Test Test Type RAMP run testfor 200 minutes User Simulation ramp t d with up to 300 simultaneous users 12 seconds between clicks Comments E l S z 3 S z S z 3 a 8 d x I Z
64. nbeforeRequest data log end sub Sub OnAfterRequest if data clickcount 0 then we only look in the HTML of the first click for our tags if data requestcount 0 then we only look in the HTML of the first request of the first click for our tags tagbefore lt title gt tagafter lt title gt our tag token delimiters if pos tagbefore request html gt 0 then if pos tagafter request html gt 0O then tagbegin pos tagbefore request html length tagbefore taglength pos tagafter request html tagbegin mytag copy request html tagbegin taglength data log FOUND TOKEN 4 mytagt data token mytag else data log Closing Token not found tagafter in request number inttostr data requestcount with resultcode inttostr request resultcode request result end if else data log Opening Token not found tagbeforet in request number inttostr data requestcount with resultcode inttostr request resultcode request result end if end if end if end sub Load Testing SOAP Servers With Webserver Stress Tool you can perform load and stress tests for SOAP Servers SOAP Services SOAP method calls are nothing else than HTTP requests that send an XML dataset using a POST request to a webserver and then receive the results as an XML string Even though Webserver Stress Tool is not specialized in reading and writing the XML data for these requests you can still use it as a load ge
65. nd toolbar to display the Select URLs Window Webserver Stress Tool 7 Enterprise Edition Site License File Test Help D E E D a Save Start Test Help _ Select URLs or Edit URL Script Webserver Stone Ten neal FURL Pattern Tin Ze Simple URL Sequence est Type BE C Custom URL Script nto amp p a be 7 H Add URL Delete URL Clear URLs URL Recorder Data Merging URL Name ES Delay s JuRL Post data or filename Username Password Homepage 5 http www website com Shop Start Page 10 http www website com shop Number of URLs 4 E 1 2 3 Shop Login 5 http www website com login cart 18remember 2 User Pass1 4 Order 10 http www website comforder item 2 amp count 2 User Pass1 Options Test Results Log Files Hall FURL Sequencing Graphs C Users select URL for each click randomly Users always click the same URL to spreads load evenly on all URLs set number of users to a multiple of the number of URLs Users follow complete sequence top to bottom and again iF not enough URLs available Users visit First 1 URLs then random URLs then last Test type CLICKS only cPULoad 096 Test Progress You have two options to set the URLs for the test e Simple URL Sequence For most simple tests you can simply enter your URLs here and choose an URL sequencing option e Custom URL Script For more complex tests you can
66. nerator for your SOAP services This sample shows how to use Webserver Stress Tool to issue a SOAP request to Google s web services API Note Of course you should refrain from load testing Google s webservers 26 e Configuring Webserver Stress Tool Webserver Stress Tool The trickiest thing of course is to find out the three input parameters You must get this information from the SOAP server s documentation For Google these are HTTP URL http api google com search beta2 SOAPACTION urn GoogleSearchAction The XML POSTDATA for the request should be stored into a file on your disk To run a search request on Google the XML would be lt xml version 1 0 encoding utf 16 gt lt soap Envelope xmlns soap http schemas xmlsoap org soap envelope xmlns soapenc http schemas xmlsoap org soap encoding xmlns tns urn GoogleSearch xmlns types urn GoogleSearch encodedTypes xmlns xsi http www w3 org 2001 XMLSchema instance xmlns xsd http www w3 org 2001 XMLSchema gt lt soap Body soap encodingStyle http schemas xmlsoap org soap encoding gt lt tns doGoogleSearch gt lt key xsi type xsd string gt PLACE YOUR GOOGLE API ACCESS KEY HERE lt key gt lt q xsi type xsd string gt paessler lt q gt lt start xsi type xsd int gt 0 lt start gt lt maxResults xsi type xsd int gt 10 lt maxResults gt lt filter xsi type xsd boolean gt false lt filter gt lt restric
67. ning the user experience with a website or web application In short webmasters and developers should not only test for bugs test whether the website does what it is meant to do functionality testing and test whether the user is able to easily accomplish tasks and objectives on the website usability testing but they must also test whether the user gets results from the website in an acceptable time performance testing Performance testing is a critical component of your website or web application s overall success From a performance standpoint your goal is to ensure that your end user s or customer s mouse click is not met with silence Optimize your web server so that that 95 of all web requests are processed in less than 10 seconds 05 6 e Introduction Testing Basics Jakob Nielsen one of the foremost experts on software and website usability suggests the following performance thresholds for your website and or web application Download Time User s View lt 0 1s User feels that the system is reacting instantaneously lt 1 0s The user experience is not compromised Although the user is unhappy with the wait they are still focused on the current web page lt 10s As wait times get close to 10s studies have shown that the likelihood of user distraction increases greatly gt 10s User is most likely distracted from the current website and loses interest Webserver Stress Tool allows
68. o affect test client performance Choose Store logs in a ZIP file after test to store all the resulting log files as well as the configuration files of the test into one ZIP file for later reference The 36 e Configuring Webserver Stress Tool Webserver Stress Tool Webserver Stress Tool file will be stored in the zipped logs subfolder of the EXE s path and will show the date and time of the test in the filename You can immediately open the test report in your web browser or word if you enable Open HTML Report after test or Open WORD Report after test Webserver Stress Tool can also write all received data to the log file Select Write Header to Log for all data in the HTTP headers and Write data to Log for all HTML data of the requests When using Write on Error Only only the data of requests that result in an error are written to the log Local IP Addresses to use If the machine on which you run Webserver Stress Tool has more than one IP address you may select which IP address should be used to simulate the requests We have found that for most situations for HTTP load stress tests you usually do not need to have more than one IP address because the server answers all requests in the same manner regardless of the IP addresses Only if your website or application uses the IP address to follow the sessions of a user etc it is necessary to use more than one IP address If more than one IP address is selected the IP address
69. obal Variables In order to exchange data between the users threads e g for global counters use these global variables Global Variables global integer1 Integer Free usable global integer value global integer2 Integer Free usable global integer value global integer3 Integer Free usable global integer value global integer4 Integer Free usable global integer value global integer5 Integer Free usable global integer value global string1 String Free usable global string value global string2 String Free usable global string value global string3 String Free usable global string value global string4 String Free usable global string value global string5S String Free usable global string value global float Float Free usable global float date value global float2 Float Free usable global float date value global float3 Float Free usable global float date value global float4 Float Free usable global float date value global float5 Float Free usable global float date value Samples 28 e Configuring Webserver Stress Tool Webserver Stress Tool Webserver Stress Tool global integerl global integerl 1 global stringl global string1l MORE global floatl now data log counter tinttostr global integerl global stringl time timetostr global float1 String Functions Copy S Index Count Integer string Copy returns a substring containing
70. or Data Merging scis 3 2 c2scgeves cseessecesehse ep ARENDT oops sctestense pohsesedestees 20 Using Custom URL Scripts for Advanced URL Sequence 00 eee cee cseereeereeeeeeeeees 22 OnBefore Click eege kes seabeieioes capessntesssseegsnyedssteasbsses cope SEE Eo rR rE 22 OnBeforeClick Samples SEENEN EENEG AEE NEES 23 OmA fer Click gue es ta ca e aparia asst bbs E ETE EE saps EE gp EEE rE 23 OnAfterClick Samples e Eana rs e Eae E EEE T r E aE 24 OnBeforeRequest aii ea E E E o EE r EE ERTA 24 OnBeforeRequest Samples 24 OnAfterRegUE Sti sain ten E EEN 24 OnAfterRequest Samples eee ee eecceeceescesecesecesecaecuecseecaeseaeseeeeeeeeereneeens 25 Advanced URL Script Samples s sseseseeessseeesssteersstsessrsreersserrrssertrsrrstenreseerrnserersrerreneset 25 Reading a TOKEN from a page and reusing it on subsequent requests 25 Load Testing SOAP Servers ssseseseeessereeseeeseessrseesreserrreserreserreereseerrnserreseesreet 26 URL Script Function Reference eee eecescesecssecssecseecseecseseeeeeeeeeeeeeseseessecnseesseeaeenaes 28 Global Vapableg ee EEGENEN 28 String PUNCHONS 00 EE Eed 29 Date Time Functions ess aurere e ARE raS S E TSERE 31 Arithmetic FUnNCHOnS isisisi sossceseevccus tues cpscbevsechsuvecuscusseessebue E aas 33 Filehandling Functions 0 0 0 eee cee cseeeeeeeeeseeeseeeecesecesecsaecnaecsaecseeeaeseeeeeaeeaeens 33 Other FUNctiOns eeben EES 33 VE CHE 33 Setting the Browser Simulation Paramete
71. r sample the effect is still visible but the request times at the end of the test are still below 5s Spectrum of Click Times How many users waited for how long under what load to complete a click of users CUBELBRBE S48 HEEN AR Re Number of Users lt 2 ECH User Wait Time Note Only first 1000 items were graphed Test Type RAMP run test for 200 minutes User Simulation ramp test with up to 200 simultaneous users 12 seconds between clicks ft Cream SC Webserver Stress Tool The effect of this test on capacity planning is clear Consider that the maximum response time goal for each user should be ten 10 seconds or less With this goal in mind you have to make sure that your graph has its maximum at the lt 10s reading or better for the number of users you want to be able to support Graph Server and User Bandwidth Webserver Stress Tool This graph displays the bandwidth the server was able to deliver as a total as well as the average bandwidth that was experienced by the simulated users Analyzing Graphical Results e 51 Server and User Bandwidth Active Users 0 4 8 121519 23 2630 343741444851 SS 59626669737680 84 88 919598 100 100 100 400 000 350 000 Ri a Ki 2 300 000 wo bi Ei o e 68 o 250 000 N a E P d 200 000 200 000 150 000 an o Gi d Server Bandwidth kbit s 100 000 100 000 50 000 50 000 D T 0 40 60 80 100 12
72. r the following question for each test scenario Webserver Stress Tool e How many users constitute a normal load How many users constitute a peak load How many in each load were simultaneous e How much time elapses between each user click e What URLs are visited the most e Are there any paths through the site A path is defined as a per defined or intuitive manner through a specific sequence of URLs to access resources on your site Remember to factor into your analysis that there could be spikes in your traffic i e a holiday promotion or new advertising campaign Now feed this data into Webserver Stress Tool hit Start Test and keep your fingers crossed When Should I Start Performance Testing Glossary Webserver Stress Tool The answer is simple You cannot start performance testing early enough when building web applications For instance it s even a good idea to start performance testing before a single line of code is written By testing the base technology network load balancer application database and webservers early on for the load levels you plan to support you can better optimize your webserver and potentially avert business costs i e lost sales later on Discovering that your hardware configuration is inadequate when the application is deployed can be very expensive to correct Testing the server for its maximum stress level before development begins is an excellent idea Th
73. rg eceeceeceseceseceseceseceeecaeecaeeeseseeeeeeeeeees 34 Browser Simulations 2 scsch cece NEE nenene e an T E a no rE a 34 Recursive BIOWSIN oreen iei eeaeee o ae oE OEE EEE E EES a 35 Setting Program Options NEEN NEES roroi aeoiee aane r oa ron E iri as 35 Advanced Settings sirere eere e ee EE En EE E E EEE e aae 36 TOS GING ee EE E 36 Local IP Addresses to ee hes cosscsebscecobantennesetevsecsonuniensebscasenenonbenecbegbenbesseees 37 PUIG eOe N A E ETE EEEE EE E EE S 37 Performance Tips amp Tricks 38 Finding the Bottleneck of Your Test Setup esseseesseeesesreessseeesssrsersrrsresresreereserrrnsesrrsresee 38 Network Lopes 202 38 Test Client ISSUES enee eeneg Ad NE ees 39 Running the Test 40 Reviewing Logfile Results 42 Summary Log and Detailed Log 42 UL EE 43 Results per Heer ege eg roere SAS Ee eth nid vesbates 43 ResultS per UR ous eieiei 44 Analyzing Graphical Results 46 Graph Baies ees Hein ee era A ae A A ee 46 Usage of the Grape SEENEN AER EA 46 Hiding Graph Lines ue EEN bees dap teeseoeanes AN 46 Zooming Panning Grape 46 Graph s Context Menu visi Sec bia eee eee abet 46 Webserver Stress Tool Contents e iii Graph Click Times amp Errors per URL 47 Graph Click Times Hits s and Clicks S A 48 Graph Hierarchy 237 sicessctvseess op E EEEE a Eeer O E Eo REET a eer EEr E RS 48 Graph Spectrum of Click Times 0 0 eee ee ceecsecseeeseeeeeeeeeeecesecnsecaecnaecsaecaaeeaeseaeseeeeeens 50 Graph
74. roxy and the proxy logs all HTTP requests URLs POSTDATA etc so you can later extract the URLs and feed them into Webserver Stress Tool Good tools to start with are Fiddler Debugging Proxy from Microsoft http www fiddlertool com fiddler or HTTPTracer from Lazy Dog Software http www lazydogutilities com traceprev htm After you have your set of URLs it is very likely that you have to use placeholders to replace the per user data in these URLs sessions ids usernames passwords etc Use the placeholders and data merging of Webserver Stress Tool to accomplish this Appendix Webserver Stress Tool Tips and Tricks e 59 Script Syntax for URL Scripts 60 e Appendix Basic syntax e sub end and function end declarations e byref and dim directives e if then else end constructor e for to step next constructor e do while loop and do loop while constructors e do until loop and do loop until constructors e 4 and o0r lt gt gt lt gt lt div mod xor shl shr operators e try except and try finally blocks e select case end select constructor e array constructors x 1 2 3 e exit statement e access to object properties and methods ObjectName SubObject Property Script structure The script must contain the 4 necessary scripts defined as subs see Using Custom URL Scripts Section Identifiers Identifier n
75. s Stress tests are simulated brute force attacks that apply excessive load to your webserver Real world situations like this can be created by a massive spike of users caused by a large referrer imagine your website being mentioned on national TV Another example would be an email marketing campaign sent to prospective customers that asks them to come to the website to register for a service or request additional information An inadvertent denial of service to Introduction Testing Basics e 7 prospects who are ready to learn more about your product could have a serious impact on your bottom line The purpose of a stress test is to estimate the maximum load that your webserver can support Webserver Stress Tool can help you learn the traffic thresholds of your webserver and how it will respond after exceeding its threshold Ramp Tests Ramp Tests are variations of Stress Tests in which the number of users is increased over the life of the test from a single user to hundreds of users By reviewing the graphs of click times and errors a Ramp Tests can help you determine what maximum load a server can handle while providing optimal access to web resources Calculation of Load and Load Pattern 8 e Introduction Testing Basics Calculating the load and load pattern is probably the trickiest issue in conducting website performance tests First remember that there is a difference between users transactions page views
76. s S2 or greater than 0 if S1 is greater than S2 Note Most locales consider lowercase characters to be less than the corresponding uppercase characters This is in contrast to ASCII order in which lowercase characters are greater than uppercase characters Thus setting S1 to a and S2 to A causees AnsiCompareStr to return a value less than zero while CompareStr with the same arguments returns a value greater than zero b AnsiCompareStr Test test AnsiCompareText s1 s2 string integer AnsiCompareText compares S1 to S2 without case sensitivity The compare operation is controlled by the current locale AnsiCompareText returns a value less than 0 if S1 lt S2 a value greater than 0 if S1 gt S2 and returns 0 if S1 S2 b AnsiCompareText Test test Trim s string string Trim removes leading and trailing spaces and control characters from the given string S a Trim Test TrimLeft s string string TrimLeft returns a copy of the string S with leading spaces and control characters removed a TrimLeft Test TrimRight s string string TrimRight returns a copy of the string S with trailing spaces and control characters removed a TrimLeft Test IntToSitr a integer string IntToStr converts an integer into a string containing the decimal representation of that number 30 e Configuring Webserver Stress Tool Webserver Stress Tool Webserver Stress Tool b IntToStr 12 IntToHex value integer d
77. s or to bypass caching mechanisms Choose between one file for all placeholders of all URLs i e data da in the directory of the EXE file or a file for each URL oe datal dat for URL1 data2 dat for URL2 etc You can edit the files by clicking Edit data dat and Edit datax dat respectively If you need to edit the files manually please keep in mind the following Files must be comma delimited text files The placeholders are 1 for column 1 of the current comma delimited line 2 for column 2 etc For each user one line is read from the data files If the end of a data file is reached the file is reread from the beginning Note If there are spaces in a column please use quotation marks around the data and double quotation marks for a single quotation mark e g 1 one and two 3 4 four and five This is a quotation mark Tutorial for Data Merging Let s assume you have three URLs a user is required to go through to login into your site and do something e http myserver homepage htm standard homepage with a login form 20 e Configuring Webserver Stress Tool Webserver Stress Tool e http myserver login htm POST parameters are login password this page sets a cookie e http myserver data htm some GET parameters You want to simulate 10 different users logging into the site and going through these 3 URLs Using Webserver Stress Tool this can be done as follows e On pag
78. sec to 30 sec 12 zttittittittittitttitttttttttttttttttitttittittittttttitt 13 Completed Clicks 795 with 0 Errors 0 00 ut Average Click Time for 9 572 Users 583 ms 15 Successful clicks per Second 76 37 equals 274 939 82 Clicks per Hour 16 17 Results of period 2 from 30 sec to 40 sech L et teat ett tooo a ao ao oo 19 Completed Clicks 829 with O Errors 0 00 20 lAverage Click Time for 9 572 Users 180 ms z Successful clicks per Second 80 25 equals 288 908 30 Clicks per Hour 2 23 24 25 26 27 28 29 Results of period 3 from 40 sec to 51 sec Ttrtttttttttttttttttttttttttttttttttttttttttttttttttt Completed Clicks 860 with O Errors 0 00 Average Click Time for 9 572 Users 179 ms Successful clicks per Second 79 71 equals 286 971 14 Clicks per Hour Results of period 4 from 51 sec to 61 sec 30 CARR a CAE HBR RE AHR EAR ARE EE OE EE EE OE EO OE Oo EE a a a a Se L zla ceulo 25 1 Test Progress GOSS On the left you will find a list of available log files Simply click one of the entries to view the contents on the right If you enabled Write HTML Files to disk you can also select all the HTML files here All log files are saved to the logs subdirectory of the EXE s directory usually C Program Files Webserver Stress Tool 8 logs Summary Log and Detailed Log There are two main log files The Summary Log and the Detailed Log The summary log
79. sernumber Integer Number of simulated user first user is 0 data clickcount Integer Number of finished clicks first click is 0 Webserver Stress Tool Configuring Webserver Stress Tool e 23 data requestcount Integer Number of finished requests first request is 0 Output Parameters data log String If not empty this text is added to the user s log OnAfterClick Samples Writing to the user s logfile data log Finished click inttostr data clickcount 1l of user inttostr data usernumbert 1 OnBeforeRequest OnBeforeRequest is called before each single HTTP Request of a user i e clicks images frames etc and can be used to log data or to alter the HTTP headers Input Parameters data usernumber Integer Number of simulated user first user is 0 data clickcount Integer Number of finished clicks first click is 0 data requestcount Integer Number of finished requests first request is 0 data requesttype String Type of Request e g CLICK IMAGE FRAME Output Parameters data log String If not empty this text is added to the user s log request additionalheader String Additional lines for the HTTP header sent to the server OnBeforeRequest Samples Writing to the user s logfile data log Doing a tdata requesttypet request for click inttostr data clickcount 1 of user
80. sidered 1 Examples SCRIPT 1 FOR c 1 TO 10 STEP 2 ac at CG NEXT SCRIPT 2 FOR I a TOb Isi 3 sum sum j NEXT select case statements Script supports select Case statements with following syntax SELECT CASE selectorExpression CASE caseexprl statementl CASE caseexprn statementn CASE ELSE elsestatement END SELECT if selectorExpression matches the result of one of caseexprn expressions the respective statements will be executed Otherwise elsestatement will be executed Else part of case statement is optional Example Appendix e 63 Useful RFCs 64 e Appendix SELECT CASE uppercase Fruit CASE lime Some code CASE orange Some code CASE apple Some code CASE ELSE Some code here END SELECT function and sub declaration Declaration of functions and subs are similar to basic In functions to return function values use implicit declared variable which has the same name of the function Parameters by reference can also be used using BYREF directive Some examples SUB HelloWord Some code here END SUB SUB UpcaseMessage Msg Some code here END SUB FUNCTION TodayAsString TodayAsString DateToStr Date END FUNCTION FUNCTION Max A B IF A gt B THEN MAX A ELSE MAX B END IF END FUNCTION SUB SwapValues BYREF A B DIM TEMP TEMP A A B B TEMP END SUB Additional Functions Saving a String to a
81. st in the options Webserver Stress Tool Running the Test e 41 Reviewing Logfile Results Click on Log Files to open the log file browser File Test Help Webserver Stress Tool 7 Trial ersion Biel Ea D Test Setup Browser Settings Settings Options Test Results Test s done a ES Open E Save View Logfile Results Start Test w OH Report Word Report HTML gt EXPAESSLER D Webserver Stress Tool Logfiles Results per User Complete Test Results per URL Complete Test Detailed Log txt 0 MB User 00001 Eet 0 MB User 00002 txt 0 MB User 00003 txt 0 MB User 00007 txt 0 MB User 00008 txt 0 MB User 00009 txt 0 MB User 00010 txt 0 MB User 00011 txt 0 MB User 00012 txt 0 MB User 00013 txt 0 MB User 00014 txt 0 MB User 00015 txt 0 MB User 00019 txt 0 MB User 00020 txt 0 MB User 00021 txt 0 MB User 00022 txt 0 MB User 00023 txt 0 MB User 00024 txt 0 MB User 00025 txt 0 MB User 00026 txt 0 MB User 00027 txt 0 MB User 00028 txt 0 MB User 00029 txt 0 MB User 00030 txt 0 MB User 00031 txt 0 MB Summary Log Test Logfile by Webserver Stress Tool 7 0 0 152 Trial ersion 1998 2005 Paessler GmbH http www paessler com Test run on 3 3 2005 8 16 25 PM 1 2 3 4 5 6 Project and Scenario Comments Operator re 8 10 11 Results of period 1 from 20
82. st with increasing load for a specified time Run until Clicks Per User e CLICKS the test is finished when each user has initiated the given number of clicks CLICKS tests are the right choice to test specific URL sequences e TIME tests that run for a specified number of minutes A timed test is often used for burn in tests e g to keep a server under full load for 10 hours e RAMP Ramp tests also run for a specified time but with increasing load from user to the specified number of users which is reached at 80 of test time During the last 20 the full number of users is active A Ramp Test is a great way to find out the limitations of your webserver or web application User Simulation Please enter the Number Of Users Webserver Stress Tool should simulate This is the number of users that simultaneously use your website ser Simulation Number Of Users Click Delay Seconds Random Click Delay Use per URL click delay The Number of Users can be a value between 1 and 10 000 But remember that the maximum number of simultaneous users that can be successfully simulated depends on the computing power of the client machine running Webserver Stress Tool and various parameters that you set later Webserver Stress Tool always shows the CPU load in the status bar at the bottom and also generates a client health chart during the test If your client machine runs at 100 CPU load you have hit your machine s lim
83. t xsi type xsd string gt lt safeSearch xsi type xsd boolean gt false lt safeSearch gt lt lr xsi type xsd string gt lt ie xsi type xsd string gt lt oe xsi type xsd string gt lt tns doGoogleSearch gt lt soap Body gt lt soap Envelope gt Having this information we can now set up the URL script for Webserver Stress Tool for our test By setting a value for data soapaction we instruct Webserver Stress Tool to actually send a SOAP request with content type text xml Sub OnBeforeClick data url http api google com search beta2 data postdata loadstringfromfile c yourpath soaprequest txt data soapaction urn GoogleSearchAction end Sub Sub OnAfterClick data log end sub Sub OnbeforeRequest data log end sub Sub OnAfterRequest data log end sub After running the test the results from Google can then be reviewed if you enable Save HTML to files Webserver Stress Tool Configuring Webserver Stress Tool e 27 xnlns xsi http wow w3 org 1999 XMLSchema instance xmlns xsd http waw w3 org 1999 XMLSchema gt lt SOAP ENV Body gt nsl doGoogleSearchResponse xmlns nsl urn GoogleSearch SOAP ENV encodingStyle http schemas xmlsoap org soap encoding gt return xsi type nsl GoogleSearchResult gt lt directoryCategories xmlns nsZ http schemas xmlsoap org soap encoding xsi type nsZ array nsZ arrayType nsl DirectoryCategory 0
84. teration the statement sequence is never executed The while statement executes its constituent statement repeatedly testing expression before each iteration As long as expression returns True execution continues Examples WHILE Data I lt gt X I I 1 END WHILE WHILE I gt 0 IF Odd I THEN Z Z X END IF X Sqr X END WHILE WHILE not done Some code here END WHILE loop statements Scripts support loop statements The possible syntax is DO WHILE expr statements LOOP DO UNTIL expr statements LOOP DO statements LOOP WHILE expr DO statement LOOP UNTIL expr Statements will be executed WHILE expr is true or UNTIL expr is true if expr is before statements then the control condition will be tested before iteration Otherwise control condition will be tested after iteration Examples 62 e Appendix Webserver Stress Tool Webserver Stress Tool LOOP UNTIL J 0 DO UNTIL I gt 0 Some code here LOOP DO K I mod J Je d J K LOOP WHILE J lt gt 0 DO WHILE I lt 0 Some code here LOOP for statements Scripts support for statements with the following syntax FOR counter initialValue TO finalValue STEP stepValue statements NEXT For statement set counter to initialValue repeats execution of statement until next and increments value of counter by stepValue until counter reachs finalValue Step part is optional and if omitted stepValue is con
85. timeouts e How many seconds does it take for a visitor to your website to receive a page after clicking on a link Under normal conditions Under heavy conditions e Does your application or shopping cart support simultaneous users e Are your scripts and databases optimized to run as quickly as possible and do they interact with each other correctly under heavy webserver loads e Is the web hosting service doing a good job Webserver Stress Tool e Is your webserver s bandwidth sufficient e Is your server hardware sufficient Performance testing as a valuable aspect of maintaining and growing the web portions of your business is about answering these questions To do an adequate job of representing your company to the world with your website you need to discover the answers to all of these questions Performance Load or Stress Testing Webserver Stress Tool Although many network technicians use these word synonymously there are subtle but important differences Performance Tests Performance tests are used to test each part of the webserver or the web application to discover how best to optimize them for increased web traffic Most often this is done by testing various implementations of single web pages scripts to check what version of the code is the fastest Webserver Stress Tool supports this type of test with the ability to run several e g 20 100 simultaneous requests on one URL and record the average tim
86. ye on the Protocol Times graph Under heavy loads sometimes the Time for local socket can rise sharply above 10 50 ms which also indicates a performance bottleneck For load and stress tests the network connection between the test client and the server is critical For the connection between the server and the test client you must provide the full bandwidth that an equal number of real users would use when accessing your server This means that you obviously cannot conduct a serious load test with 500 users requesting a 5 MB file over a single 56kb modem connection Additionally if your are running the test from a remote location the number and the performance of the hops router firewalls etc can influence the test The optimum testing environment is to run the server and client within the same networked environment i e on the same LAN For heavy load testing it is the best to connect both the client and server to a high performance network switch Since Webserver Stress Tool on a fast PC can easily work with more bandwidth than a 100 Mbit LAN can deliver even a Gigabit Ethernet may be a good idea For tests over internet connections like T1 DSL etc you have to make sure that the amount of data created by your tests does not exceed the bandwidth of these connections Use a bandwidth monitoring software like PRTG Network Monitor to monitor the bandwidth usage www paessler com prtg Webserver Stress Tool Usually for p

Download Pdf Manuals

image

Related Search

Related Contents

Converting an Inexpensive RC Helicopter into an  Brita LP Water Dispenser 43852 User's Manual  48265 Pressure Pro PC User Guide  Acco Portable Power Pack for Mobile Devices  manuale per l`operatore srm-220es avvertenza  1UタイプPCケース 取扱説明書  Mode d`emploi  LINE POWERED ADA TELEPHONE USER`S MANUAL  Manual de Instruções  Sony TDM-iP1 User's Manual  

Copyright © All rights reserved.
Failed to retrieve file