Skip to content

pydrive50CS/assignment-qa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Assignment Task for QA Automation Engineer

Dependencies/Tools Required

Attribute Plugin Link
JSON Schema Assertion https://github.com/kde-intro/jmeter-json-schema-assertion-plugin
Apache Jmeter https://jmeter.apache.org/download_jmeter.cgi
maven https://maven.apache.org/install.html
sqlite https://sqlite.org/download.html

Installation of Plugin

  1. Copy the Custom_JsonSchemaAssertion_component-0.4.jar located at ./jmeter in "assignment-qa" project to your JMeter home directory/lib/ext/

---------------------------------------------------------------OR--------------------------------------------------------------------------------


  1. Clone the repo at:: https://github.com/kde-intro/jmeter-json-schema-assertion-plugin
  2. Build extension - create jar file by running Maven build package (cli: mvn package).
  3. Put the generated jar file (Custom_JsonSchemaAssertion_component.jar) from target folder to JMeter JMeter home directory/lib/ext/ directory.

Note

# Detail documentation and analysis is availale in the "./docx" folder of the project for all assignments

Assignment Project Installation

  1. Clone the repo:: https://github.com/pydrive50CS/assignment-qa

    Note: If there is no database or you want to make modifications on the database for testcases then use the following command:

    "sqlite3 ./database/testdb.sqlite < ./database/your_database_init.sqlite"

    1.Run Selenium Tests

    Assignment 1

    ****

    1. Run the JAVA Selenium Test at:
      src/test/java/com/saucedemo/tests/LoginTest.java
    2. The emailable HTML reports are found under the ./reports/login/ExtentReport.html

    # Approach and analysis report of my assignment-1 can be found in the "./docx" directory

    Assignment 2

    1. Run the JAVA Selenium Test for at:
      src/test/java/com/demoqa/tests/FormsValidationTest.java
    2. The emailable HTML reports are found under the ./reports/forms/ExtentReport.html

    # Approach and analysis report of my assignment-2 can be found in the "./docx" directory

    2.Run Jmeter Tests

    Assignment 3

    *Make sure you have the JSON Schema Assertion plugin*

    1. Then open the "assignment-3.jmx" file in the "./jmeter/assignment-3" directory of the project

    2. Next update the schemaPath User Defined Variables in the TestPlan to the absolute path for the current schema directory existing in the "./jmeter/assignment-3/schema/" like:

      Windows: "C:\Users\qa\Documents\Projects\assignment-qa\jmeter\assignment-3\schema"

      Linux: /home/en1gma/Documents/VSCode/qa/assignment-qa/jmeter/assignment-3/schema""

    3. Run the tests and see the results in View Results Tree listener

    # Report of my assignment-3 can be found in the "./docx "directory

    Assignment 4

    1. Open the "assignment-4.jmx" file in the "./jmeter/assignment-4" directory of the project to view the test plan

    2. To run this jmx from the terminal use the below command
      "jmeter -n -t /path/to/assignment-4.jmx -l /path/to/results.jtl -e -o /path/to/report"

    3. Finally view the reports by opening the /path/to/report/index.html

    # Report of my assignment-4 can be found in the "./docx "directory

    Assignment 5

    1. Report of my assignment-5 can be found in the "./docx "directory


Summary

This project showcases capabilities in software quality assurance, encompassing web UI automation, API functional testing, and performance testing with application of Page Object Model and Data-Driven Testing, to ensure a highly organized and efficient testing process.The project attempts to validate software across functional, security, and performance perspective. Detailed insights are provided using ExtentReports and JMeter dashboards.

Tools & Technologies: Selenium WebDriver, Java, TestNG, ExtentReports, SQLite Database.

Features

Methodology & Design Principles

1. Page Object Model (POM)
2. Data-Driven Testing (DDT)
3. Negative & Edge Case Testing
4. Structured Test Case Management
5. Comprehensive Reporting

Web UI Automation (Selenium & TestNG)

1. Complex Form Validation: Automated the testing of a multi-field form, validating browser-side and programmatic rules for required fields, data formats (mobile numbers), whitespace, and special characters.
2. UI-Based Security Checks: Proactively tested for common web vulnerabilities by injecting basic XSS payloads (<script>, <img onerror>) and SQL injection strings into form fields to verify input sanitization.
3. JavaScript Execution: Utilized a JavaScriptUtility to perform actions not easily handled by standard Selenium commands, including highlighting elements  and ensuring interaction with elements that require scrolling into view.
4. Framework Management: Use of utilities for configuration management (ConfigReader), cross-browser support (DriverFactory), and screenshot capture.

API & Performance Testing (JMeter)

End-to-End API Functional Testing: Tested the full lifecycle of API endpoints covering all CRUD operations (GET, POST, PUT, DELETE).

Authentication & Authorization: Implemented tests for token-based authentication, extracting a JWT token from a login endpoint and passing it as a bearer token in subsequent requests. Tested protected endpoints with and without a valid token.

Schema & Response Validation: Used JSON Schema Assertion to validate the structure of API responses and Response Assertions to verify status codes and body content.

Content-Type Handling: Verified API behavior with different Accept and Content-Type headers, including application/json and application/xml.

Performance Testing: Designed and executed a performance test by configuring a Thread Group with multiple users, a ramp-up period, and a loop count.

Dynamic Parameterization: Used Groovy scripting within JMeter to generate dynamic data (random delay value) for each reques

Screenshots of my run of the project

Assignment 1 login validation

Screenshot for Assignment 1

Assignment 2 form validation

Screenshot for Assignment 1

Assignment 2 form test fail

Screenshot for Assignment 1

Assignment 2 screenshot preview

Screenshot for Assignment 1

Assignment 3 Jmeter

Screenshot for Assignment 1

Assignment 4 Performance Testing

Screenshot for Assignment 1


Testcases Analysis is done in reports for all assignments located in the "./docx" directory

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published