Weeklies - amauran/project-giskard GitHub Wiki

2023-09-18

Done

  • finished current version of Portfolio and started applying for jobs

To Do

  • look into writing a custom RPA library
    • downloads an image and saves it into a folder
    • renaming the file also
  • keep applying for jobs
  • read about testing in theory (again :D)
  • read about testing through APIs

2023-08-29

Done

  • finished writing the test
  • installed Browser library and Playwright
  • ran successful tests both on Selenium and Browser libraries
  • created a Portfolio folder and copied things there for final cleanup and documentation
  • finished cleaning up code
  • created pushable log folders
  • merged feature to main branch
  • created a branch for documentation

To Do

  • documentation
    • README.md files on all necessary pages (= inside the folders they need to be in)
    • GitHub page documentation and organization
      • what you want to be seen on the front pages of the project and wiki
  • theory of testing (still need to read up on that :D)

2023-08-18

Done

  • made a cleaner and better organized version of previous test folder
  • made a plan for a portfolio test suite
  • started building order handling test
    • created a manager level user for Happy Robot shop (not fully admin, but with enough rights to handle shop)
    • customer login already existed, built manager login for WordPress/WooCommerce side of things
    • customer putting things in shopping cart done earlier, now added things needed to finalize order
    • note: had to set shop payment method to 'cash on delivery' to avoid adding actual payment methods to shop
    • added segment to check shopping cart contents on customer side
    • started building segment for manager to check orders

To Do

  • finish order handling test
    • manager checks order and adds discount coupon, and processes order
    • customer checks order to see coupon is added and order is processed
    • manager logs in and deletes order
  • re-install Browser library and test its wrapper also works
  • learn more about testing theories

2023-08-04

Done

  • created user keyword wrappers for Selenium and Browser (updated as needed with new keywords)
  • created tests using user keywords and wrappers
    • login into Happy Robot shop as an existing user
    • add items into shopping cart, then empty shopping cart

To Do

  • make a cleaner and better organized version of previous test folder
  • make a plan for a portfolio test suite
    • making an order, checking it on the admin side
  • re-install Browser library and test its wrapper also works
  • learn more about testing theories
  • refresh what you learned about selectors

Break for summer

2023-05-03

Done

  • started creating user keywords using SeleniumLibrary keywords
  • started reorganizing test folders (Resources)
  • created a test using user keywords
    • login into Happy Robot shop as an existing user

To Do

  • Make a prototype of the Portfolio project
  • If Anne feels like writing, the creative writing is a top priority
  • Think about naming conventions and where different types of information needs to be located
  • If there is extra time, study about the theory of testing
    • Links can be found in previous weeklies

2023-04-18

Done

  • Learned more about selectors (starting with CSS)

    • Tested different CSS selectors:
      • all different selector types mentioned in CSS selectors
      • documented tests with examples (Selector tests code)
  • Did different robot tests (login and shopping cart functions)

    • go to a specific page in shop
    • select a specific product in shop (go to product page, find it by searching by name, etc.)
    • handling the shopping cart features (add/remove/item count/etc.)
    • pushed example codes into Github, documentation of what was done is in the code

To Do

  • repeat previous tests but now using custom keywords
    • learn how to create keywords in Robot Framework
    • clear, single purpose keywords that are reusable in other test suites as well (log in, add item to cart, etc.)
    • reusable both on user side as well as admin side (making and order, checking the order as admin)

Easter holidays and other stuff

2023-03-26

Done

  • wrote a test case that signs a user into the Happy Robot shop (the test environment)

    • created a test user (customer) beforehand
      • created a new email address in the nimbus.fi domain for the test user
      • created a new user in the shop with the test email
    • after signing the new user in, put something in the shopping cart
      • created two products in the Happy Robot shop to use for the test
      • logged the user in, added products in the cart, and checked they really were in the cart
      • tests are better documented in the robot files
    • tests succeeded, eventually :)
  • check out Robocorp beginner course

    • partially checked

To Do

  • Learn more about selectors (start with CSS)

    Note: learning CSS first because it is better to understand that before xpath, and using CSS is preferable in most cases.

  • Plan different selection/selector strategies and think about when it's best to use which (using the Happy Robot shop)

    • go to a specific page in shop
    • select a specific product in shop (go to product page, find it by searching by name, etc.)
    • handling the shopping cart features (add/remove/item count/etc.)

2023-03-19

Done

  • Wrote and ran first robot tests

    • using Chrome and SeleniumLibrary's built in keywords
    • opening browser, going to a specific url
    • finding elements on page and interacting with them
      • button
      • text box
    • used simple yaml files as variable files
      • element paths
      • login information
  • To be able to use yaml files

    • installed pyYaml to venv with poetry
    • added yaml syntax highlighting to VSCode
  • Set up a testing environment (webshop done by Tero)

To Do

  • check out Robocorp beginner course
  • write a test case that signs a user into the Happy Robot shop (the test environment)
    • create a user beforehand
    • can also try creating a new user through the shop
    • after signing new user in, put something in the shopping cart

GOAL FOR TESTS

  • get more used to writing test cases (the basic structure, jargon, etc.)
    • aiming to be able to talk about creating custom keywords next time

2023-03-12

Done

  • Finished development workspace setup

  • Installed into WSL

    • poetry, Node
  • Cloned git project (project-giskard) to WSL

    • created virtual environment into project folder
    • installed Robot Framework into venv
    • after some thought installed Selenium and SeleniumLibrary into venv
    • installed chromedriver into venv
  • Installed Chrome into Ubuntu for all users

    • fixed apt-key issue with Google repository
    • installed Chrome
  • tested development environment with a few easy demo robots - great success :D

  • created firewall for test server

  • made inbound rule to accept only specific IP
  • Started a new wiki page (glossary/dictionary)

  • Documented everything (as well as I remembered)

  • Learned about Linux root directories

To Do

  • Start doing tests
    • simple tests on different sites or do other random test :D
      • like the image search/save from instagram or similar site
      • test posting without publishing on DW?
      • autologin somewhere
      • find simple demo samples and try to figure out how they work

GOAL FOR TESTS

  • to learn how to write a simple test that is able to fill a form (such as login, etc.) and check the result
    • like change a part of text and then search for it like in the Playwright example

Secondary to do

  • Things to read/learn if time:
    • types of software testing
    • agile manifesto https://agilemanifesto.org/ + one critique against it
    • learn them in a way that you could explain them to a newbie

2023-03-05

Done

  • Finished work things and said farewell to co-workers -_-

  • Organized part of the physical workspace

  • Organized part of the development workspace

  • PoC Happy-Robot

    • Proof of Concept: testing some concept to see if it's viable
    • tested setting up a server (Linux)
    • tested installing nginx on the server
    • tested editing the index page
    • planned to use a similar setup, because we need a server to set up a test environment in https://happy-robot.nimbus.fi/
  • Documented things

To Do

  • Check if Python is still installed on the Windows side

    • remove if it is
  • Install into WSL

    • poetry (and venv if needed)
    • Node with Node Version Manager (nvm)
    • Robot Framework plugin (if not there already)
    • any other modules needed
  • Clone git project (project-giskard) to WSL

  • After development workspace is ready, test it

    • find some simple Robot Framework code online, copy/modify it and make a test run
    • preferably code that uses Browser library instead of Selenium (because Selenium is getting old)
  • Start a new wiki page (glossary/dictionary)

  • Document everything

  • Things to read/learn if time:

  • Add Hetzner Firewall to the Happy Robot server.

    • Configure firewall so that the server can only be accessed from the home network IP address

2023-02-25

Done

  • Wrote a short story and made two banners for it
  • Posted all of those
  • Started project calendars and bought supplies for using them

To Do

  • Work Monday & Tuesday, say farewell to co-workers and stuff
  • Wednesday is a day off, REST
  • Organize physical workplaces for next week
  • Organize development workspace
    • remove old development installations

    • install Visual Studio Code

      • install WSL2 plugin
      • install Robot Framework plugin
    • remove and re-install WSL2

      • install Python with venv and poetry
      • install Node with Node Version Manager (nvm)
    • clone git project to WSL2

    • use venv to install Python, use nvm to install Node

    • install Robot Framework, modules etc. in project (~/git/project-giskard)

    • document everything to this wiki

Decisions

  • Weekly routine:
    • Monday - Thursday: 3 days for writing, 1 day for Robot Framework
    • Friday: day off
    • Saturday - Sunday: Robot Framework
    • Weekly meeting on Saturday

2023-02-18

Done

  • Made preliminary plans
  • Created a GitHub repository + wiki for this project
  • Decided to start with one week sprints with weekly meetings on Saturdays
  • Decided to split the week between this project and creative work (3 days for each, 1 day off)
  • Decided the project will start on Monday March 6th

To Do

  • Dedicate next week to creative stuff