OpenTuesday: Agile Testautomatisierung und Continuous Integration

778 views
640 views

Published on

In seinem Referat zeigte Michael Palotas von Gridfusion Software Solution auf, wie die einzelnen Komponenten Selenium / Selenium Grid, Maven, Git / GitHub und Jenkins zusammenspielen und wie durch ein solches System agile Testautomatisierung und Continuous Integration mit relativ einfachen Mitteln ermöglicht wird.

Published in: Business, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
778
On SlideShare
0
From Embeds
0
Number of Embeds
196
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

OpenTuesday: Agile Testautomatisierung und Continuous Integration

  1. 1. OPEN TUESDAY Agile Testautomatisierung und Continuous Integration mit Selenium, Maven, Git, Jenkins GRIDFUSION Software Solutions 5. November 2013 1
  2. 2. WHO AM I? Gridfusion Software Solutions Contact: Michael Palotas Gerbiweg 2 8853 Lachen SWITZERLAND Tel.: +41 79 6690708 Email: michael.palotas@gridfusion.net Head of Quality Engineering eBay 2 Founder / Principal Consultant Gridfusion Software Solutions
  3. 3. Maven Git / Github Jenkins Selenium 3
  4. 4. WHAT WE BUILD TODAY ECLIPSE (Java Code) GIT GITHUB Maven APP / JAR JENKINS (CI) SELENIUM GRID SELENIUM NODE 4
  5. 5. MAVEN http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information. 5
  6. 6. POM.XML The pom.xml file is the core of a project's configuration in Maven. It is a single configuration file that contains the majority of information required to build a project in just the way you want. 6
  7. 7. CREATE THE PROJECT mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart DinteractiveMode=false 7
  8. 8. POM.XML 8
  9. 9. CHANGE TO JUNIT 4.10 9
  10. 10. WRITE SOME (UNIT) TESTS 10
  11. 11. MAVEN TARGETS validate: validate the project is correct and all necessary information is available compile: compile the source code of the project test: test the compiled source code using a suitable unit testing framework. These tests should not require the code be packaged or deployed package: take the compiled code and package it in its distributable format, such as a JAR. integration-test: process and deploy the package if necessary into an environment where integration tests can be run verify: run any checks to verify the package is valid and meets quality criteria install: install the package into the local repository, for use as a dependency in other projects locally deploy: done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects. clean: cleans up artifacts created by prior builds 11
  12. 12. WHAT WE BUILD TODAY ECLIPSE (Java Code) GIT GITHUB Maven APP / JAR JENKINS (CI) SELENIUM GRID SELENIUM NODE 12
  13. 13. VERSION CONTROL SYSTEM - GIT Distributed / local Download: http://git-scm.com/ Initialize directory: git init Status: git status Add files and directories to git: git add file1 dir2 Commit: git commit –am “commit message” 13
  14. 14. WHAT WE BUILD TODAY ECLIPSE (Java Code) GIT GITHUB Maven APP / JAR JENKINS (CI) SELENIUM GRID SELENIUM NODE 14
  15. 15. SHARE YOUR CODE - GITHUB Create repository on Github: https://github.com Create remote: git remote add origin https://… Push code to Github: git push origin master Tag your code: git tag –a v0.1 –m “initial version” Push tag to Github: git push origin v0.1 15
  16. 16. WHAT WE BUILD TODAY ECLIPSE (Java Code) GIT GITHUB Maven APP / JAR JENKINS (CI) SELENIUM GRID SELENIUM NODE 16
  17. 17. CONTINUOUS INTEGRATION - JENKINS Download at http://jenkins-ci.org/ Configure / connect to Github Build your project 17
  18. 18. CHANGE YOUR CODE Change some code Build locally: mvn clean, mvn test, mvn package Push to Github: git push origin master Watch Jenkins…. 18
  19. 19. WHAT WE BUILD TODAY ECLIPSE (Java Code) GIT GITHUB Maven APP / JAR JENKINS (CI) SELENIUM GRID SELENIUM NODE 19
  20. 20. E2E / UAT AUTOMATION WITH SELENIUM BROWSER CLIENT 20 JSON Wire Protocol SERVER
  21. 21. SELENIUM GRID 21
  22. 22. WHAT WE BUILD TODAY ECLIPSE (Java Code) GIT GITHUB Maven APP / JAR JENKINS (CI) SELENIUM GRID SELENIUM NODE 22

×