Slide 1

Slide 1 text

TEST AUTOMATION WITH VAGRANT Steve Jackson @stevejxsn [email protected] Wednesday, September 18, 13

Slide 2

Slide 2 text

2 Wednesday, September 18, 13

Slide 3

Slide 3 text

I GOT TEH CODEZ 3 Wednesday, September 18, 13

Slide 4

Slide 4 text

WHAT’S MISSING? 4 Wednesday, September 18, 13

Slide 5

Slide 5 text

WHAT’S MISSING? 4 Environment + Source Code + Build Process = Application Wednesday, September 18, 13

Slide 6

Slide 6 text

VAGRANT = MAGIC 5 Wednesday, September 18, 13

Slide 7

Slide 7 text

VAGRANT = MAGIC  Vagrant = How do I build my development environment? 5 Wednesday, September 18, 13

Slide 8

Slide 8 text

VAGRANT = MAGIC  Vagrant = How do I build my development environment?  Vagrant = Executable README 5 Wednesday, September 18, 13

Slide 9

Slide 9 text

VAGRANT = MAGIC  Vagrant = How do I build my development environment?  Vagrant = Executable README  Vagrant = Multi-platform setup script 5 Wednesday, September 18, 13

Slide 10

Slide 10 text

VAGRANT = MAGIC  Vagrant = How do I build my development environment?  Vagrant = Executable README  Vagrant = Multi-platform setup script 5 Wednesday, September 18, 13

Slide 11

Slide 11 text

VAGRANT = MAGIC  Vagrant = How do I build my development environment?  Vagrant = Executable README  Vagrant = Multi-platform setup script  Vagrant = Environment as Code 5 Wednesday, September 18, 13

Slide 12

Slide 12 text

VAGRANTFILE 6  Committed to Source Control  Work identically on any system Wednesday, September 18, 13

Slide 13

Slide 13 text

RUNNING APPLICATION!  Repeatable  Reliable  Ready to Rock! 7 Wednesday, September 18, 13

Slide 14

Slide 14 text

PRODUCTION CLONE Wednesday, September 18, 13

Slide 15

Slide 15 text

9 You Vagrant Wednesday, September 18, 13

Slide 16

Slide 16 text

9 You Vagrant Providers $ vagrant up Wednesday, September 18, 13

Slide 17

Slide 17 text

PROVIDERS  VirtualBox (virtualbox.es, vagrantup.com)  VMWare  AWS  DigitalOcean  Rackspace  MORE: https://github.com/mitchellh/vagrant/wiki/Available- Vagrant-Plugins 10 Wednesday, September 18, 13

Slide 18

Slide 18 text

11 You Vagrant Providers $ vagrant up Wednesday, September 18, 13

Slide 19

Slide 19 text

11 You Vagrant Providers Virtual Machine $ vagrant up Wednesday, September 18, 13

Slide 20

Slide 20 text

11 You Vagrant Providers Provisioners Virtual Machine $ vagrant up Wednesday, September 18, 13

Slide 21

Slide 21 text

PROVISIONERS 12  Chef, Puppet, Shell  MORE: https://github.com/mitchellh/vagrant/wiki/Available- Vagrant-Plugins Wednesday, September 18, 13

Slide 22

Slide 22 text

13 You Vagrant Providers Provisioners Virtual Machine $ vagrant up Wednesday, September 18, 13

Slide 23

Slide 23 text

13 You Vagrant Providers Provisioners Virtual Machine $ vagrant ssh $ vagrant up Wednesday, September 18, 13

Slide 24

Slide 24 text

PRODUCTION EVALS Wednesday, September 18, 13

Slide 25

Slide 25 text

PERFORMANCE TESTING Wednesday, September 18, 13

Slide 26

Slide 26 text

NEW CI SERVER Wednesday, September 18, 13

Slide 27

Slide 27 text

HATE INSTALLING STUFF Wednesday, September 18, 13

Slide 28

Slide 28 text

MULTI-PROJECT DEVELOPER OR DESIGNER Wednesday, September 18, 13

Slide 29

Slide 29 text

TEST ISOLATION Wednesday, September 18, 13

Slide 30

Slide 30 text

BUG HUNTING Wednesday, September 18, 13

Slide 31

Slide 31 text

NEW HIRE Wednesday, September 18, 13

Slide 32

Slide 32 text

RUBY INSTALLS 22 Wednesday, September 18, 13

Slide 33

Slide 33 text

RUBY INSTALLS 22 Wednesday, September 18, 13

Slide 34

Slide 34 text

SHARED RESOURCES 23 Wednesday, September 18, 13

Slide 35

Slide 35 text

VAGRANT TO THE RESCUE 24 mysql play2 JVM VM IDE/vim/emacs vagrant Host browser Wednesday, September 18, 13

Slide 36

Slide 36 text

VAGRANT TO THE RESCUE 24 mysql play2 JVM VM IDE/vim/emacs vagrant Host browser ruby cucumber Wednesday, September 18, 13

Slide 37

Slide 37 text

VAGRANT TO THE RESCUE 24 mysql play2 JVM VM IDE/vim/emacs vagrant Host browser ruby cucumber JVM selenium server Wednesday, September 18, 13

Slide 38

Slide 38 text

RECAP  Install Virtualbox  Install Vagrant  Install Vagrant plugins  Install Java  Clone project  Start selenium server  Vagrant up  Vagrant ssh  cd /vagrant  cucumber 25 Wednesday, September 18, 13

Slide 39

Slide 39 text

DRAWBACKS  Slower  Disk space  No UI by default  Minimal provisioning support for Windows VMs 26 Wednesday, September 18, 13

Slide 40

Slide 40 text

THE FUTURE 27 Wednesday, September 18, 13

Slide 41

Slide 41 text

THAT’S A WRAP! Steve Jackson @stevejxsn [email protected] Wednesday, September 18, 13

Slide 42

Slide 42 text

RESOURCES  https://github.com/stevenjackson/vagrant-test- automation  https://github.com/mitchellh/vagrant/wiki/Available- Vagrant-Plugins  https://github.com/mitchellh/vagrant/wiki/Available- Vagrant-Boxes  http://www.vagrantbox.es  http://cloud-images.ubuntu.com/  https://github.com/jedi4ever/veewee  http://community.opscode.com/cookbooks  http://berkshelf.com/ 29 Wednesday, September 18, 13

Slide 43

Slide 43 text

DEMO SYSTEM Wednesday, September 18, 13