Thursday, February 7, 2019

#CodeConfident: Serenity Cucumber Practice

As announced, I plan to publish my coding journal for each GitHub repository I create within my #CodeConfident challenge. I've just finished the scope of my first challenge, so here are my related notes; as raw as they are, in chronological order. My hope is that they will serve three goals.
  1. Act as learning journal for myself, making my learning journey visible helping me acknowledge what I achieved
  2. Provide context for anyone who would like to check out my repository and maybe provide feedback and support
  3. Potentially provide a source of learning and inspiration for anyone else following my journey
Here's my journal for my first GitHub repository serenity-cucumber-practice. Want to provide feedback on it or pair up with me on further challenges? I hereby call for collaboration!

January 13

  • start from Serenity Cucumber starter project (https://github.com/serenity-bdd/serenity-cucumber-starter)
  • set up remote Chrome running Docker  
  • install TigerVNC for Windows 
  • revise scenario 
  • adapt step definitions -> still successful (gradlew clean test aggregate) 
  • create first page object and try to open it -> not compiling, packages to import "don't exist": "error: package net.serenitybdd.core.pages does not exist" 
  • TODO: fix issue

January 14

  • followed instructions to have page objects in main>java, which resulted in lots of fruitless searching why I got a "error: package does not exist" and the class and import could not be added to the classpath by IntelliJ; tried lots of things until realizing the resolved dependencies are shown in External Libraries for each module in the packages sidebar (always checked in the projects view); move of page object to another place solved the issue
  • "error: package net.serenitybdd.core.pages does not exist"  -> realized it has to be in test as only there dependencies are resolved by gradle build  
  • Selenium Grid setup in Docker is working as usual  
  • TODO: Clean up and do first minimal commit

January 15


January 17

  • generated SSH key and added it (all of https://help.github.com/articles/connecting-to-github-with-ssh/) -> worked like a charm, IntelliJ saves passphrase
  • discovered https://desktop.github.com/ -> could delete old branch via UI
  • first version of add item to cart scenario
  • cleaned up a bit
  • revising package structure: learned I need to put everything into one custom package, otherwise test runner fails
  • TODO: improve first scenario, then implement second

January 20


January 24


January 26


January 29


January 30

  • cleaned up branch
  • split different test version into methods to keep code for feedback and be able to switch between them easier
  • none of them is working, need feedback
  • TODO: implement 2 other scenarios on master to finish scope and ask for feedback

February 5


February 6

  • several potential scenarios to try
  • tried to go for categories; stumbled across finding a good selector for menu element, was not interactable
  • switched to extend the search feature by further scenarios; added view product page
  • tried to add view product preview and again element was not interactable; found I was using the mobile site not the website for locating it!
  • learned how to use actions to mouse over the element then the next element is interactable
  • learned how to switch to an iframe (https://www.guru99.com/handling-iframes-selenium.html)
  • merged latest master into branch
  • TODO: write blog post with learnings, ask for feedback

Calling for Feedback

That's it so far, good enough for now! Your feedback is appreciated.

2 comments: