Meetup On The Beach – Ministry of Test #Athens 2024

Hello hello 👋

First, I want to say a big thank you to Petros and all the Ministry of Testing Athens who received me and hosted this Meetup On The Beach – Athens on 30 May/2024 !

By far, it was the best meetup I’ve ever been to. The energy, the people, and the place were already amazing, but then adding the food, the weather, and obviously the quality of the talks and discussions just made it the icing on the cake! I don’t think they advertise how good it is 😂

Finding Your Voice – How to stop worrying and give the talk 

Sophie Küster was fantastic! She was very direct to the point and delivered simple messages that motivated people to give talks more often. Her tips were great, and they definitely resonated with me. Public speaking makes me really anxious too, and it took me a long time to gain the courage to go from blogging to speaking in public.

The tips:

  • Prepare yourself – Lots of practice, rehearsals and research
  • Be yourself and show your passion
  • Structure your presentation
  • No spelling mistakes 😬
  • Wear comfortable shoes 👠
  • Put some red lipstick on, joking this is just a reference for something Sophie often puts on to feel stronger when presenting, but you can find your own power move, like wearing a cowboy hat🤠

Thanks Sophie, hopefully see you again soon !

APIs for Browser Automation (Selenium, Cypress, Puppeteer, or Playwright)

The talk compared these four different tools for browser automation: Selenium, Cypress, Puppeteer, and Playwright. Selenium is the grandpa and senior in this space, but Cypress and Playwright are gaining more and more traction. Not surprised as they are easier to use and when working across different browsers, also the fact you don’t need to have waiting workarounds 😫

Boni Garcia even showed demos and the code comparing these tools for the same scenario ! Unfortunately my phone was taking horrible pictures, so I am sharing the slides here, much better !

Finally my Talk: A Tester’s Guide to Navigating the Wild West of Web3 Testing

As always I start first checking the level of the audience on Web3 knowledge and majority still has no idea what is Web3 or is a beginner, which makes me focus a lot in the beginning where I go through what is Web3 and Blockchain.

I always feel like I should give more examples, but then time is always something that holds me back a bit – Maybe I should remove the infrastructure part of the Blockchain and just focus on use cases ?

Then after going through the concepts, we talked about some extra resources, challenges and tools you can use when doing Web3 Tests:

  • Check this Blockchain Developer Roadmap for a comprehensive learning path (I only offered a brief overview during the talk).
  • This is a great Interactive Blockchain Demo for a hands-on understanding of blockchain functionality.
  • Here are some tools you can use for Web3 testing: Foundry, BitcoinJ, Hardhat, Embark, Web3.js, Remix-IDE, Synpress, Caliper, OpenZeppelin, Postman.

Check out the slides here !

Afterwards…

I DO LOVE the analysis part ❤️

Completely anonymous feedback at the end of the talk summarized that people loved the quiz at the end where we gave away some The Chaincademy swags for the top 3 places.

A good, friendly competition is always a good thing!

The feedback also shows that time was an issue. It seems like didn’t need that much time to discuss the infrastructure and more time was needed for use cases and explanations. Let’s see what I can do to improve for my next talk at Eurostar Conference next week !

The results can be seen here:

Who voted not sure ?

Big shout out to Angelos Mitsios for coming to me afterwards and making me think about a really good point about Blockchain Decentralisation:

While removing the middleman like banks for financial transactions with cryptocurrency is a big step, complete decentralization is difficult. We still need Internet providers and Electricity providers. Electricity can potentially be self-generated with solar panels, but internet access relies on complex infrastructure across vast distances.

And even with encryption tools like VPNs, governments can still disrupt internet access, highlighting the ongoing tension between technological freedom and government control. Ultimately, the focus should be on the practical applications of cryptocurrency (Long distance fast transactions without middleman: bankwallet to wallet) while acknowledging the limitations of true decentralization in today’s world (Still depend on middleman: Internet and Electricity Providers)

The Speakers !

Finally met these two after seeing them talking in so many events:

Boni Garcia is an Associate Professor at Universidad Carlos III de Madrid in Spain. He is an official committer at the Selenium project and the creator and maintainer of several projects, such as WebDriverManager or Selenium-Jupiter. He wrote the books Mastering Software Testing with JUnit 5 and Hands-On Selenium WebDriver with Java.

Sophie is a test automation engineer at cronn GmbH, a Bonn based IT company. No stranger to the universe’s gut punches, she is passionate about improving awareness and communication about mental health and self-care.

That’s all 👋 Meet you next week at Eurostar in Stockholm and Geek 2024 – EE Conference in London and my last conference of the year Automationstar in Vienna !

API tests with newman and postman

 

API is the most important part of your software because it has the highest security risks. What if someone were to hack your API? They could get production data, they could Bitcoin ransom the servers or they could hide on the machine until something interesting happens. The bottom line is, the stakes when using an API are much higher than if there is just a bug in the UI of your application — your data could be at risk and, by proxy, all of your users’ data.

API testing is not only the most vital testing to be done against your application, but it is also the easiest and quickest to execute

With your API tests and having a Continuous integration process, you can:

  • Test all of your endpoints no matter where they are hosted
  • Quickly ensure all of your services are running as expected
  • Confirm that all of your endpoints are secured from unauthorized AND unauthenticated users

 

Postman

Download postman for free

Now you need to have an API to test, you can select one from any-api or qa-symphony for this tutorial. In this example we are going to use this Oxford Dictionaries. Now on postman, you can create a collection and start to feed with your tests. Also, you can create an environment with environment variables and also global variables that can be used across the requests, for example a token.

 

Login with Token on Postman

  • Click on Manage Environments

 

  • Set the host

  • Type the request URL, change the host to the variable {{host}}
  • Select POST request and type the headers

 

  • Type the Body with the credentials for your site.

 

  • Open the Tests tab and write the tests to validate the request and set the access_token as an environment variable. You will need to use this variable in the header of all of your next requests.

var jsonData = JSON.parse(responseBody);

tests["Status code is 200"] = responseCode.code === 200;
tests["Access Token is not blank"] = jsonData.access_token !== "";
tests["Message success"] = jsonData.scope.indexOf("success") !== -1;

postman.setEnvironmentVariable ("access_token", jsonData.access_token);

 

  • Hit Send and if the status code is 200, it means the credentials are correct. Save the request in your collection.

 

  • Now you can create all the other requests and tests needed, just remember to add the {{access_token}} in your header and save the requests in your collection

 

 

Running your API automated tests

  • Now that you have a collection with all your tests, click on Runner and select your collection, environment. Type the number of interactions and delays in case you want to simulate more than multiple interactions.

  • You can also import a CSV file with data and substitute for variables in the body or header of the request.

 

  • The results report will be like this one:

 

Newman

 

To run your tests from the command line you need to have Newman, open your terminal and run npm install -g newman

  • Export your collection from Postman (Collection_v2) and download your environment (go to “Manage Environments” and click the download button) from Postman

 

  • Open your terminal an type the command to run the API tests: newman run /local/path_to_your_postman_collection.json

 

  • The result will be something like this:

 

  • To run the script on Jenkins you need to add the parameters  –reporters junit,json and the results should be created under a folder called “Newman” in your working directory, so: newman run -reporters junit,json /local/path_to_your_postman_collection.json

 

Resources: https://www.qasymphony.com/blog/automated-api-testing-tutorial/

https://api.qasymphony.com/#/login/postAccessToken