{"componentChunkName":"component---node-modules-gatsby-theme-medium-to-own-blog-src-templates-blog-post-js","path":"/tired-of-slow-functional-tests/","result":{"data":{"site":{"siteMetadata":{"siteUrl":"https://javame.netlify.app","githubUrl":"https://github.com/aterreno/blog"}},"mdx":{"fields":{"slug":"/tired-of-slow-functional-tests/"},"excerpt":"If you are a good QA or just a good agile developer I’m sure you’re already testing your web applications with tools such as  Selenium…","timeToRead":1,"frontmatter":{"title":"Tired of slow functional tests?","description":"","categories":[],"date":"November 12, 2008","canonical_link":"https://javame.netlify.app//tired-of-slow-functional-tests-d05fd64eee"},"body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"Tired of slow functional tests?\",\n  \"description\": \"\",\n  \"date\": \"2008-11-12T00:00:00.000Z\",\n  \"categories\": [],\n  \"published\": true,\n  \"canonical_link\": \"https://javame.netlify.app//tired-of-slow-functional-tests-d05fd64eee\",\n  \"redirect_from\": [\"/tired-of-slow-functional-tests-d05fd64eee\"]\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"If you are a good QA or just a good agile developer I\\u2019m sure you\\u2019re already testing your web applications with tools such as \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://www.openqa.org/\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"Selenium\"), \".(\", \"*\", \")\"), mdx(\"p\", null, \"If you\\u2019re seeking for continuous improvement I\\u2019m sure that you complained at least once on the speed of those testing and on the maintainability.\"), mdx(\"p\", null, \"You might wanna then have a look on the results that the guys of \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://celerity.rubyforge.org/\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"Celerity\"), \" have posted on their website, basically they migrated all their \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://wtr.rubyforge.org/\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"Watir\"), \" functional tests wrapping \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://htmlunit.sourceforge.net/\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"htmlUnit\"), \" instead of starting the browser through Watir.\"), mdx(\"p\", null, \"First \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://celerity.rubyforge.org/benchmarks.html\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"benchmarks\"), \" are impressive:\"), mdx(\"p\", null, \"ScenarioWatir (total)Celerity (total)Time reduction1316,97 s0,59 s99,81 %2278 s86 s69 %3128 s33 s74 %4185,00 s4,67 s97,48 %\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"If you are using Selenium rather than Watir don\\u2019t despair, \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://www.pubbitch.org/\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"Simon Stewart\"), \" is working hard on \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://code.google.com/p/webdriver/\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"webdriver\"), \", and if you switch to the \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://code.google.com/p/webdriver/wiki/HtmlUnitDriver\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"htmlUnit driver\"), \" your Selenium test you\\u2019ll have comparable improvements on the speed of your tests.\"), mdx(\"p\", null, \"(\", \"*\", \") many people might disagree with this sentence, if so have a look first the Simon Stewart \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://uk.youtube.com/watch?v=tGu1ud7hk5I\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"presentation at GTAC 2007\"), \" and then let me know your thoughts.\"));\n}\n;\nMDXContent.isMDXComponent = true;"},"allWebMentionEntry":{"nodes":[]}},"pageContext":{"id":"40b78031-1927-5565-819e-910cf990a3c6","previous":{"id":"f99ccb60-3c56-54dc-b6cf-4a096855b870","fields":{"slug":"/helloworld-v-20/","published":true},"frontmatter":{"redirect_from":["/helloworld-v-2-0-c16a8d82916d"],"redirect_to":null,"title":"HelloWorld v 2.0"}},"next":{"id":"be305e8b-4919-550c-bb6d-553592a69f3f","fields":{"slug":"/comes-a-time/","published":true},"frontmatter":{"redirect_from":["/comes-a-time-f82f3045d310"],"redirect_to":null,"title":"Comes a time…"}},"permalink":"https://javame.netlify.app/tired-of-slow-functional-tests/","themeOptions":{"plugins":[],"config":{"title":"Antonio Terreno","description":"Antonio Terreno's blog archive","shortBio":"","bio":"Principal Consultant at Equal Experts","author":"Antonio Terreno","githubUrl":"https://github.com/aterreno/blog","siteUrl":"https://javame.netlify.app/","social":{"twitter":"javame","medium":"","facebook":"","github":"aterreno","linkedin":"antonioterreno","instagram":"tritonitri"},"goatCounterCode":null}}}},"staticQueryHashes":["4131332129","645483741"]}