Start Test Automation: Step-by-Step Guide for Beginners

Introduction

Test automation is a game-changer for software testing, allowing you to run repetitive tests quickly and efficiently. In this guide, we’ll walk you through the basics of test automation using two powerful tools: Selenium with Python and Playwright with TypeScript. By the end of this post, you’ll have written your first automated test script for a real-life example—a login page.

We’ll cover:

  1. Setting up your environment.
  2. Writing your first test script.
  3. Running the test and interpreting the results.

Let’s get started!


Step 1: Setting Up Your Environment

For Selenium/Python:

  1. Install Python: Download Python from python.org and ensure it’s added to your PATH during installation.
  2. Install Selenium: Use pip to install Selenium:
pip <span>install </span>selenium
   pip <span>install </span>selenium
pip install selenium

Enter fullscreen mode Exit fullscreen mode

  1. Download WebDriver: Download the appropriate WebDriver for your browser (e.g., ChromeDriver for Chrome) and add it to your system PATH.

For Playwright/TypeScript:

  1. Install Node.js: Download Node.js from nodejs.org and install it.
  2. Install Playwright: Use npm to install Playwright:
npm init playwright@latest
   npm init playwright@latest
npm init playwright@latest

Enter fullscreen mode Exit fullscreen mode

This command will create a new Playwright project and install all necessary dependencies.

  1. Set Up TypeScript: If you’re new to TypeScript, don’t worry—Playwright handles most of the setup for you.

Step 2: Writing Your First Test Script

Example Scenario: Automating Login on a Sample Website

We’ll automate the login process for a sample website like https://the-internet.herokuapp.com/login. The goal is to:

  • Navigate to the login page.
  • Enter valid credentials.
  • Submit the form.
  • Verify successful login.

Selenium/Python Example

Here’s how to write the test script using Selenium and Python:

<span>from</span> <span>selenium</span> <span>import</span> <span>webdriver</span>
<span>from</span> <span>selenium.webdriver.common.by</span> <span>import</span> <span>By</span>
<span>import</span> <span>time</span>
<span># Step 1: Initialize WebDriver </span><span>driver</span> <span>=</span> <span>webdriver</span><span>.</span><span>Chrome</span><span>()</span>
<span>try</span><span>:</span>
<span># Step 2: Navigate to the login page </span> <span>driver</span><span>.</span><span>get</span><span>(</span><span>"</span><span>https://the-internet.herokuapp.com/login</span><span>"</span><span>)</span>
<span># Step 3: Locate username and password fields </span> <span>username_field</span> <span>=</span> <span>driver</span><span>.</span><span>find_element</span><span>(</span><span>By</span><span>.</span><span>ID</span><span>,</span> <span>"</span><span>username</span><span>"</span><span>)</span>
<span>password_field</span> <span>=</span> <span>driver</span><span>.</span><span>find_element</span><span>(</span><span>By</span><span>.</span><span>ID</span><span>,</span> <span>"</span><span>password</span><span>"</span><span>)</span>
<span># Step 4: Enter credentials </span> <span>username_field</span><span>.</span><span>send_keys</span><span>(</span><span>"</span><span>tomsmith</span><span>"</span><span>)</span>
<span>password_field</span><span>.</span><span>send_keys</span><span>(</span><span>"</span><span>SuperSecretPassword!</span><span>"</span><span>)</span>
<span># Step 5: Click the login button </span> <span>login_button</span> <span>=</span> <span>driver</span><span>.</span><span>find_element</span><span>(</span><span>By</span><span>.</span><span>CSS_SELECTOR</span><span>,</span> <span>"</span><span>button[type=</span><span>'</span><span>submit</span><span>'</span><span>]</span><span>"</span><span>)</span>
<span>login_button</span><span>.</span><span>click</span><span>()</span>
<span># Step 6: Verify successful login </span> <span>success_message</span> <span>=</span> <span>driver</span><span>.</span><span>find_element</span><span>(</span><span>By</span><span>.</span><span>ID</span><span>,</span> <span>"</span><span>flash</span><span>"</span><span>)</span>
<span>assert</span> <span>"</span><span>You logged into a secure area!</span><span>"</span> <span>in</span> <span>success_message</span><span>.</span><span>text</span>
<span>print</span><span>(</span><span>"</span><span>Login successful!</span><span>"</span><span>)</span>
<span>finally</span><span>:</span>
<span># Step 7: Close the browser </span> <span>time</span><span>.</span><span>sleep</span><span>(</span><span>3</span><span>)</span> <span># Wait to see the result </span> <span>driver</span><span>.</span><span>quit</span><span>()</span>
<span>from</span> <span>selenium</span> <span>import</span> <span>webdriver</span>
<span>from</span> <span>selenium.webdriver.common.by</span> <span>import</span> <span>By</span>
<span>import</span> <span>time</span>

<span># Step 1: Initialize WebDriver </span><span>driver</span> <span>=</span> <span>webdriver</span><span>.</span><span>Chrome</span><span>()</span>

<span>try</span><span>:</span>
    <span># Step 2: Navigate to the login page </span>    <span>driver</span><span>.</span><span>get</span><span>(</span><span>"</span><span>https://the-internet.herokuapp.com/login</span><span>"</span><span>)</span>

    <span># Step 3: Locate username and password fields </span>    <span>username_field</span> <span>=</span> <span>driver</span><span>.</span><span>find_element</span><span>(</span><span>By</span><span>.</span><span>ID</span><span>,</span> <span>"</span><span>username</span><span>"</span><span>)</span>
    <span>password_field</span> <span>=</span> <span>driver</span><span>.</span><span>find_element</span><span>(</span><span>By</span><span>.</span><span>ID</span><span>,</span> <span>"</span><span>password</span><span>"</span><span>)</span>

    <span># Step 4: Enter credentials </span>    <span>username_field</span><span>.</span><span>send_keys</span><span>(</span><span>"</span><span>tomsmith</span><span>"</span><span>)</span>
    <span>password_field</span><span>.</span><span>send_keys</span><span>(</span><span>"</span><span>SuperSecretPassword!</span><span>"</span><span>)</span>

    <span># Step 5: Click the login button </span>    <span>login_button</span> <span>=</span> <span>driver</span><span>.</span><span>find_element</span><span>(</span><span>By</span><span>.</span><span>CSS_SELECTOR</span><span>,</span> <span>"</span><span>button[type=</span><span>'</span><span>submit</span><span>'</span><span>]</span><span>"</span><span>)</span>
    <span>login_button</span><span>.</span><span>click</span><span>()</span>

    <span># Step 6: Verify successful login </span>    <span>success_message</span> <span>=</span> <span>driver</span><span>.</span><span>find_element</span><span>(</span><span>By</span><span>.</span><span>ID</span><span>,</span> <span>"</span><span>flash</span><span>"</span><span>)</span>
    <span>assert</span> <span>"</span><span>You logged into a secure area!</span><span>"</span> <span>in</span> <span>success_message</span><span>.</span><span>text</span>
    <span>print</span><span>(</span><span>"</span><span>Login successful!</span><span>"</span><span>)</span>

<span>finally</span><span>:</span>
    <span># Step 7: Close the browser </span>    <span>time</span><span>.</span><span>sleep</span><span>(</span><span>3</span><span>)</span>  <span># Wait to see the result </span>    <span>driver</span><span>.</span><span>quit</span><span>()</span>
from selenium import webdriver from selenium.webdriver.common.by import By import time # Step 1: Initialize WebDriver driver = webdriver.Chrome() try: # Step 2: Navigate to the login page driver.get("https://the-internet.herokuapp.com/login") # Step 3: Locate username and password fields username_field = driver.find_element(By.ID, "username") password_field = driver.find_element(By.ID, "password") # Step 4: Enter credentials username_field.send_keys("tomsmith") password_field.send_keys("SuperSecretPassword!") # Step 5: Click the login button login_button = driver.find_element(By.CSS_SELECTOR, "button[type='submit']") login_button.click() # Step 6: Verify successful login success_message = driver.find_element(By.ID, "flash") assert "You logged into a secure area!" in success_message.text print("Login successful!") finally: # Step 7: Close the browser time.sleep(3) # Wait to see the result driver.quit()

Enter fullscreen mode Exit fullscreen mode


Playwright/TypeScript Example

Here’s how to write the same test script using Playwright and TypeScript:

<span>import</span> <span>{</span> <span>test</span><span>,</span> <span>expect</span> <span>}</span> <span>from</span> <span>'</span><span>@playwright/test</span><span>'</span><span>;</span>
<span>test</span><span>(</span><span>'</span><span>Login Test</span><span>'</span><span>,</span> <span>async </span><span>({</span> <span>page</span> <span>})</span> <span>=></span> <span>{</span>
<span>// Step 1: Navigate to the login page</span>
<span>await</span> <span>page</span><span>.</span><span>goto</span><span>(</span><span>'</span><span>https://the-internet.herokuapp.com/login</span><span>'</span><span>);</span>
<span>// Step 2: Fill in the username and password fields</span>
<span>await</span> <span>page</span><span>.</span><span>fill</span><span>(</span><span>'</span><span>#username</span><span>'</span><span>,</span> <span>'</span><span>tomsmith</span><span>'</span><span>);</span>
<span>await</span> <span>page</span><span>.</span><span>fill</span><span>(</span><span>'</span><span>#password</span><span>'</span><span>,</span> <span>'</span><span>SuperSecretPassword!</span><span>'</span><span>);</span>
<span>// Step 3: Click the login button</span>
<span>await</span> <span>page</span><span>.</span><span>click</span><span>(</span><span>'</span><span>button[type="submit"]</span><span>'</span><span>);</span>
<span>// Step 4: Verify successful login</span>
<span>const</span> <span>successMessage</span> <span>=</span> <span>await</span> <span>page</span><span>.</span><span>textContent</span><span>(</span><span>'</span><span>#flash</span><span>'</span><span>);</span>
<span>expect</span><span>(</span><span>successMessage</span><span>).</span><span>toContain</span><span>(</span><span>'</span><span>You logged into a secure area!</span><span>'</span><span>);</span>
<span>console</span><span>.</span><span>log</span><span>(</span><span>'</span><span>Login successful!</span><span>'</span><span>);</span>
<span>});</span>
<span>import</span> <span>{</span> <span>test</span><span>,</span> <span>expect</span> <span>}</span> <span>from</span> <span>'</span><span>@playwright/test</span><span>'</span><span>;</span>

<span>test</span><span>(</span><span>'</span><span>Login Test</span><span>'</span><span>,</span> <span>async </span><span>({</span> <span>page</span> <span>})</span> <span>=></span> <span>{</span>
  <span>// Step 1: Navigate to the login page</span>
  <span>await</span> <span>page</span><span>.</span><span>goto</span><span>(</span><span>'</span><span>https://the-internet.herokuapp.com/login</span><span>'</span><span>);</span>

  <span>// Step 2: Fill in the username and password fields</span>
  <span>await</span> <span>page</span><span>.</span><span>fill</span><span>(</span><span>'</span><span>#username</span><span>'</span><span>,</span> <span>'</span><span>tomsmith</span><span>'</span><span>);</span>
  <span>await</span> <span>page</span><span>.</span><span>fill</span><span>(</span><span>'</span><span>#password</span><span>'</span><span>,</span> <span>'</span><span>SuperSecretPassword!</span><span>'</span><span>);</span>

  <span>// Step 3: Click the login button</span>
  <span>await</span> <span>page</span><span>.</span><span>click</span><span>(</span><span>'</span><span>button[type="submit"]</span><span>'</span><span>);</span>

  <span>// Step 4: Verify successful login</span>
  <span>const</span> <span>successMessage</span> <span>=</span> <span>await</span> <span>page</span><span>.</span><span>textContent</span><span>(</span><span>'</span><span>#flash</span><span>'</span><span>);</span>
  <span>expect</span><span>(</span><span>successMessage</span><span>).</span><span>toContain</span><span>(</span><span>'</span><span>You logged into a secure area!</span><span>'</span><span>);</span>
  <span>console</span><span>.</span><span>log</span><span>(</span><span>'</span><span>Login successful!</span><span>'</span><span>);</span>
<span>});</span>
import { test, expect } from '@playwright/test'; test('Login Test', async ({ page }) => { // Step 1: Navigate to the login page await page.goto('https://the-internet.herokuapp.com/login'); // Step 2: Fill in the username and password fields await page.fill('#username', 'tomsmith'); await page.fill('#password', 'SuperSecretPassword!'); // Step 3: Click the login button await page.click('button[type="submit"]'); // Step 4: Verify successful login const successMessage = await page.textContent('#flash'); expect(successMessage).toContain('You logged into a secure area!'); console.log('Login successful!'); });

Enter fullscreen mode Exit fullscreen mode


Step 3: Running the Test

For Selenium/Python:

Run the Python script using the following command:

python your_script_name.py
python your_script_name.py
python your_script_name.py

Enter fullscreen mode Exit fullscreen mode

If everything is set up correctly, the browser will open, perform the login steps, and close automatically.

For Playwright/TypeScript:

Run the Playwright test using the following command:

npx playwright <span>test</span>
npx playwright <span>test</span>
npx playwright test

Enter fullscreen mode Exit fullscreen mode

Playwright will execute the test and generate a detailed report.


Step 4: Interpreting the Results

Both scripts will verify that the login was successful by checking for a specific success message. If the message is found, the test passes; otherwise, it fails.

  • Selenium Output: A message like Login successful! will be printed to the console.
  • Playwright Output: Playwright provides a detailed HTML report. You can view it by running:
npx playwright show-report
  npx playwright show-report
npx playwright show-report

Enter fullscreen mode Exit fullscreen mode


Real-Life Example: Why Automate Login Tests?

Imagine you’re working on an e-commerce platform where users log in frequently. Manually testing the login functionality after every code change is time-consuming and error-prone. Automating this process ensures that:

  1. The login feature works as expected.
  2. Any regression issues are caught early.
  3. You save time for more complex testing tasks.

Conclusion

Congratulations! You’ve just written your first automated test scripts using Selenium/Python and Playwright/TypeScript. These tools are powerful and versatile, making them ideal for automating web applications.

Next steps:

  • Explore advanced features like handling dynamic elements, managing waits, and integrating tests into CI/CD pipelines.
  • Experiment with other tools and frameworks to find what works best for your team.

Visit us at Testamplify | X | Instagram | LinkedIn

原文链接:Start Test Automation: Step-by-Step Guide for Beginners

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
Suffer all the pain can destroy a person, but it also can kill the pain.
一切痛苦能够毁灭人,然而受苦的人也能把痛苦消灭
评论 抢沙发

请登录后发表评论

    暂无评论内容