* Tempest Stress Test - Overview and Outlook Link: http://sched.co/1adCP8R Date & Time: November 6 2013 2:50pm - 3:30pm Room: AWE Level 2, Room 202 Session Proposer: Marc Koderer *Overall goals: * find race condtions * simulate real-life load *Current status * Nightly job running every day * Use existing tempest test * We have a mixture of tests: * Test developed for the stress test framework * Tempest tests using the stress decorator * Tracks statistics of runs and errors * Uses oslo logger * Actions: * Enhance documentation * Non voting job just 20 mins * figure out if scenario / unit approaches could cover the cases people are using json *Open points: * More tempest stress tests Issue: We have currently only few tests using the decorator * Needs docs to describe what makes sense to stress test * Using stress tests in the gate Issue: Can we use the stress test as gate check? Pros & Cons Open points * How long must a good stress test run in order to find race conditions? * (bug?) Clean-up function often takes very long * Is the logging is sufficient to track down race conditions? Can we do some logstash magic there? * * Do we need stress tests under tempest/stress/? * OR: Allow mixture of tempest tests (discovery) and test from the framework itself * Scenario tests + stress test = real life test? Issue: Scenario test aren't used for stress tests currently. Should we put all scenario tests per default to the stress test framework? Finding raise conditions Issue: We should define the process how we want to find raise conditions and raise bugs Triggers the importance of cleaning up the logs * Enhance documenation Issue: Enhance the documentation to make development in that area easier Examples unit / scenario What makes a good test along the lines of http://telekomcloud.github.io/2013/09/11/new-ways-of-tempest-stress-testing.html ? *Appendix - Defining a stress test: * @stresstest(class_setup_per='process') * @attr(type='smoke') * @services('compute') * def test_attach_detach_volume_to_instance(self): * # Volume is attached and detached successfully from an instance * mountpoint = '/dev/vdc' * resp, body = self.client.attach_volume(self.volume['id'], * self.server['id'], * mountpoint) * self.assertEqual(202, resp.status) * self.client.wait_for_volume_status(self.volume['id'], 'in-use') * resp, body = self.client.detach_volume(self.volume['id']) * self.assertEqual(202, resp.status) * self.client.wait_for_volume_status(self.volume['id'], 'available') - Usage of class_setup_per * ``class_setup_per`` should be one from: * ``application``: once in the stress job lifetime * ``process``: once in the worker process lifetime * ``action``: on each action *Other intressting fields for the stress test? Issue: