<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Saso Trpovski</title>
    <description>The latest articles on Forem by Saso Trpovski (@sasoqa).</description>
    <link>https://forem.com/sasoqa</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2273556%2F875c638f-b933-48d2-a573-f37027b3a3d4.jpg</url>
      <title>Forem: Saso Trpovski</title>
      <link>https://forem.com/sasoqa</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/sasoqa"/>
    <language>en</language>
    <item>
      <title>Make Your Tests Pop: Add Emojis and Icons to Your QA Output Like a Pro 🚀</title>
      <dc:creator>Saso Trpovski</dc:creator>
      <pubDate>Sat, 26 Apr 2025 06:46:58 +0000</pubDate>
      <link>https://forem.com/sasoqa/make-your-tests-pop-add-emojis-and-icons-to-your-qa-output-like-a-pro-3i3b</link>
      <guid>https://forem.com/sasoqa/make-your-tests-pop-add-emojis-and-icons-to-your-qa-output-like-a-pro-3i3b</guid>
      <description>&lt;h2&gt;
  
  
  🧪 Make Your Tests Pop: Add Emojis and Icons to Your QA Output Like a Pro 🚀
&lt;/h2&gt;

&lt;p&gt;Are your test results looking a bit… bland?&lt;/p&gt;

&lt;p&gt;Let’s fix that — with a little help from &lt;strong&gt;emojis&lt;/strong&gt; 💥.&lt;/p&gt;

&lt;p&gt;Whether you're using Python, JavaScript, Bash, or Markdown, adding emojis can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Make logs easier to scan&lt;/li&gt;
&lt;li&gt;📦 Organize your README visually&lt;/li&gt;
&lt;li&gt;🎯 Highlight results&lt;/li&gt;
&lt;li&gt;😎 Add personality to your QA output&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  💻 Where Can You Use Icons?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. ✅ In Python Code (print or comments)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;✅ Test passed&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;🧪 Running test case: Create User&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;🔐 Simulating login...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. 📝 In Markdown (README.md, docs, GitHub)
&lt;/h3&gt;

&lt;h2&gt;
  
  
  🚀 Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🔍 Easy API test setup&lt;/li&gt;
&lt;li&gt;🔐 Login test included&lt;/li&gt;
&lt;li&gt;📦 Plug-and-play structure&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. 🧪 In Bash Scripts / Terminals
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;echo "🚀 Starting test run"
echo "✅ All tests passed"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🧰 Suggested Emoji Cheat Sheet for QA Projects
&lt;/h3&gt;

&lt;p&gt;Emoji   Use Case&lt;br&gt;
✅ Test Passed&lt;br&gt;
❌ Test Failed&lt;br&gt;
🧪    Running Tests&lt;br&gt;
🔧    Setup / Configuration&lt;br&gt;
🔐    Authentication&lt;br&gt;
📦    Modules / Packages&lt;br&gt;
🚀    Launch or Start Process&lt;br&gt;
🕵️‍♂️    Debugging&lt;br&gt;
📝    Logging Info&lt;br&gt;
📊    Reporting / Metrics&lt;br&gt;
⏱️  Timing / Benchmarking&lt;br&gt;
🧠    AI / Logic Component&lt;br&gt;
📁    Folder / Structure&lt;br&gt;
💾    Save to File&lt;/p&gt;

&lt;p&gt;Copy-paste directly from &lt;a href="//getemoji.com"&gt;getemoji.com&lt;/a&gt; or &lt;a href="//emojipedia.org"&gt;emojipedia.org&lt;/a&gt; and have fun with it!&lt;/p&gt;

&lt;h3&gt;
  
  
  🧠 Pro Tip
&lt;/h3&gt;

&lt;p&gt;Icons don’t just look good — they help your team:&lt;br&gt;
 -Scan logs faster&lt;br&gt;
 -Understand code quicker&lt;br&gt;
 -Find issues visually&lt;/p&gt;

&lt;h3&gt;
  
  
  Bonus points if you use them in your CI logs or test reports! 🧃
&lt;/h3&gt;

&lt;p&gt;🗣️ What About You?&lt;/p&gt;

&lt;p&gt;Do you use emojis in your test output?&lt;br&gt;
Share your favorite ones in the comments! 👇&lt;/p&gt;

&lt;p&gt;Created by Saso Trpovski&lt;br&gt;
Check out my starter kit 👉 &lt;a href="https://qatogo.gumroad.com/l/qa-to-go" rel="noopener noreferrer"&gt;QA to Go on Gumroad&lt;/a&gt;&lt;/p&gt;

</description>
      <category>testing</category>
      <category>python</category>
      <category>automation</category>
    </item>
    <item>
      <title>From Zero to Playwright: Building a QA Starter Kit for Automation Testing</title>
      <dc:creator>Saso Trpovski</dc:creator>
      <pubDate>Tue, 22 Apr 2025 21:13:20 +0000</pubDate>
      <link>https://forem.com/sasoqa/from-zero-to-playwright-building-a-qa-starter-kit-for-automation-testing-a80</link>
      <guid>https://forem.com/sasoqa/from-zero-to-playwright-building-a-qa-starter-kit-for-automation-testing-a80</guid>
      <description>&lt;h2&gt;
  
  
  🚀 Introduction
&lt;/h2&gt;

&lt;p&gt;When I first started exploring test automation, I juggled tools, folder structures, and various frameworks. Most of the tutorials were either too advanced or didn’t follow best practices. So I decided to create something that would help beginners get started quickly, and still be scalable for professional teams. That's how &lt;strong&gt;QA to Go&lt;/strong&gt; was born.&lt;/p&gt;

&lt;p&gt;This post shares my journey of building a &lt;strong&gt;Python + Playwright&lt;/strong&gt; starter kit — from scratch — and how it evolved into a clean, reusable testing framework.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ The Problem I Wanted to Solve
&lt;/h2&gt;

&lt;p&gt;Many QA beginners (and even some experienced testers) struggle with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Setting up a testing environment&lt;/li&gt;
&lt;li&gt;Choosing the right tools&lt;/li&gt;
&lt;li&gt;Managing test structure and maintainability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wanted to create a solution that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Uses modern, open-source tools&lt;/li&gt;
&lt;li&gt;Works on Windows, Mac, and Linux&lt;/li&gt;
&lt;li&gt;Has a DRY (Don’t Repeat Yourself) folder structure&lt;/li&gt;
&lt;li&gt;Includes basic reporting out of the box&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ⚙️ Tools Used
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Python 3.10+&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Playwright&lt;/strong&gt; (for browser automation)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pytest&lt;/strong&gt; (for test running)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;pytest-html&lt;/strong&gt; (for reports)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Optionally, it works great with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;VS Code&lt;/strong&gt; or &lt;strong&gt;JetBrains Rider&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Git&lt;/strong&gt; for version control&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📁 Folder Structure
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;QA_to_Go/
├── tests/               &lt;span class="c"&gt;# All test cases go here&lt;/span&gt;
│   └── test_sample.py
├── pages/               &lt;span class="c"&gt;# Page Object Models (POM)&lt;/span&gt;
├── utils/               &lt;span class="c"&gt;# Helpers like config or browser setup&lt;/span&gt;
├── reports/             &lt;span class="c"&gt;# HTML reports&lt;/span&gt;
├── requirements.txt     &lt;span class="c"&gt;# Project dependencies&lt;/span&gt;
└── README.md            &lt;span class="c"&gt;# Setup instructions&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This structure is modular, so you can add API tests, DB validation, and more later.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔍 Setting Up the Project
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step 1: Install Python
&lt;/h3&gt;

&lt;p&gt;Check if Python is installed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If not, &lt;a href="https://www.python.org/downloads/" rel="noopener noreferrer"&gt;download Python here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Create and Activate a Virtual Environment
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python &lt;span class="nt"&gt;-m&lt;/span&gt; venv venv
&lt;span class="c"&gt;# Windows:&lt;/span&gt;
venv&lt;span class="se"&gt;\S&lt;/span&gt;cripts&lt;span class="se"&gt;\a&lt;/span&gt;ctivate
&lt;span class="c"&gt;# Mac/Linux:&lt;/span&gt;
&lt;span class="nb"&gt;source &lt;/span&gt;venv/bin/activate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 3: Install Dependencies
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;playwright pytest pytest-html
python &lt;span class="nt"&gt;-m&lt;/span&gt; playwright &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also use a &lt;code&gt;requirements.txt&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;playwright
pytest
pytest-html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Install it with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 4: Create a Sample Test
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# tests/test_sample.py
&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;playwright.sync_api&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;sync_playwright&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;test_open_page&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nf"&gt;sync_playwright&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;browser&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chromium&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;launch&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="n"&gt;page&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;browser&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new_page&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="n"&gt;page&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;goto&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://example.com&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;assert&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Example&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;page&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;title&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="n"&gt;browser&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;close&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 5: Run the Test
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pytest &lt;span class="nt"&gt;--html&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;reports/report.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  💡 Why QA to Go Works
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Lightweight &amp;amp; Simple&lt;/strong&gt; – no bloated framework, just what you need&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fast to Set Up&lt;/strong&gt; – go from zero to test in minutes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scalable&lt;/strong&gt; – easily add tests, POMs, utilities, or APIs&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📦 Want the Kit?
&lt;/h2&gt;

&lt;p&gt;You can grab the full working starter kit here: &lt;a href="https://qatogo.gumroad.com/l/qa-to-go" rel="noopener noreferrer"&gt;QA to Go on Gumroad&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Full folder structure&lt;/li&gt;
&lt;li&gt;Pytest + Playwright integration&lt;/li&gt;
&lt;li&gt;HTML reports&lt;/li&gt;
&lt;li&gt;Setup guide as a PDF&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🙌 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;If you’re learning QA or just want a clean way to get started with Playwright and Python, &lt;strong&gt;QA to Go&lt;/strong&gt; is for you.&lt;/p&gt;

&lt;p&gt;I’d love your feedback, ideas, or improvements. Let’s make QA simpler, faster, and more accessible together.&lt;/p&gt;

&lt;p&gt;Follow me on &lt;a href="https://www.linkedin.com/in/sasotrpovski/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;  and let’s connect!&lt;/p&gt;

</description>
      <category>python</category>
      <category>playwright</category>
      <category>qa</category>
    </item>
  </channel>
</rss>
