- Status New
- Percent Complete
- Task Type Feature Request
- Category Database Queries
- Assigned To No-one
- Operating System All
- Severity Very Low
- Priority Defer
- Reported Version 1.0 alpha1
- Due in Version Undecided
-
Due Date
Undecided
- Votes
- Private
FS#1985 - For developers - testing with huge flyspray data sets
Here I will put some sql examples for the current developers to have a base for testings:
Starting with a default installation with its 1 example project and 1 example task:
I hope we can put all this into valuable phpunit tests for automatic testing with travis-ci.
Still TODO, do not use:
After fresh Flyspray install, add some more projects:
INSERT INTO flyspray_projects (project_title,project_is_active,others_view,anon_open) VALUES('Inactive Project', 0, 1, 1); INSERT INTO flyspray_projects (project_title,project_is_active,others_view,anon_open) VALUES('Active Project Anonymous Reporting', 1, 1, 1); INSERT INTO flyspray_projects (project_title,project_is_active,others_view,anon_open) VALUES('Deleted Project', 1, 1, 1); DELETE FROM flyspray_projects WHERE project_title LIKE 'Deleted Project'; -- delete to have an id gap INSERT INTO flyspray_projects (project_title,project_is_active,others_view,anon_open) VALUES('Active Project NO Others View', 1, 0, 0); -- There should now be 4 projects with ids (1,2,3,5). -- Now lets add some extra roles for a few projects INSERT INTO flyspray_groups (group_name,project_id,manage_project,view_tasks,open_new_tasks,modify_own_tasks,view_own_tasks,view_groups_tasks) VALUES('Project3 Manager', 3, 1, 1, 1, 1, 1, 1 ); INSERT INTO flyspray_groups (group_name,project_id,manage_project,view_tasks,open_new_tasks,modify_own_tasks,view_own_tasks,view_groups_tasks) VALUES('Project3 Reporter', 3, 0, 1, 0, 1, 1, 1 ); INSERT INTO flyspray_groups (group_name,project_id,manage_project,view_tasks,open_new_tasks,modify_own_tasks,view_own_tasks,view_groups_tasks) VALUES('Project5 Developer', 5, 0, 1, 1, 1, 1, 1 ); -- TODO -- Then create some more users: INSERT INTO flyspray_users(user_name,real_name,email_address,account_enabled,tasks_perpage,lang_code) VALUES('tester1','T1Developer','tester1@example.com',1,100,'en'); INSERT INTO flyspray_users(user_name,real_name,email_address,account_enabled,tasks_perpage,lang_code) VALUES('tester2','T2Reporter_P3Manager','tester2@example.com',1,100,'de'); INSERT INTO flyspray_users(user_name,real_name,email_address,account_enabled,tasks_perpage,lang_code) VALUES('tester3','T3Basic_P3Reporter_P5Developer','tester3@example.com',1,100,'fr'); -- And put them into a global group and a few into project roles too: INSERT INTO flyspray_users_in_groups(user_id,group_id) VALUES(2,2); INSERT INTO flyspray_users_in_groups(user_id,group_id) VALUES(3,3); INSERT INTO flyspray_users_in_groups(user_id,group_id) VALUES(3,8); INSERT INTO flyspray_users_in_groups(user_id,group_id) VALUES(4,4); INSERT INTO flyspray_users_in_groups(user_id,group_id) VALUES(4,9); INSERT INTO flyspray_users_in_groups(user_id,group_id) VALUES(4,10); -- And lets fill the Database with 10 different configured task to simulate different cases: INSERT INTO flyspray_tasks(project_id,task_type,item_status,supertask_id) VALUES(1,1,1,0); -- id2 in first project INSERT INTO flyspray_tasks(project_id,task_type,item_status,supertask_id) VALUES(2,1,1,0); -- id3 in inactive project INSERT INTO flyspray_tasks(project_id,task_type,item_status,supertask_id) VALUES(2,1,1,3); -- id4 in inactive project INSERT INTO flyspray_tasks(project_id,task_type,item_status,supertask_id) VALUES(3,1,0,6); -- id5 status 0,supertask_id6 INSERT INTO flyspray_tasks(project_id,task_type,item_status,supertask_id) VALUES(3,1,0,0); -- id6 INSERT INTO flyspray_tasks(project_id,task_type,item_status,supertask_id) VALUES(3,1,1,6); -- id7 INSERT INTO flyspray_tasks(project_id,task_type,item_status,supertask_id) VALUES(5,1,1,0); -- id8 INSERT INTO flyspray_tasks(project_id,task_type,item_status,supertask_id) VALUES(5,1,1,8); -- id9 INSERT INTO flyspray_tasks(project_id,task_type,item_status,supertask_id) VALUES(5,1,1,9); -- id10 -- TODO -- And now lets fill the database with many task referencing the 10 base tasks (10k or more rows) by repeating the following until enough (grows exponential x**2 ! INSERT INTO flyspray_tasks (project_id,task_type,item_status, supertask_id, item_summary) SELECT 3,1,1,FLOOR(RAND()*11),RAND() FROM flyspray_tasks;
These Examples can be used for finding bottle necks or problems on huge installations.
Loading...
Available keyboard shortcuts
- Alt + ⇧ Shift + l Login Dialog / Logout
- Alt + ⇧ Shift + a Add new task
- Alt + ⇧ Shift + m My searches
- Alt + ⇧ Shift + t focus taskid search
Tasklist
- o open selected task
- j move cursor down
- k move cursor up
Task Details
- n Next task
- p Previous task
- Alt + ⇧ Shift + e ↵ Enter Edit this task
- Alt + ⇧ Shift + w watch task
- Alt + ⇧ Shift + y Close Task
Task Editing
- Alt + ⇧ Shift + s save task
Started work on a script that can generate huge amounts of data. See Tests/CreateTestData.php. Work continues, not every possible table is yet filled.
This project https://github.com/phpmyadmin/phpmyadmin uses phpunit with selenium.
So this could give us a good starting point for automated (browser) testing of flyspray.