Yeah in that case, it probably doesn't make sense to have ansible launch
that job, but it could.

"Those tests are good for testing an ansible playbook while I am looking to
test the actual API of the services I am spinning up, and in a far more
flexible way. From that page:"

In our case, we'll fire off an install of Ansible in Jenkins against a
QA/Stage environment, and then a dependent Jenkins job will launch
automated API and Selenium tests.



On Mon, Dec 15, 2014 at 7:15 AM, Bryan Berry <[email protected]> wrote:
>
> Hi Michael,
>
> I have read it and I believe we will use some of those testing strategies.
> Those tests are good for testing an ansible playbook while I am looking to
> test the actual API of the services I am spinning up, and in a far more
> flexible way. From that page:
>
> "Something like an integration test battery should be written by your QA
> team if you are a production webservice. This would include things like
> Selenium tests or automated API tests and would usually not be something
> embedded into your Ansible playbooks."
>
> This is my exact use case, though not using Selenium specifically. We have
> a QA team that will be writing integration tests. I would like run them at
> the end of the ansible run.
>
> On Mon, Dec 15, 2014 at 1:10 PM, Michael DeHaan <[email protected]>
> wrote:
>
>> This is a good read if you haven't seen it already -
>> http://docs.ansible.com/test_strategies.html
>>
>> On Mon, Dec 15, 2014 at 4:33 AM, Bryan Berry <[email protected]>
>> wrote:
>>>
>>> Dear Ansiblists,
>>>
>>> I need to integrate application-level tests with ansible runs. These
>>> test are quite specific to that applications we are deploying and go quite
>>> beyond the existing test support in ansible. The purpose of these tests is
>>> not to test the ansible code but the entire deployment stack. Running these
>>> tests as part as part of the ansible playbook makes sense as the ansible
>>> run knows the location of all created resources. I am happy to go off and
>>> create this on my own, but I would really like to collaborate if there are
>>> others working on similar problems. I want to write the tests using plain
>>> python unittest so it will be familiar to my developers.
>>>
>>> here is an example where i want to test a Consul cluster of 5 nodes. I
>>> want to verify that the Consul API functions as expected.
>>>
>>> here is a code example of what I am looking to test
>>>
>>> # tests/test_consul.py
>>> import unittest
>>> import os.environ
>>> import requests
>>> import consul
>>> import time
>>>
>>>
>>> class TestConsul(unittest.TestCase):
>>>
>>>   def setUp(self):
>>>     self.members = os.environ['CONSUL_CLUSTER'].split(',')
>>>
>>>   def test_nodes_return_same_membership_list(self):
>>>     results = []
>>>     for member in self.members:
>>>       member_list = requests.get('http://member:4444/v1/cluster/members'
>>> % member)
>>>       member_list.sort()
>>>       results.append(member_list)
>>>     self.assertTrue(all([True for result in results if result ==
>>> results[0]))
>>>
>>>   def test_kv_put(self):
>>>     c =
>>> consul.Consul(self.members[0])
>>>
>>>     c.kv.put('foo', 'bar')
>>>     # wait for
>>> replication
>>>
>>>     time.sleep(5)
>>>     results = []
>>>     for member in self.members:
>>>       c =
>>> consul.Consul(member)
>>>
>>>       results.append(c.kv.get('foo'))
>>>     self.assertTrue(all([True for result in results if result == 'bar']))
>>>
>>>
>>>
>>> as you can see, I plan on passing the list of nodes as an environment
>>> variable, but I would love to hear alternate approaches.
>>>
>>> I currently plan to trigger the running of these tests by an environment
>>> variable.
>>>
>>> $ RUN_TESTS=TRUE ansible-playbook my-plays.yml
>>>
>>> - name: run tests
>>>   when: "{{ lookoup('ENV', 'RUN_TESTS')|bool}}"
>>>   roles:
>>>      - execute-tests    # executes tests in tests/test_*.py using
>>> unittest module, yet to be written
>>>
>>> It's really key that my developers be able to write tests using plain
>>> python code rather than Ansible's YAML. This decouples the tests from
>>> ansible. AThis could we helpful later if we every choose to run the exact
>>> same tests later separately from ansible, for example executing them as
>>> part of regular monitoring.
>>>
>>> Thoughts?
>>>
>>> Regards,
>>>
>>> Bryan W. Berry
>>>
>>>
>>>
>>>  --
>>> You received this message because you are subscribed to the Google
>>> Groups "Ansible Project" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To post to this group, send email to [email protected].
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/ansible-project/02e8c1c1-cb08-416c-9bf5-907607b529f5%40googlegroups.com
>>> <https://groups.google.com/d/msgid/ansible-project/02e8c1c1-cb08-416c-9bf5-907607b529f5%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "Ansible Project" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/ansible-project/CA%2BnsWgyNwsvqJOhoikq3hiDjJn%2BRsNG1VD7M%3DabwHX4-EH1MRA%40mail.gmail.com
>> <https://groups.google.com/d/msgid/ansible-project/CA%2BnsWgyNwsvqJOhoikq3hiDjJn%2BRsNG1VD7M%3DabwHX4-EH1MRA%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>  --
> You received this message because you are subscribed to the Google Groups
> "Ansible Project" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/ansible-project/CANsX4xTz9QsXLtTVJOtHGKy%3D%2BGCJ2eG-en0hfgUSLFuT%2BCFa%3DA%40mail.gmail.com
> <https://groups.google.com/d/msgid/ansible-project/CANsX4xTz9QsXLtTVJOtHGKy%3D%2BGCJ2eG-en0hfgUSLFuT%2BCFa%3DA%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/CA%2BnsWgwWZb1O1D%2BC2f7oNo8iYunytR0RC%2BSO-W00yjfX3o8ryw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to