Automation Frameworks: First Contact

E3076b26dd2cd384939694fa5a00948e?s=47 apetkova
September 16, 2018

Automation Frameworks: First Contact

A collection of principal and practical advice on building functional automation frameworks from scratch.
Presented at HackConf 2018, Sofia , Bulgaria

E3076b26dd2cd384939694fa5a00948e?s=128

apetkova

September 16, 2018
Tweet

Transcript

  1. Automation Frameworks: FIRST CONTACT

  2. Aneta Petkova QA Chapter Lead,

  3. 3 Debut?

  4. THE QUESTIONS Laying the proper foundation

  5. Q1: THE LANGUAGE 5 Ø Project primary Ø Personal favourite

    Ø Popularity
  6. 6 Q2: REPOSITORY Ø Product Architecture Ø Repo restrictions

  7. 7 Q2: REPOSITORY Ø Product Architecture Ø Repo restrictions Ø

    Execution - CI
  8. Q3: TEST LEVEL UNIT API UI

  9. Q4: SCENARIO FORMAT 9 No format 1. Open a browser

    2. Go to Google 3. Search for a string 4. Assert total number of results is displayed Given-When-Then Given I can open a browser And go to Google When I search for a string Then I should see the total number of results Screenplay As Any (the browsing girl) I want to see the total number of my search results on Google So I know how many results to consider
  10. Q5: TEST RUNNER 10 Ø Experience in your team Ø

    Feature support: reporting, parallelism, CI plugin Ø Popularity
  11. Q6: ARTIFACTS 11 Ø Report Ø Logs Ø Screenshots

  12. ANSWER TIME! 12 Q6: ARTIFACTS Q5: RUNNER Q4: FORMAT Q3:

    LEVEL Q2: REPO Q1: LANGUAGE RUBY STAND ALONE CUCUMBER API REPORTS LOGS G-W-T
  13. Ruby sample structure demo-framework/ ├── app ├── config ├── features

    ├── test-output ├── Gemfile ├── Gemfile.lock ├── README.md
  14. Ruby sample structure ├── app │ ├── common │ │

    ├── mock_data_factory.rb │ ├── db │ ├── model │ │ ├── credentials.rb │ │ ├── personal_profile.rb │ │ └── user.rb │ └── service │ ├── auth_service.rb │ └── user_service.rb
  15. Ruby sample structure ├── config │ ├── initializers │ │

    ├── app.rb │ │ └── state.rb │ ├── config.yml.sample │ ├── cucumber.yml │ ├── report_builder_config.rb
  16. Ruby sample structure ├── features │ ├── features_api │ │

    └── user_account.feature │ ├── step_definitions │ │ └── user_steps.rb │ └── support │ ├── env.rb │ └── hooks.rb
  17. Ruby sample structure ├── test-output │ ├── features_report.html │ └──

    features_report.json
  18. Ruby Tooling Ø Cucumber Ø DB: ActiveRecord Ø Rest &

    Logging: Sail (internal) § rest-client § colorize Ø ReportBuilder
  19. None
  20. None
  21. None
  22. None
  23. Reporting: Jenkins

  24. IT’S NOT THAT HARD, THEN?

  25. IT’S NOT THAT HARD, THEN? Image: /volandil

  26. No rocket science. Just tools, experience and skill.

  27. THANK YOU! Any questions? You can find me at: anetavp

    /apetkova Credits Slides: SlidesCarnival Graphics: https://freepik.com Star Wars/Star Trek/Stargate/Marvel universe objects belong to their respective owners 27