Skip to content

Python + Selenium + pytest = Smart Automated Web Testing. Docker ensures portability. Page Object Model streamlines test maintainability and scalability.

Notifications You must be signed in to change notification settings

AlexisRodriguezCS/AutoTesterPy

Repository files navigation

selenium.png

AutoTesterPy

About The ProjectProject StructureGetting StartedUsageContact

About The Project

Welcome to my project, where I showcase my QA skills using Python, pytest, Selenium, and Docker. Through this project, I aim to demonstrate my proficiency in automating testing processes and ensuring software quality.

Using the website Automation Exercise, I've implemented a range of test cases to cover essential functionalities such as registering users, logging in with correct and incorrect credentials, logging out users, and handling scenarios like registering users with existing email addresses.

By leveraging the power of Python for scripting, pytest for test organization and execution, Selenium for web automation, and Docker for containerization, I've created a robust testing framework capable of efficiently validating the functionality and reliability of web applications.

Whether it's ensuring smooth user experiences or identifying and fixing potential issues, this project serves as a testament to my dedication to quality assurance and my ability to deliver reliable software solutions.

Key Technologies Used

  • Python Python: A programming language used for backend development and automation tasks.

  • Pytest Pytest: A testing framework for Python, commonly used for unit testing and functional testing.

  • Selenium Selenium: A tool primarily employed for automating web browsers, often used for web application testing.

  • Docker Docker: A containerization platform used for packaging applications and their dependencies into containers for easy deployment and scalability.

(back to top)

Project Structure

The testing application is organized into the following directories:

  • \pages : Pages files provide a set of instructions for navigating and interacting with specific parts of a website, like filling out forms or clicking buttons, making it easier to automate tasks without needing to know the technical details.
  • \tests : Test files are like a checklist of actions to confirm that a website or application works correctly, ensuring that users can perform tasks like signing up or logging in without any problems.
  • \fixtures : conftest.py sets up the browser, loads environment variables, navigates to a URL, verifies the home page, and closes the browser after each test.

Pages

File Description
BasePage.py: Base class for interacting with web elements.
AuthPageLocators.py: Locators and methods for authentication.
AccountCreationPageLocators.py: Locators and methods for account creation.
AccountCreationSuccessPageLocators.py: Locators and methods for account creation success.
AccountDeletionPageLocators.py: Locators and methods for account deletion.
HeaderLocators.py: Locators and methods for the main page header.
TestCasesPage.py Locators and methods for test case page.
HomePageLocators.py Locators and methods for home page.
ContactUsPageLocators.py Locators and methods for contact us page.

Tests

File Description
test_register_user.py: Testing the registration process, and deleting the account.
test_login_user_correct_credentials.py Testing the login process with correct email and password.
test_login_user_incorrect_credentials.py Testing the login process with incorrect email and password.
test_logout_user.py Testing the logout process.
test_register_existing_email.py Testing the registration process with an existing email.
test_contact_us_form.py Testing the contact us form functionality.
test_verify_test_cases_page.py Testing the functionality to verify the test cases page.
test_verify_all_products_and_product_detail_page.py Testing the functionality to verify all products and product detail pages.
test_search_product.py Testing the functionality to search for a product.
test_verify_subscription_home_page.py Testing the subscription functionality on the home page.
test_verify_subscription_cart_page.py Testing the subscription functionality on the cart page.
test_add_products_in_cart.py Testing the functionality to add products to the cart.
test_verify_product_quantity_in_cart.py Testing the functionality to verify product quantity in the cart.

Other files like .env and data files are utilized within the project.

(back to top)

Getting Started

To set up a project locally, follow these simple steps.

Prerequisites

Software used to run the program.

Installation

Here's how to install and set up the program locally.

From your command line:

# Clone this repository
$ git clone https://github.com/AlexisRodriguezCS/AutoTesterPy.git

# Go into the repository
$ cd AutoTesterPy

# Create a virtual environment
$ python -m venv venv

# Activate the virtual environment
$ venv\Scripts\activate

# Install the Python packages listed in a requirements.txt
$ pip install -r requirements.txt

# Run the tests using pytest
$ pytest

(back to top)

Docker

Docker makes it easy to build and run software by putting everything it needs into small packages, so it works the same way no matter where it's used.

Method 1: Using Dockerfile to Build Image and Container.

# Build Docker Image
docker build -t autotesterpy-image .

# Run Docker Container
docker run -d autotesterpy-image

(back to top)

Contact

Alexis Rodriguez

Project Link: https://github.com/AlexisRodriguezCS/AutoTesterPy.git

(back to top)

About

Python + Selenium + pytest = Smart Automated Web Testing. Docker ensures portability. Page Object Model streamlines test maintainability and scalability.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published