Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my...
Transcript of Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my...
![Page 1: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/1.jpg)
Behaviour Driven Infrastructure
![Page 2: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/2.jpg)
A Long Time Ago....
![Page 3: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/3.jpg)
![Page 4: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/4.jpg)
![Page 5: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/5.jpg)
![Page 6: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/6.jpg)
![Page 7: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/7.jpg)
![Page 8: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/8.jpg)
Test Driven Development
![Page 9: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/9.jpg)
![Page 10: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/10.jpg)
![Page 11: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/11.jpg)
+
=
Behavior Driven Development
![Page 12: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/12.jpg)
![Page 13: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/13.jpg)
Feature: puzzle.ch It should be up And I should be able to see the website
Scenario: Browse to puzzle.ch When I go to "http://www.puzzle.ch/" Then I should see "Eigerplatz 4"
![Page 14: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/14.jpg)
$ cucumber service_puzzle_website.feature Feature: puzzle.ch It should be up And I should be able to see the website
Scenario: Browse to puzzle.ch # service_puzzle_website.feature:5 When I go to "http://www.puzzle.ch/" # steps/http_steps.rb:11 Then I should see "Eigerplatz 4" # steps/http_steps.rb:52
1 scenario (1 passed)2 steps (2 passed)0m0.222s
![Page 15: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/15.jpg)
Woher weiss Cucumber was es tun soll?
![Page 16: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/16.jpg)
$ vim steps/http_steps.rb...
When /^I go to "(.*)"$/ do |path| visit pathend
When /^I press "(.*)"$/ do |button| click_button(button)end
When /^I follow "(.*)"$/ do |link| click_link(link)end
![Page 17: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/17.jpg)
Hmmmm.....
![Page 18: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/18.jpg)
Wäre das nicht auch praktisch für Systems Engineering?
![Page 19: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/19.jpg)
Feature: puzzle.ch It should be up And I should be able to see the website
Scenario: Browse to puzzle.ch When I go to "http://www.puzzle.ch/" Then I should see "Eigerplatz 4"
![Page 20: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/20.jpg)
Nur für HTTP?
Was ist mit SSH?
![Page 21: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/21.jpg)
Scenario: Checking /etc/passwd When I ssh to "example.org" with the following credentials: | username | keyfile | | bob | /home/bob/.ssh/id_dsa | | alice | /home/alice/.ssh/id_dsa | And I run "cat /etc/passwd" Then I should see "bob" in the output And I should see "alice" in the output
![Page 22: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/22.jpg)
cucumber-nagios
Zusätzliche Step Definitionen:● SSH● DNS● SSL● FILE● ...
![Page 23: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/23.jpg)
Scenario: Checking /etc/passwd When I ssh to "example.org" with the following credentials: | username | keyfile | | bob | /home/bob/.ssh/id_dsa | | alice | /home/alice/.ssh/id_dsa | And I run "cat /etc/passwd" Then I should see "bob" in the output And I should see "alice" in the output
Was, wenn sich das System ändert?
![Page 24: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/24.jpg)
Zusätzliche Output Methode für die Integration in Nagios/Zenoss/..
$ cucumber-nagios service_puzzle_website.feature CUCUMBER OK - Critical: 0, Warning: 0, 2 okay | passed=2; failed=0; nosteps=0; total=2; time=0
$ cucumber-nagios service_puzzle_website.feature CUCUMBER CRITICAL - Critical: 1, Warning: 0, 1 okay | passed=1; failed=1; nosteps=0; total=2; time=0Failed: Then I should see "Eigerplatz 5" in service_puzzle_website.feature:5 on steps/http_steps.rb:52
![Page 25: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/25.jpg)
Was, wenn ich etwas komplett anderes testen will?
![Page 26: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/26.jpg)
Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service
Scenario: Send a test message Given I have the following jabber credentials: | username | password | | bob | abc123 | When I login to the jabber server "jabber.puzzle.ch" Then I can send the jabber message "Jabber Test" to "[email protected]"
Scenario: Visit the webclient When I go to "https://jappix.puzzle.ch" Then I should see "Welcome on Jappix"
![Page 27: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/27.jpg)
Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service
Scenario: Send a test message # service_puzzle_jabber.feature:7 Given I have the following jabber credentials: # service_puzzle_jabber.feature:8 | username | password | | bob | abc123 | When I login to the jabber server "jabber.puzzle.ch" # service_puzzle_jabber.feature:11 Then I can send the jabber message "Jabber Test" to "[email protected]" # service_puzzle_jabber.feature:12
Scenario: Visit the webclient # service_puzzle_jabber.feature:14 When I go to "https://jappix.puzzle.ch" # steps/http_steps.rb:11 Then I should see "Welcome on Jappix" # steps/http_steps.rb:52
2 scenarios (1 undefined, 1 passed)5 steps (3 undefined, 2 passed)0m2.135s
You can implement step definitions for undefined steps with these snippets:
Given /^I have the following jabber credentials:$/ do |table| # table is a Cucumber::Ast::Table pending # express the regexp above with the code you wish you hadend
When /^I login to the jabber server "([^"]*)"$/ do |arg1| pending # express the regexp above with the code you wish you hadend
Then /^I can send the jabber message "([^"]*)" to "([^"]*)"$/ do |arg1, arg2| pending # express the regexp above with the code you wish you hadend
![Page 28: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/28.jpg)
$ vim steps/jabber_steps.rb
Given /^I have the following jabber credentials:$/ do |table| # table is a Cucumber::Ast::Table pending # express the regexp above with the code you wish you hadend
When /^I login to the jabber server "([^"]*)"$/ do |arg1| pending # express the regexp above with the code you wish you hadend
Then /^I can send the jabber message "([^"]*)" to "([^"]*)"$/ do |arg1, arg2| pending # express the regexp above with the code you wish you hadend
![Page 29: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/29.jpg)
require 'xmpp4r/client'
Given /^I have the following jabber credentials:$/ do |table| @jabber_credentials = table.hashesend
When /^I login to the jabber server "([^"]*)"$/ do |jabber_server| @jabber_clients = []
@jabber_credentials.each do |account| jid = Jabber::JID::new("#{account[:username]}@#{jabber_server}/Test") client = Jabber::Client::new(jid) client.connect(jabber_server) client.auth(account[:password]) @jabber_clients << client end
end
Then /^I can send the jabber message "([^"]*)" to "([^"]*)"$/ do |body, to| message = Jabber::Message::new(to, body).set_type(:normal).set_id('1').set_subject('test') @jabber_clients.each do |client| client.send message endend
![Page 30: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/30.jpg)
$ cucumber service_puzzle_jabber.feature Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service
Scenario: Send a test message # service_puzzle_jabber.feature:7 Given I have the following jabber credentials: # steps/jabber_steps.rb:3 | username | password | | bob | abc123 | When I login to the jabber server "jabber.puzzle.ch" # steps/jabber_steps.rb:7 Then I can send the jabber message "Jabber Test" to "[email protected]" # steps/jabber_steps.rb:20
Scenario: Visit the webclient # service_puzzle_jabber.feature:14 When I go to "https://jappix.puzzle.ch" # steps/http_steps.rb:11 Then I should see "Welcome on Jappix" # steps/http_steps.rb:52
2 scenarios (2 passed)5 steps (5 passed)1m49.984s
![Page 31: Behaviour Driven Infrastructure · Feature: Puzzle Jabber Service In order to communicate with my colleges As a puzzle member I want to use the jabber service Scenario: Send a test](https://reader034.fdocuments.net/reader034/viewer/2022050521/5fa46b3e9268962b587ffc3c/html5/thumbnails/31.jpg)
http://cukes.info/
Cucmber-nagios:http://auxesis.github.com/cucumber-nagios/