Culerity and Headless Full Stack Integration Testing
-
Upload
patrick-huesler -
Category
Technology
-
view
2.836 -
download
3
description
Transcript of Culerity and Headless Full Stack Integration Testing
![Page 1: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/1.jpg)
Full Stack Integration Testing
Patrick Hüsler, huesler informatik
![Page 2: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/2.jpg)
Control the Browser
2
![Page 3: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/3.jpg)
Emulate a browser
3
![Page 4: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/4.jpg)
The Lay of The Land
4
![Page 5: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/5.jpg)
5
![Page 6: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/6.jpg)
6
Thank you Martin Kleppmannhttp://www.slideshare.net/martinkleppmann/crossbrowser-testing-in-the-real-world
![Page 7: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/7.jpg)
Headless
7
![Page 8: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/8.jpg)
HTML Unit
8
![Page 9: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/9.jpg)
9
<< HtmlUnit is a "GUI-Less browser for Java programs". It models HTML documents and provides an API that allows you to invoke pages, fill out forms, click links, etc... just like you do in your "normal" browser. >>http://htmlunit.sourceforge.net/
![Page 10: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/10.jpg)
Celerity
10
![Page 11: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/11.jpg)
11
<< A ruby wrapper around HTML Unit written in JRuby>>
![Page 12: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/12.jpg)
Concerns
12
![Page 13: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/13.jpg)
SLOW
13
![Page 14: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/14.jpg)
Really SLOW!!!
14
![Page 15: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/15.jpg)
Sometimes Brittle
15
![Page 16: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/16.jpg)
Focus on the most important features
16
![Page 17: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/17.jpg)
Rails
17
![Page 18: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/18.jpg)
18
Status Quo Ante
![Page 19: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/19.jpg)
Webrat
19
![Page 20: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/20.jpg)
Selenium et. al
20
![Page 21: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/21.jpg)
21
![Page 22: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/22.jpg)
Headless
22
![Page 23: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/23.jpg)
Culerity
23
http://github.com/langalex/culerity
![Page 24: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/24.jpg)
Steam
24
http://github.com/svenfuchs/steam
![Page 25: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/25.jpg)
Status Quo
25
![Page 26: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/26.jpg)
Capybara
26
http://github.com/jnicklas/capybara
![Page 27: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/27.jpg)
27
<< Capybara aims to simplify the process of integration testing Rack applications, such as Rails, Sinatra or Merb. It is inspired by and aims to replace Webrat as a DSL for interacting with a webapplication. It is agnostic about the driver running your tests and currently comes bundled with rack-test, Culerity, Celerity and Selenium support built in.>>http://github.com/jnicklas/capybara
![Page 28: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/28.jpg)
28
• rack-test•Celerity•Selenium• (env-js)
Capybara Drivers
![Page 29: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/29.jpg)
Ideas/Approaches
29
![Page 30: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/30.jpg)
Steam
30
http://github.com/svenfuchs/steam
Steam is a headless integration testing tool driving HtmlUnit to enable testing JavaScript-driven web sites. In that it is similar to Culerity which drives Celerity (which also drives HtmlUnit).
![Page 31: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/31.jpg)
envjs
31
http://github.com/jeresig/env-js
http://www.envjs.com/
![Page 32: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/32.jpg)
32
ENVJS IS A SIMULATED BROWSER ENVIRONMENT WRITTEN IN JAVASCRIPT. IT WAS ORIGINALLY DEVELOPED BY JOHN RESIG AND DISCUSSED IN HIS BLOG HERE. ENVJS IS NOW SUPPORTED BY A COMMUNITY OF DEVELOPERS WHO ALL USE ENVJS AS PART OF THEIR OWN OPEN SOURCE PROJECTS.
http://www.envjs.com/
![Page 33: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/33.jpg)
Johnson
33
Johnson wraps JavaScript in a loving Ruby embrace. It embeds the Mozilla SpiderMonkey JavaScript runtime as a C extension.
http://github.com/jbarnette/johnson
![Page 34: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/34.jpg)
Johnson
34
require "johnson"
Johnson.evaluate("4 + 4") # => 8 Johnson.evaluate("4 + foo", :foo => 4) # => 8
![Page 35: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/35.jpg)
Johnson Presentation 2008
35
http://rubyconf2008.confreaks.com/how-i-learned-to-love-javascript.html
![Page 36: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/36.jpg)
Harmony
36
http://github.com/mynyml/harmony
page.execute_js("1+1") #=> 2page.execute_js("document.title") #=> "Foo"
![Page 37: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/37.jpg)
Harmony
37
•Wrapper around• Johnson• Envjs
![Page 38: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/38.jpg)
HolyGrail: Rails plugin for Harmony
38
http://github.com/mynyml/holygrail
![Page 39: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/39.jpg)
The ruby tracer
39
http://github.com/cowboyd/therubyracer
Embed the Google V8 Javascript Interpreter into Ruby
![Page 40: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/40.jpg)
Lyndon
40
Lyndon wraps JavaScript in a loving MacRuby embrace.
http://github.com/defunkt/lyndon
![Page 41: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/41.jpg)
Headless Squirrel
41
http://github.com/Fingertips/headless-squirrel
A JavaScript test runner to run tests from the comfort of your terminal.
![Page 42: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/42.jpg)
rdom
42
tweet from the author, sven fuchs:
“maybe you want to mention steam and/or rdom http://bit.ly/db4vxL, browser/env in ruby w/ nokogiri + johnson, not complete yet.”
![Page 43: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/43.jpg)
Thank You
43
• @phuesler
• http://github.com/phuesler
• http://www.huesler-informatik.ch/blog
![Page 44: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/44.jpg)
Questions?
44
![Page 45: Culerity and Headless Full Stack Integration Testing](https://reader034.fdocuments.net/reader034/viewer/2022052619/5559de9bd8b42a39498b4965/html5/thumbnails/45.jpg)
Thank You
45
• @phuesler
• http://github.com/phuesler
• http://www.huesler-informatik.ch/blog