Automation testing is a crucial part of modern software development, ensuring that code changes do not introduce new bugs and that the application behaves as expected. This reduces the overall regression time and helps with faster software releases. Software Test Automation is the process of automatically executing repeatable test scenarios without human intervention, thus expediting the software development process.

We can use various programming languages for creating automated test scripts, including Python, C#, Java, etc. However, Python is a simple-to-use programming language and easy to learn. Moreover, Python is an open-source language with an approachable syntax that’s easy to understand and comes with vast library support. It is more preferred by testers for automated software testing, while other programming languages can also be used for automation testing.

Benefits of Automation Testing

  • Speed and Efficiency: Automated tests can run significantly faster than manual tests, enabling quick feedback and faster release cycles.
  • Accuracy and Consistency: Automation reduces the risk of human error, ensuring that tests are executed consistently each time.
  • Reusability: Test scripts can be reused across different versions of an application, saving time and effort in the long run.
  • Coverage: Automation allows for extensive test coverage, including complex scenarios that might be impractical to test manually.
  • Continuous Integration and Continuous Delivery (CI/CD): Automated tests are integral to CI/CD pipelines, ensuring that code changes are automatically tested before integration and deployment.

How Automation Testing Works

Automation testing involves several key steps and components:

  • Determine the scope: Define the scope, objectives, and approach for automation. Identify the tests that are best suited for automation.
  • Selecting the Right Tools: Choose appropriate automation tools based on the technology stack, application type, and team expertise. Popular tools include Selenium, JUnit, TestNG, and Appium.
  • Developing Test Scripts: Write test scripts using the chosen automation tool and scripting language. These scripts simulate user actions and validate the expected outcomes.
  • Test Environment Setup: Configure the test environment, including hardware, software, network, and other dependencies.
  • Test Execution: Run the automated test scripts. This can be done locally or integrated into a CI/CD pipeline for continuous testing.
  • Results Analysis: Review the test results to identify any failures or issues. Automation tools typically provide detailed reports and logs.
  • Maintenance: Regularly update and maintain test scripts to accommodate changes in the application and ensure continued accuracy.

Popular Automation Testing Tools

  • Selenium: A widely used tool for web application testing. It supports multiple browsers and programming languages.
  • JUnit/TestNG: Frameworks for Java applications, commonly used for unit testing but also support integration with Selenium for broader test coverage.
  • Appium: An open-source tool for automating mobile application testing across various platforms like Android and iOS.
  • Cucumber: A tool that supports Behavior-Driven Development (BDD), allowing tests to be written in plain language.
  • Postman: A popular tool for API testing that supports automation through scripting and integration with CI/CD pipelines.

Why Is Selenium Preferred For Automation Testing?

Selenium stands out among automation testing tools due to several benefits:

  • Flexibility and Customization: Selenium is highly adaptable and customizable. Users can develop scripts tailored specifically for their testing requirements; making it an invaluable asset when testing complex web apps.
  • Integration with Testing Frameworks: Selenium easily integrates with popular testing frameworks like JUnit (Java), TestNG (Java) and pytest (Python), providing enhanced test management and reporting capabilities.
  • Scalability: Selenium scales well to handle large numbers of test cases, making it suitable for automating web applications with numerous test cases.

Steps to Install:

1. Create a New Project in PyCharm

  • Open PyCharm.
  • Create a New Project “File” >> “New Project” >> CREATE.

2. Open the Terminal in PyCharm

  • Once your project is created, open the terminal within PyCharm.
  • You can find the terminal at the bottom of the PyCharm window, or you can open it by navigating to View >> Tool Windows >> Terminal.

3. Install Selenium

  • In the terminal, type the following command and press Enter

python -m pip install -U selenium

4. Create a New Directory in the Project

  • In PyCharm, right-click on the project name in the Project
  • Select New >> Directory.
  • Enter a name for your new directory and press Enter.

Below is the detailed steps and code with examples for demo how to use Selenium to open a browser, maximize the window, navigate to a website, and interact with elements using various locators.

Step-by-Step Instructions

1.  Open a Browser and Maximize the Window

from selenium import webdriver

driver = webdriver.Chrome()                           # Initialize the Chrome WebDriver

driver.maximize_window()                              # Maximize the browser window

driver.get(“https://www.google.com/”)          # Navigate to Google

2.  Interact with element using various Locators

Selenium provides different locators to find elements on a webpage. Example how to use each locator type:

  • ID: Locates an element by its unique ID attribute.

driver.find_element(By.ID,”FirstName”)

  • Name: Locates an element by its name attribute.

driver.find_element(By.NAME,”SignIn”)

  • LinkText: Locates a link by its exact text.

driver.find_element(By.LINK_TEXT, “Contacts”)

  • PartialLinkText: Locates a link by partial text.

driver.find_element(By.PARTIAL_LINK_TEXT, “Facebook”)

  • CSSSelector: Locates an element using a CSS selector.

driver.find_element(By.CSS_SELECTOR,”input[type=’text’]”)

  • XPath: Locates an element using an XPath expression.

driver.find_element(By.XPATH, “//input[@id=’Email’]”)

In your code editor, write the following code with file name and with extension “.py” (ex: test_successful_login.py) :

import time
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.maximize_window()
driver.get(“http://10.1.1.146:45/users/sign-in”)

def test_verify_successful_login_pages():
element = driver.find_element(By.XPATH, “//input[@id=’Email’]”
element.click()
element.send_keys(“cmetrictest@gmail.com”)

element =driver.find_element(By.XPATH, “//input[@id=’Password’]”)
element.click()
element.send_keys(“Admin@123”)

element =driver.find_element(By.XPATH, “//button[@id=’btnSubmit’]”)
element.click()
#print the title of the page
print(driver.title)
#to verify the title of the page
assert driver.title ==’Sign In – CareerconX’
#check whether login is done successfully or not
print(“Login is Successful”)

#print current url

print(driver.current_url)

Close the driver

driver.quit()

Run Your Script:

In your terminal navigate to the directory containing your file and run:

pytest -rA .\Testcases\test_successful_login.py

Expected Output

  • When run the script successfully, we would see:

PASSED Testcases/test_successful_login.py::test_verify_successful_login_pages

  • If there is an issue at any step, we will see an message indicating the failure:

FAILED  <error_message>

Conclusion

Automation testing is a critical component of modern software development, providing numerous benefits in terms of speed, accuracy, and efficiency. By using the right tools and following best practices, teams can ensure high-quality releases and continuous improvement in their software products. As the complexity of applications grows, the role of automation testing will continue to expand, making it an essential part of the development lifecycle.

Get a Quote