Difference between revisions of "Website:Testing And Profiling"
From WormBaseWiki
Jump to navigationJump to search(6 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | + | ||
− | + | ||
+ | |||
+ | ''This document describes testing and monitoring of the web application.'' | ||
+ | |||
+ | = Unit Testing = | ||
+ | please go to [http://wiki.wormbase.org/index.php/Unit_Testing Unit Testing] | ||
+ | |||
+ | = System Testing = | ||
* Validation (HTML/CSS/XML) | * Validation (HTML/CSS/XML) | ||
* Security | * Security | ||
Line 7: | Line 14: | ||
* Browser compatability | * Browser compatability | ||
* Performance and stress testing | * Performance and stress testing | ||
+ | |||
+ | |||
+ | = Profiling the Web Application = | ||
+ | |||
+ | Debugging notes: | ||
+ | * RESTClient for Firefox | ||
+ | * Poster for Firefox | ||
+ | * Testing from the command line | ||
+ | ** http://stackoverflow.com/questions/1087185/http-testing-tool-easily-send-post-get-put | ||
+ | |||
+ | |||
+ | == Profiling Czar duties == | ||
+ | * Explore profiling options and discuss | ||
+ | ** Built-in server and Catalyst::Stats | ||
+ | ** -d profilers: Devel::NYTProf | ||
+ | * Add dynamically configurable profiling | ||
+ | * Identify and report bottlenecks | ||
+ | * Develop caching mechanism of ajax-requested widgets | ||
+ | |||
+ | == Using Devel::NYTProf == | ||
+ | |||
+ | === Profiling under the development server === | ||
+ | |||
+ | $ cd website/ | ||
+ | $ perl -d:NYTProf script/wormbase_server.pl | ||
+ | |||
+ | Use Apache's '''ab''' tool to simulate requests (-n) and concurrency (-c): | ||
+ | $ ab -n 1000 -c 5 http://localhost:3000/path/to/a/slow/page // Need to use 127.0.0.1 on Mac OS | ||
+ | $ GET http://localhost:3000/quit | ||
+ | $ nytprofhtml --file website/nytprof.out --out ~/nytprof --deletee | ||
+ | |||
+ | Unfortunately, '''ab''' can only request a single URL at a time. | ||
+ | |||
+ | === Profiling under FastCGI === | ||
+ | |||
+ | And here's how to profile a specific page running under Apache/FastCGI: | ||
+ | |||
+ | As a socket server (assuming that apache is configured as described in the [[Website:Deployment|deployment]] documentation, listening on port 8000. | ||
+ | cd website/ | ||
+ | perl -d:NYTProf script/wormbase_fastcgi.pl \ | ||
+ | -l /tmp/wormbase.sock -n 5 -p /tmp/wormbase.pid | ||
+ | |||
+ | In a separate shell... | ||
+ | |||
+ | $ ab -n 1000 -c 5 http://127.0.0.1:8000/path/to/a/slow/page | ||
+ | $ GET http://127.0.0.1:8000/quit | ||
+ | $ nytprofhtml --file /usr/local/wormbase/website/nytprof.out --out ~/nytprof --delete | ||
[[Category:Developer documentation]] | [[Category:Developer documentation]] | ||
+ | [[Category:QA (Web Dev)]] |
Latest revision as of 18:38, 18 June 2014
This document describes testing and monitoring of the web application.
Contents
Unit Testing
please go to Unit Testing
System Testing
- Validation (HTML/CSS/XML)
- Security
- Accessibility
- Usability
- Browser compatability
- Performance and stress testing
Profiling the Web Application
Debugging notes:
- RESTClient for Firefox
- Poster for Firefox
- Testing from the command line
Profiling Czar duties
- Explore profiling options and discuss
- Built-in server and Catalyst::Stats
- -d profilers: Devel::NYTProf
- Add dynamically configurable profiling
- Identify and report bottlenecks
- Develop caching mechanism of ajax-requested widgets
Using Devel::NYTProf
Profiling under the development server
$ cd website/ $ perl -d:NYTProf script/wormbase_server.pl
Use Apache's ab tool to simulate requests (-n) and concurrency (-c):
$ ab -n 1000 -c 5 http://localhost:3000/path/to/a/slow/page // Need to use 127.0.0.1 on Mac OS $ GET http://localhost:3000/quit $ nytprofhtml --file website/nytprof.out --out ~/nytprof --deletee
Unfortunately, ab can only request a single URL at a time.
Profiling under FastCGI
And here's how to profile a specific page running under Apache/FastCGI:
As a socket server (assuming that apache is configured as described in the deployment documentation, listening on port 8000.
cd website/ perl -d:NYTProf script/wormbase_fastcgi.pl \ -l /tmp/wormbase.sock -n 5 -p /tmp/wormbase.pid
In a separate shell...
$ ab -n 1000 -c 5 http://127.0.0.1:8000/path/to/a/slow/page $ GET http://127.0.0.1:8000/quit $ nytprofhtml --file /usr/local/wormbase/website/nytprof.out --out ~/nytprof --delete