RSSAmplifier

Blog

Filip Hric

Filip Hric

filiphric.comRSS feed ↗67 posts

Latest posts

Maslow's Hammer and Three Lies QA Tells Itself

A short post on what needs to change for QA to thrive in the age of AI.

AGENTS.md Files Are Not Misleading Your AI Agent

A recent study sparked headlines claiming AGENTS.md files hurt AI agent performance. But the full picture tells a different story - human-written context files actually improve results by 4%.

Don’t let A.I. read your .env files

Stop storing API keys and database passwords in plain text .env files. Learn how to use 1Password CLI to inject secrets at runtime for better security.

How I automated the annoying part of my job with Goose and Playwright MCP

Learn how to automate repetitive issue creation tasks using Goose desktop app and Playwright MCP. Stop context switching and let AI handle the boring stuff.

10 Tips for Writing Playwright Tests with Cursor

Practical tips gathered from months of writing Playwright tests with Cursor. Learn how to use project rules, workflows, screenshots, and MCP for better test automation.

2FA testing with Playwright and Mailosaur

Learn how to automate email magic links, SMS verification codes, and authenticator app logins in Playwright using Mailosaur for comprehensive authentication testing.

Testing Will Become More Important, Not Less

LLMs speed up coding but quality concerns remain. Testing becomes more crucial, evolving to include AI-generated tests while human expertise in test design stays valuable.

Understanding timeouts in WebdriverIO

Learn how to effectively use timeouts in WebdriverIO to create reliable end-to-end tests

Introduction to testing in Vitest

A comprehensive guide to Vitest testing framework, covering its core features, capabilities and practical examples for unit and component testing

How to do authentication in Playwright

Learn different approaches to handle authentication in Playwright, from basic login sequences to advanced techniques like session storage and API auth.

Test like a developer, develop like a tester

How testers and developers can work better together. This is a written version of my keynote talk from Front-End Test Fest 2023.

Laid off as a tester. What now?

Navigating the changing QA job market: tips for staying relevant, expanding your skillset, and preparing for potential layoffs in software testing

Testing as an entry gate to IT

Some people don’t like the phrase “testing can be a great entry gate into the world of IT”. I kinda disagree, I think testing can be a great entry into the world of IT. This post discusses some reasons why I think that.

Next big trend in testing? Debugging

Debugging has been with us and will be for a long time. Making improvements on that experience might just be the next big thing.

Time-travelling with Replay.io

Replay.io is a tool that records everything your app does and provides you with debugging superpowers. The recording is a combination of video, source code of your application, DOM snapshots and a timetravel-enabled devtools that allow you to retroactively add print statements to your app’s execution.

Cypress panic (if there even is one)

A reddit post was making rounds on the internet claiming that Cypress.io is dying and you should migrate your projects. I believe this post got way more attention than it deserved. In fact, I believe it deserved no attention whatsoever because by amplifying it, the lies that it contained spread far and wide.

Cypress basics: Using baseUrl

Setting up `baseUrl` helps you write your test in a way that enables running them against multiple environments. This is vital to make your tests available for multiple versions of your app.

Cucumber in Cypress: A step by step guide

A detailed guide on how to set up cucumber-preprocessor, run your feature files, organize your tests, filter them by tags and set up an HTML reporter.

How to wait for page to load in Cypress

What if your page takes time to load and your first command fails because of this? In this blogpost I explain how to make sure that your page is fully loaded

How to structure a big project in Cypress

Opinion on how a project with +2000 tests should be structured in order to achieve good maintainability, speed and lower the risk of introducing regressions.

Cypress.io and GitHub Actions: A step by step guide

GitHub Actions are a powerful and easy-to-learn tool that can help you quite a lot, In this blogpost we'll take a look into how they can be used to run your Cypress tests.

Use cy.session() instead of login page object in Cypress

Short guide to using cy.session() command an save minutes from your test run. Creating a session with Cypress can not only save you time, but can be a great substitution for a log page object

Testing a PDF file with Cypress

How to download a PDF file, check the download and parse out the content of the file for further testing

Testing geolocation with Cypress

Explanation on how to test a page that can locate its users either via API call or using browser’s Geolocation API capabilities

Cypress basics: Uploading a file

Short explanation on how to upload a file with Cypress to a drag and drop element, inputs or directly by calling your API

8 common mistakes in Cypress (and how to avoid them)

In this blogpost I’m sharing a couple of testing antipatterns that can make your test flaky, hard to read or slow.

Testing frontend performance with Cypress

How to measure loading of elements appearing on page using browser performance API and creating a custom command out of it.

Writing better command chains in Cypress

Understanding how command chaining in Cypress works is essential for writing stable tests. In this week’s explainer we’ll take a look on how we can make our tests more stable with writing proper command chains

Google Sign in with Cypress

Explanation on how to log in to Google SSO enabled app programmatically and how does the process actually work.

Switch between environments in Cypress

There are multiple ways you can switch to different environments in Cypress. In this blogpost, I explain which ones you can use and show some examples.

Cypress basics: API testing

Cypress is a great testing tool that can be also very helpful when testing API. In this post, I’ll go over some basics on how to write an API test in Cypress.

Waiting in Cypress and how to avoid it

Adding a wait to your test is something people like to avoid. Luckily, with Cypress, there are several ways of how to avoid waiting for a static period of time and simply move a test forward once the application is in a state we desire.

Cypress basics: Variables

How to store variables in Cypress tests and use variables and aliases inside the test and between tests.

Cypress basics: xpath vs. CSS selectors

Using xpath with Cypress is possible through a plugin. In this post I show you how to install this plugin and show you some examples how to use xpath and compare it to Cypress commands.

Autocompleting selectors in Cypress with TypeScript

Using TypeScript, we can make our lives with custom selectors easier. Our editor can autocomplete our selectors and check if we aren’t using any that were already deleted

Generating a random user in Cypress test

Quick guide on how to generate a random user in Cypress and an explanation of various ways on how to integrate that data into Cypress test.

Testing links with Cypress

Let’s say you want to test all the links in a navigation bar, ideally in most effective way. In this article I show you some of the most effective ways

Reading and testing JSON object in Cypress

Ever got that frustrating Cannot read property 'x' of undefined error? If you are starting with JSON objects, it is easy to get lost. In this article I hope to shed some light into how to read and test them with Cypress

Cypress basics: Check attributes, value and text

Short explanation of how to test and access different properties of a given element using .invok() function

.contains() - an overlooked gem in Cypress

Although the name of this command sounds like an assertion, it is actually a selecting command. Let’s look into what makes this command great.

Improve your custom command logs in Cypress

Short explanation on how to take your custom commands to another level with custom logging, snapshots and many more.

Tips for debugging tests in Cypress

If you’ve been testing for a longer time, you know that writing a test is only half of the story. The other half is maintenance. I share a couple of ways you can debug your tests in Cypress in my latest article.

Make your Cypress tests faster with .clock()

With .clock() and .tick() functions, it is possible to manipulate app’s time and make your test faster by skipping waits of setTimeout() and setInterval() functions.

Starting with TypeScript in Cypress

TypeScript has been gaining popularity over last couple of years, and for good reason. Learn how you can implement TypeScript features in your tests.

Cypress basics: before(), beforeEach(), after() and afterEach()

Mocha hooks can help you tremendously when trying to avoid repetition in your tests. This article explains how these hooks work and how to use them effectively.

Skip test conditionally with Cypress

Description of various ways of how you can filter your tests, run them based on a given condition or skip them altogether in Cypress.

Cypress basics: check if element exists

In this article we are exploring ways to assert visibility of an element on a page. There are couple of gotchas that may be confusing at times.

Dealing with multiple redirects in Cypress

There are cases where you might deal app quickly redirecting through multiple pages. Chances are that Cypress will not register the page in the middle of redirect chain. In this post I will show you ways you can deal with this.

Understanding code coverage in Cypress

It’s pretty awesome that you can use e2e tests to generate your coverage data. In this blog I’m describing how the whole process works.

Hover in Cypress

Short guide on how to hover over elements in Cypress. As there are multiple ways hover actions work, there are multiple ways of achieving hover.