Details
-
Task
-
Resolution: Fixed
-
Critical
-
None
-
None
-
NDS Sprint 13
Description
Given the notes I have prepared in Confluence, several options have been proposed that might yield us relevant platform statistics. The purpose of this ticket is to perform a shallow dive into these and any other available methods for performance testing web applications, specifically client-side JavaScript applications.
Option 1: Selenium
Pro: Functionally, this is our best real-world test - this can load our actual AngularJS UI in an actual browser (i.e. firefox, chrome, etc)
Con:There is a slight chance that the macros can break any time we move any elements, even if only slightly, as recording macros in this way is very fragile.
Aside: It would be less fragile, yet more work, to properly implement E2E testing in AngularJS using protractor (via NDS-157)
Option 2: felt
Pro: Actually loads client-side JS code in a browser.
Con: Browser used to execute the tests is headless (PhantomJS), so we don't get the full render time that we would from a true browser.
Option 3: boom / hey / JMeter
This is a great test of the server's load
Pro: A widely-accepted way to test server-side load with plenty of options and alternatives available
Con: Doesn't really exercise the UI performance for client-side JavaScript frameworks like AngularJS
Each of these methods has their drawbacks, and none would be perfect (save for true E2E automation via NDS-157, which would take much more effort to complete).
This ticket is complete when we have taken a shallow dive into each of the above options and chosen the most desirable option, assuming an October deadline for beginning to admit live users into the Labs Workbench Beta.