Showing posts with label MindMap. Show all posts
Showing posts with label MindMap. Show all posts

Sunday, July 21, 2024

BDD with cucumber and gherkins using MindMap

 Business-Driven Development is a collaborative approach that focuses on aligning software development with business goals through the creation of executable specifications

Business driven development

Translating Business-Driven Development to executable specification in gherkins

Keywords and code blocks in Gherkins specification

  • Feature is to provide a high-level description of a software feature.
  • Rule is to represent one business rule that should be implemented
  • Scenario or Example is a concrete example that illustrates a business rule
  • Scenario Outline is used to run the same Scenario multiple times, with different set of data.


  • Steps are used to define scenarios. steps can be:
    • Given - describe the precondition of the system
    • When - describes an event, or an action
    • Then - describe an expected outcome, or result
    • But - describe an outcome that is not expected
  • There can be multiple steps of same type in a scenario.
  • Background define a set of steps that are common to all scenarios in a feature file. Execution is after each scenarios
  • Hooks are blocks of code that run before or after certain events. they are defined by annotation "@Before" and "@After" annotations. these are setup() and teardown() code in the application.

Understanding components of a cucumber framework

Components of a cucumber framework

Feature File:

  • File corresponding to a feature/rule
  • Can have multiple scenarios/examples, scenario outline and background.
  • Annotations can be used to group tests, e.g: smoke, nightly, regression

Step definition File

  • For given, when then, but steps defined in feature file, the logical code is written in a step definition file.
  • Annotation @Given, @then are used to match the step definition method with the one provided in feature file


TestRunner File to execute tests

  • TestRunner file defines the tests to be executed,

Components of a Test Runner File:

  • Annotations: uses annotations from testing frameworks like JUnit or TestNG to define its purpose and behavior.
  • Glue: specifies the package where Cucumber can find the step definitions
  • Features: feature files which needs to be executed
  • Plugins: defines the reporting path, tags and formatting.




References :

https://www.linkedin.com/learning/cucumber-essential-training

https://cucumber.io/docs/gherkin/reference/

Understanding and Implementing Rest Assured using workflows and MindMap

Understanding Rest API

A REST API (Representational State Transfer Application Programming Interface) is a set of rules and conventions for building and interacting with web services.

Below diagram show the principles/workflow and response status code for Rest API.


Key Components of Rest API


1. Endpoint: This is the URL where the API can be accessed. Each endpoint corresponds to a specific resource or collection of resources.

2. HTTP Methods: These define the action to be performed on the resource. These are also known as CRUD (create, request, update and delete) operations

- GET: Retrieve data from the server.

- POST: Send data to the server to create a new resource.

- PUT: Update an existing resource with new data.

- DELETE: Remove a resource from the server.

3. Headers: These provide additional information with the request or response. Common headers include Content-Type (indicating the media type of the resource) and Authorization (containing credentials to authenticate a user).

4. Parameters: These are used to modify the request. They can be included in the URL (query parameters) or in the request body.

5. Request Body: This contains the data sent to the server when making POST or PUT requests. It's typically formatted in JSON or XML.

6. Response Codes: status of the request.




Common Crude actions/verb and response status code mapping

Understanding Rest Assured


REST Assured is an open-source Java-based library designed for testing and validating RESTful web services. It integrates well with testing frameworks like TestNG and JUnit. Below are key things, we will discuss in the article to keep it short and refresher only.

Basic Workflow for getting response from Rest requests for different verbs


Basic Workflow for getting response from Rest requests for different verbs

Code Understanding for basic operations 



How to Fit Rest-Assured tests in Framework


MindMap for basic framework with rest assured

Please comment, in case any observations/queries in understanding the process and documentation

Reference for learning :


Rest API - https://www.ibm.com/docs/en/mfci/7.6.1?topic=apis-rest-api

JSON cheat-sheet - https://codebeautify.org/json-cheat-sheet

JSONpath cheat-sheet - https://gist.github.com/mackoj/5786f8b95da0a82e8e003f444c4295bf

Understanding hamcrest :

https://www.baeldung.com/java-junit-hamcrest-guide

That's all for this article.Please comment, in case any observations/queries in understanding the proce
ss and documentation

Saturday, March 10, 2018

Java for Selenium - Mindmap Object, Classes and Inheritance

In the above example. We create a class bicycle which is defined by it's state and behavior.
members and methods are defined in the class. We can defined multiple objects of the class using class methods and members. 

Bicycle itself belongs to two wheeler class. Similarly there can be other class for motor bike which can have its own member and methods defined. 

Both bicycle and two wheeler can have specific methods and members defined in the class. 

Bicycle extends two wheeler which in turn extends vehicle, bicycle can use members and methods defined in two wheeler as well as vehicle class.

Class Declaration

class Bicycle extends TwoWheeler {
    // field, method and constructordeclarations
}

class TwoWheeler extends Vehicle {
    // field, method and constructordeclarations
}


Variables in a class:

Fields - Member variables in class
Local variable - defined inside method or block of scope
Parameters - variables in method declaration

Variable declaration : [Modifier] Type variablename

Thursday, July 20, 2017

Job creation in Jenkins: Workflow

Below are the steps to create a new job in Jenkins:

1. Launch Jenkins by providing the url and port number of Jenkins Server. 

2. Click on New Item to create a new Jenkins Job. Provide the jenkins Job Name and select the project type. Let us select a freestyle project.

New job Jenkins
3. There are different sections in the jenkins Job which are shown below.

4. Below Flowchart explains the different information we can provide in a jenkins job and what is the role of different sections in a jenkins job.Jenkins job creation workflow

5. General Section:Job Description is provided in this section. Managing different build Information and adding Parameters used in job are some of the tasks which can be defined in this section. 

6. Source Code Management: This section provide instruction on how to extract latest code in the workspace,  from git, svn or local system.





Source Code Jenkins
                   










7. Build Trigger : This section define how the job can be triggered, Whether it is dependent on existing job or is scheduled to run on a fixed time and date periodically.














build trigger Jenkins


Build Environment: This section manages the build environment or workspace with option to clean the workflow before build execution or abort/fail a build if it is struck at a step for long period.
build environment Jenkins 


Build - This is the main section where the actual batch files/ shell command or ant targets are invoked. For testing purpose , we can invoke a maven project in this section. Executing a job means executing the commands provided in the build section.

build Jenkins


Post Build Steps - These are post build steps and include activities like archiving artifact or sending a mail with build details or publishing testng/junit test results.

Post build Jenkins

Friday, May 20, 2016

MindMap for Selenium WebDriver

In this mindmap, Basic and initial steps to start with selenium Webdriver are explained in the form of mindmap. Hope you like this mindmap to start with Selenium WebDriver.


MindMap for Selenium WebDriver


Wednesday, May 18, 2016

MindMap for TestNG

In this post, basics of TestNG are described with mindmap. TestNG is an open source automation framework inspired from jUnit but having additional features making it more robust compared to jUnit. It is also used extensively with selenium automation. TestNG.xml is not explained in detail in this post, as it is an important concept and will be covered in a separate post. Hope you like this mind map.


MindMap for TestNG