blob: ce12a3b5f3f36853a5e7a69eca55de2029ff8a91 [file] [log] [blame]
Masayuki Igawac268dd62013-09-18 00:51:05 +09001Tempest Field Guide to Scenario tests
2=====================================
Sean Dague6dbc6da2013-05-08 17:49:46 -04003
4
5What are these tests?
Attila Fazekas23fdf1d2013-06-09 16:35:23 +02006---------------------
Sean Dague6dbc6da2013-05-08 17:49:46 -04007
8Scenario tests are "through path" tests of OpenStack
9function. Complicated setups where one part might depend on completion
10of a previous part. They ideally involve the integration between
11multiple OpenStack services to exercise the touch points between them.
12
13An example would be: start with a blank environment, upload a glance
14image, deploy a vm from it, ssh to the guest, make changes, capture
15that vm's image back into glance as a snapshot, and launch a second vm
16from that snapshot.
17
18
19Why are these tests in tempest?
Attila Fazekas23fdf1d2013-06-09 16:35:23 +020020-------------------------------
Sean Dague6dbc6da2013-05-08 17:49:46 -040021This is one of tempests core purposes, testing the integration between
22projects.
23
24
25Scope of these tests
Attila Fazekas23fdf1d2013-06-09 16:35:23 +020026--------------------
David Kranzc15a1ca2013-09-17 20:58:47 -040027Scenario tests should use the official python client libraries for
Sean Dague6dbc6da2013-05-08 17:49:46 -040028OpenStack, as they provide a more realistic approach in how people
29will interact with the services.
30
David Kranzc15a1ca2013-09-17 20:58:47 -040031Tests should be tagged with which services they exercise, as
32determined by which client libraries are used directly by the test.
Sean Dague6dbc6da2013-05-08 17:49:46 -040033
34
35Example of a good test
Attila Fazekas23fdf1d2013-06-09 16:35:23 +020036----------------------
Sean Dague6dbc6da2013-05-08 17:49:46 -040037While we are looking for interaction of 2 or more services, be
38specific in your interactions. A giant "this is my data center" smoke
39test is hard to debug when it goes wrong.
40
41A flow of interactions between glance and nova, like in the
42introduction, is a good example. Especially if it involves a repeated
43interaction when a resource is setup, modified, detached, and then
44reused later again.