load testing templates: artifacts of nyu’s load testing implementation

54
Load Testing Templates: Artifacts of NYU’s Load Testing Implementation Max Whitney & Erik Froese NYU/ITS/eServices

Upload: vinson

Post on 10-Jan-2016

72 views

Category:

Documents


3 download

DESCRIPTION

Load Testing Templates: Artifacts of NYU’s Load Testing Implementation. Max Whitney & Erik Froese NYU/ITS/eServices. Repeatable Load Testing Wow, it really is that time consuming. Max Whitney NYU/ITS/eServices [email protected]. Context. Current Environment. Blackboard Learning System - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Load Testing Templates:Artifacts of NYU’s Load Testing

ImplementationMax Whitney & Erik Froese

NYU/ITS/eServices

Page 2: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Repeatable Load TestingWow, it really is that time consuming.

Max Whitney

NYU/ITS/eServices

[email protected]

Page 3: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Context

Page 4: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Current Environment

• Blackboard Learning System– Fall 2006

• 5,219 sections• 127,899 enrollments• 3,964 instructors & 38,624 students

– Spring 2007• 4,952 sections• 146,889 enrollments• 4,329 instructors & 38,559 students

Page 5: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Under-served Communities

• School of Medicine• Math and Sciences• School of Continuing and Professional

Studies: The Virtual College, 100% online program

• School of Law: LL.M. in Tax, hybrid online and in person program

Page 6: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Long Time ListenerFirst Time Caller

• NYU joined as a Sakai Educational Partner in Summer 2004

• Local pilots– Stern School of Business – Computer Science Department of

Courant Institute of Mathematical Sciences

• Enterprise Pilot: September 2006

Page 7: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Phased PilotLacking the roll out support of commercial software, NYU is rolling out in phases, building the service with each phase:

• Documentation• User Support • Pedagogy Support• Critical System Support:

– Security– Integration– High Availability– Performance Assurance– Disaster Recovery

Page 8: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Snowballing to Production

Page 9: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

January 2007 Phase 1Dashboard (My Workspace) Web Content

Announcements Resources

Syllabus Assignments

Roster Default Discussion Board

Course Site Statistics Gradebook

Help Email Archive

23 Course Sites20 Faculty 891 Students

Backup & Disaster Recovery Implemented

Penetration Testing Passed & Security Report Filed

Smaller Summer Sets - 2 Phases

Page 10: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Critical System Support for Phase 3 - September 2007

• Integration with Student Information System• Performance Assurance

Page 11: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Repeatable Load Testing

• Select Software• Select Hardware• Identify Network Requirements• Identify Ancillary System

Requirements• Commit to Long-term Retention

Method for Tests, Results & Configurations

• Describe Test Cases• Identify User and Site

Characteristics • Identify Executive Stakeholders

• Identify Load Characteristics• Implement Test Cases• Create Test Users• Create Test Sites• Create Test Site Content• Test• Store Configuration and Results• Reset • Analyze Results• Report to Executive

Stakeholders

Page 12: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Load Testing Software

• Key questions– Is there a budget?

– Are there reasons to go with a proprietary or an open source tool?

– Does it matter if you can share your test case code?

– Where should it be in the adoption cycle?

– What internal expertise exists?

Page 13: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

NYU’s Choice

• The Grinder 3– No budget– Charged with using open source where mature– Others can use the resulting test cases– Neither bleeding edge nor nearing obsolescence– Jython/Python scripting in a Java framework

Page 14: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Artifacts

• Installation and Configuration Cheat Sheet – In progress– Shared

Page 15: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Load Testing Hardware

• Key questions– Buy or borrow?

– Where should machines live?– How many?

• Bleeds into Network Requirements

Page 16: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

NYU’s Choices• Console– Borrow– Least secure network consistent with data stored– Long term (near-permanent) cname

• Agents– Borrow– On same subnet as application, on NYU-NET, off NYU-NET,

across VPN, across NYU-DIAL, on NYU-ROAM– Number desired will be derived from test case characteristics– Number used will be negotiated with ‘volunteer’ organizations

• Network Requirements– Remember to handshake with the NOC early

Page 17: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Artifacts

• Derivation of agent machine counts – In progress– Shared

• Machinery– Not shared

Page 18: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Ancillary Systems• Key questions

– What are you really testing?– Are the any non-Sakai systems in the mix?

Page 19: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

NYU’s Answers• LDAP– Not testing the speed of our LDAP response– Don’t slow other production systems– Don’t expose real user dataSet up an independent LDAP system with well specified test

accounts and test passwords

• Automated data processes– Future issue– Disable non-core processes for duration of load testing– Schedule specific load tests to learn the impact of batch

processes on user response times

Page 20: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Artifacts

• None– Share test account specifications– Missing something shareable?

Page 21: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Long Term Retention

• Key questions– Retain results?– Retain test scripts?– Retain network and machine specs?– Retain configuration data?– Who is the data steward?– Where to keep it all?

Page 22: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

NYU’s Choices

• Retain Network and Machine Specs• Retain Test Scripts• Retain Results• Retain a Record of Versions and Configuration Settings• Without a formal QA department, Dev is the Steward• Subversion repository

Page 23: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Artifacts

• Subversion repository recommendations– Will share own best practices for

tagging/branching svn repository– Missing something shareable?

Page 24: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Itemize Test Cases

• Derived from existing Learning Management Systems in production

• Derived from actual Sakai usage in production

• Theorized for new tools

Page 25: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Blackboard Usage• Statistics information is exported to offline database

schema (bb_bb60_stats)• Query for counts

– Time blocks: pre-semester, first week, midterms, reading week, finals, one-time events

• Analyze events• Translate to Sakai equivalents• Derive relative counts of each activity for each time block

“Administrators have open access to the statistics database to use for analysis and creating reports.” at http://library.blackboard.com/docs/r7/70/en_US/admin/bbas_r7_0_admin/advanced_system_reporting.htm and http://library.blackboard.com/docs/cp/learning_system/release6/administrator/advanced_system_reporting.htm

Page 26: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Ah, Tedium

Page 27: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Artifacts

• Queries• Transliteration from leaf case to Sakai test• Multiplication factor from leaf case to event

– In progress– Shared

Page 28: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Sakai Usage

• In pilot, little valid data• Biggest usage results turned out to reflect

our pen testing

Page 29: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Theoretical Usage

• New tool means no historical data• Key is to identify and document all

assumptions• Update assumptions as data accumulates

Page 30: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Artifacts

• Sakai site statistics queries– In progress– Shared

• Assumptions worksheet– Not quite on the radar yet

Page 31: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Elements of a Test Case

• Name• Number - for correspondence to Grinder test• Human readable description• User type executing test case• Data assumed to exist before the test case starts• Success criteria - only successful tests are

counted in timing statistics• Categorization - login, logout, content read,

content create, discussion read, discussion write

Page 32: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Artifacts

• Test Case Documentation– Not started– Shared

Page 33: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Implement Test Cases

• The Grinder proxy captures clicks of a test case• Programmer effort

– Clean up proxy output– Parameterize user data– Parameterize course site data– Check for success criteria

• Not to be sneezed at• Test the Test Cases

Page 34: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Artifacts

• The Grinder Test Case Scripts– Not started– Shared

Page 35: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Create Test Users and Sites

• Now know user types required and relative counts of each type.• Now know data requirements for each test case, and the course sites

and starting contents required.

• Script the generation of users and sites, and of the data files used by The Grinder agents– LDAP account allocation

– Permissioning within course sites

– Content creation within course sites: seed content files, lorem ipsum

Page 36: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Artifacts

• User creation scripts• Course site creation scripts• Public domain content files

– Not started– Shared

Page 37: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Test

• Set up grinder configuration: counts, ramp up speed, duration

• Install The Grinder on agent machines to speak to common console

• Check in to subversion all documentation, test cases and configuration data

• Take a full back up of the target system

Run the test.

Page 38: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Test

bit anticlimactic really

Page 39: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Artifacts

• Configuration files• Target system characteristics• Raw results

– Not started– Shared

Page 40: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Reset the System

• Restore from the full backup

Page 41: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Results

• Commit the raw results to subversion alongside the tests and configurations used to generate the results

Page 42: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Report

• Report to stakeholders

Page 43: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Repeat Until Done

Page 44: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Test

• Set up grinder configuration: counts, ramp up speed, duration

• Install The Grinder on agent machines to speak to common console

• Check in to subversion all documentation, test cases and configuration data

• Take a full back up of the target system

Run the test.

Page 45: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Reset the System

• Restore from the full backup

Page 46: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Results

• Commit the raw results to subversion alongside the tests and configurations used to generate the results

Page 47: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Report

• Report to stakeholders

Page 48: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Repeat Until Done

Page 49: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Test

• Set up grinder configuration: counts, ramp up speed, duration

• Install The Grinder on agent machines to speak to common console

• Check in to subversion all documentation, test cases and configuration data

• Take a full back up of the target system

Run the test.

Page 50: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Reset the System

• Restore from the full backup

Page 51: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Results

• Commit the raw results to subversion alongside the tests and configurations used to generate the results

Page 52: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Report

• Report to stakeholders

Page 53: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Repeat Until Done

Page 54: Load Testing Templates: Artifacts of NYU’s Load Testing Implementation

Thank You

and good day