Affects Version/s: Quest-CPS07
Fix Version/s: Quest-CPS07
This set of tasks is intended to get us ready to run high-volume load-testing using multiple threads executing a script which simulates actual users filling out the application forms. (Configuring the environment and the process for triggering multiple simultaneous tests is a separate issue).
1. Create a draft version of the 2007 College Prep Scholarship app (CPS) which runs in the trunk codebase
The 2007 CPS will be a truncated version of the 2006 College Match (CM) Application. This step involves cloning the MatchApp code and then removing the unneeded sections. Then fixing code as needed to run in the trunk core CiviCRM code envrionment. Paras Dagli will be specifying the sections / forms to be retained from MatchApp for the new CPS app here:
2. Randomize data in the Quest XML data dump to use as test data.
We will need a set of completed application data in XML format to use as the data to be "entered" by the automated testing script. This step involves randomizing the identifying data in an XML dump file provided by Paras (so we can use it in testing w/o violating students' privacy). The file will contain complete College Match application data submitted by approximately 3,000 finalists. You will need to "randomize" (i.e. scramble) the following sets of fields
- Individual and Person records: first + last name -> Randomize to ensure that output doesn't contain any of the same first+last name pairs as the original file.
- Change all email addresses to randomizedLastName@example.com
- Change all phone #'s to 222 222-2222
- Address data (street address + city + state + zip) ->Randomize to ensure output doesn't contain records w/ same combinations as original file.
3. Develop an Automated Testing Script which Completes a Single Application and Verifies the Submitted Data in the DB
- The script reads input data from the randomized XML dump file (initially, 1 complete application's worth of data)
- The script should be developed using Selenium UNLESS Lobo and Piotr determine that we can not use Selenium for subsequent multi-threaded load testing. If this is they case, they will specify another automated scriptable test tool.
- Script has 3 execution options
- fill in and submit a CPS app using referenced xml data file
- fill in the app AND verify a few critical DB integrity criteria (e.g. # of siblings, # of schools, # of income source)
- fill in the app AND then verify ALL the data in the DB to see that it matches what was submitted from the XML file