Monday, May 31, 2021

Broadcom BlazeMeter University is providing Free, online courses and certifications [open-Source, DevOps & Continuous Testing]

 

BlazeMeter University is providing Free, online courses and certifications for popular open-source, DevOps and continuous testing technologies:

Please feel free to utilize this opportunity to brush up all of the key concepts and foundations of scriptwriting.

 URLwww.university.blazemeter.com

 Details

 

Sr. No

Course Name

Modules & Duration

Type

Required Score

Certs & Credits

1

BlazeMeter – Introduction to Mock Services

Modules - 03

Hours - 02

Learning & Certification

80% or higher

Certification

2

Agile Requirements Designer: Modeling Fundamentals

Modules - 04

Hours – 09

Learning & Certification

80% or higher

Certification

3

BlazeMeter Citrix Testing

Modules - 08

Hours – 01

Learning & Certification

80% or higher

Certification

4

Using BlazeMeter with Service Virtualization

Modules - 09

Hours – 03

Learning & Certification

80% or higher

Certification

5

BlazeMeter Mainframe testing with RTE

Modules - 09

Hours - 01

Learning & Certification

90% or higher

Certification

6

BlazeMeter Scriptless Testing: Advanced Features

Modules - 26

Hours - 03

Learning & Certification

80% or higher

Certification

7

BlazeMeter Test Automation In Practice

Modules - 20

Hours – 1.5

Learning & Certification

80% or higher

Certification

8

Continuous Delivery Director: Test Orchestration

Modules - 08

Hours - 01

Learning & Certification

80% or higher

Certification

9

Continuous Delivery Director: Release Orchestration

Modules - 30

Hours – 3.5

Learning & Certification

80% or higher

Certification

10

Service Virtualization for Developers

Modules - 12

Hours - 04

Learning & Certification

80% or higher

Certification

11

Service Virtualization Fundamentals

Modules – 20

Hours – 3.5

Learning & Certification

80% or higher

Certification

12

Test Data Manager Fundamentals

Modules – 13

Hours - 04

Learning & Certification

80% or higher

Certification

13

Master BlazeMeter API Monitoring

Modules – 22

Hours - 02

Learning & Certification

90% or higher

Certification

14

BlazeMeter Test Automation Fundamentals

Modules – 08

Hours - 01

Learning & Certification

85% or higher

Certification

15

Master BlazeMeter Performance Testing

Modules – 28

Hours - 02

Learning & Certification

90% or higher

Certification

Friday, March 12, 2021

Introduction to GraphQL - Part 1

Introduction to GraphQL


GraphQL is a query language for your API, and a server-side runtime for executing queries by using a type system you define for your data. GraphQL isn't tied to any specific database or storage engine and is instead backed by your existing code and data.

A GraphQL service is created by defining types and fields on those types, then providing functions for each field on each type. For example, a GraphQL service that tells us who the logged in user is (me) as well as that user's name might look something like this:

type Query {
  meUser
}
 
type User {
  idID
  nameString
}

Functions for each field for each type:

function Query_me(request) {
  return request.auth.user;
}
 
function User_name(user) {
  return user.getName();
}

The running service can receive GraphQl query to validate and execute. A received query is first check it refers to the types and fields defined and then runs the provided function to produce result.

Query:

{
  me {
    name
  }
}

Result:
 
{
  "me"{
    "name""Vishal Patil"
  }
}

To understand further - GraphQL over HTTP
Check out the diagram below, to get a sense of how GraphQL is typically used in your stack:


As you can see we only need a single query in order to get information it need. We don’t need to burden the sever with multiple requests.

GraphQL client-server flow:
  • Note that the GraphQL query is not really JSON; it looks like the shape of the JSON you want. So when we make a 'POST' request to send our GraphQL query to the server, it is sent as a "string" by the client.
  • The server gets the JSON object and extracts the query string. As per the GraphQL syntax and the graph data model (GraphQL schema), the server processes and validates the GraphQL query.
  • Just like a typical API server, the GraphQL API server then makes calls to a database or other services to fetch the data that the client requested.
  • The server then takes the data and returns it to the client in a JSON object.

GraphQL Schema
  • GraphQL user schema to describe the shape of data
  • Schema defines a hierarchy of types with fields that are populated from backend
  • Schema specifies which queries or mutations available for client to execute against the data
  • Schema defines the collection of types and relationship between those types

In the below example, every book has an author and every author has a list of books.

type Book {
    titleString
    authorAuthor
}

type Author {
    nameString
    books[Book]
}


Supported Types

Every type definition in GraphQL schema belong to one of the following categories

  • Scalar types
  • Object types
  • The Query type
  • The Mutation type
  • Input types
Scalar Types

Scalar types are similar to primitive data types in any programming language
  • Int: A signed 32‐bit integer.
  • Float: A signed double-precision floating-point value.
  • String: A UTF‐8 character sequence.
  • Boolean: true or false.
  • ID (Serialized as String): The ID scalar type represents a unique identifier

Object Type

Most of the types we define in a GraphQL schema are object types. An object type contains a collection of fields, each of which can be either a scalar type or another object type.

The two types of allowed operations in GraphQL are queries and mutations. 
  • Queries – operates like a GET
  • Mutations – operates like POST/PATCH OR UPDATE/DELETE

Queries
Queries return only the data user specify. To form a query user must specify fields within fields (nested fields)

Query Overview
The Query defines all of the top-level entry points for queries that clients execute against data. Query is interactive in nature. User can limit or add more variables to a query at any time to get the desired result

#syntax 1

query {
  JSON objects to return
}

#Example:

query Employees {
  Employees {
    name
    Employers {
      name
    }
  }
}



Mutations
To form a mutation  three things are needed 
  • Mutation Name
    • Type of modification
  • Input Object
    • Data want to sent to the server. Normally it passed as an argument to the mutation name
  • Payload Object
    • Data return from the server. Passed as a body to the mutation.
Mutation Overview
Mutations are structured like this:

type MutationResponse { 
  statusString!
}

type PassengerData {
  nameString! 
  ageString! 
  addressString!
}

type Mutation {
  createPassenger(passengerString )MutationResponse 
}

 #String is nothing but PassengerData

# Query in Frontend looks like:
mutation PassengerMutation($passengerPassengerData! ) {
  createPassenger(passenger$passenger) { 
    status
  }
}


    Note: The scalar type “!” mark indicates the field is required.


Working with variables:

Variables can make queries more dynamic and powerful, and they can reduce complexity when passing mutation input objects.
 
Three ways using  a variable
  • Define outside of the operation in a object
  • Pass the variable to the operation as an argument
  • Use with in operations.

Examples:


type MutationResponse { 
  statusString!
}

type PassengerData {
  nameString! 
  ageString! 
  addressString!
}


To understand more about GraphQL please refer the below links

  • https://graphql.org/learn/ 
  • https://www.tutorialspoint.com/graphql
  • https://developer.github.com/v4/guides/intro-to-graphql/

Monday, February 22, 2021

DevOps Assessment Questionnaires

DevOps Assessment Questionnaires 


Sub Category

Assessment Question

Process

Agile (Concept -> Production Timeframe)

Do you follow agile?

If not Agile, then what methodology does the project follow?

Sprint duration?

Production Release cycle?

Project Management/Tracking Tool used ? Eg: Rally/Jira?

Number of Builds in a Release

What is the build frequency? (Ex: Daily/Weekly..)

What is the build failure percentage?

Who does the build deployment?

Is build automated?If automated which tool is used?

If build fails, who does the rollback

Cloud/Legacy?

Is the cloud or Legacy? (server/DB)

Is there a plan of moving to cloud if it is legacy?

Team Size (Full Team  - Dev/OPS and QA)

What is the team size?

How many QA members?

Is Dev or Ops internal or manage by contractors

Prod/Lower Env Downtime (Average)

How often the environment go down?

What is the reason for downtime?

Is it self recovery?

QA Team Skills

How many in the team contribute to automation development?

Does the QA team perform any Unit/Integration testing?

Coding

Automated version control

Which tool is used for Version Control?

Static Code Analysis

Is static Code analysis is done in the application?

Which tool is used for Static code analysis?

How often analysis is done?

Code Coverage

Is code coverage being done in the application?

Which tool is used for Code coverage?

Code Review

Is code review being done ?

Is the process automated/manual?

Continuous Integration

CI/CD Pipeline Established using a tool

Is CI/CD done?

Which tool is used?

Is the pipeline set up for all environments including Prod (During prod ..)

Automated Build

Is Build is automated?

Which tool is used?

Automated Unit Testing

Is unit testing Automated?

Which tool is used to automate?

Is the unit test is integrated with CI/CD?

Code Quality Analysis

Is Code Quality being done for the application?

Which tool is used for analysis?

Who is the responsibility for the activity?

Artifact Repository

Which tool is used as Artifact Repository?

Who is the owner for this?

Automated Deployment

Is the deployment automated?

Which tool is used for deployment?

What is the deployment failure rate?

In case of failure, Who is the responsible for the roll back?

Continuous Testing

Automated Build verification testing

Is build verification testing is done?

Is build verification is automated?

Is it integrated with CI?

InSprint Automation

Is automation applicable in the application?

Is InSprint automation done?

What is the average % of InSprint automation?

Is insprint automation integrated to CI?

Automated Regression Testing

Is automation possible?

Is Regression test suite is automated?

What is the regression automation %?

What is the automation Utilization?

What is the one click percentage/first pass rate

What is the automation defect efficiency

What is the effort spent in maintenance of scripts?

Automated Performance Testing

Is performance testing done?

Which tool is used for Performance automation?

Who is responsible for performance automation?

How often the performance testing done?

Is performance testing is integrated with CI?

Service Virtualization

Is service virtualization done in the application?

Environment Automation

DB Deployment Automated

How does DB deployment happen?

Is there any tool that deploys all the DB Scripts at a time?

Env. Definition & Planning

How many environments do you have?

Environment setup is it a manual or automated process?

How many servers are maintained for each environment?

Who is involved in planning the environments setup?

Env. Booking & Scheduling

How many virtual Machines are allotted to each environment?

Is there any planned schedule before the deployment?

How do you maintain the Virtual servers without overlapping between environments?

Env. Configuration

Is there any automated process followed to configure the environments?

Who is responsible for handling the configuration issues?

What are the methods involved in configuring servers?

Env. Refresh & Recycle

Who is responsible for refresh/recycle the servers?

Is there any automated tool to refresh & recycle the servers?

Test Data  & Virtual Services Provisioning

Is there any test data dependencies observed?

How do you rectify the test data issues?

How do you provision virtual serveries?

Who is responsible for provisioning the virtual services?

Env. Servicing

Is there any automated approach adapted to fix the environment issue?

How do you maintain environments?

Continuous Release

Release Planning

Do you have a sprint grooming and planning meeting?

Is your release calendar finalized in the beginning of the year

Are the releases launched in prod as planned?

Release Automation

Are builds promoted to prod automatically using continuous delivery?

If not, then how are the builds promoted to production?

Release monitoring

Is there any monitoring tool that triggers alerts after every release?

Is it a manual effort or are there any automated tools used?

How often the team monitors the release?

% Patch/FIx Releases in Prod

Is there any patch releases are pushed to prod?

How frequently patches are pushed to prod?

Application Performance monitoring

Is there any monitoring tool that triggers alerts?

Is it a manual effort or are there any automated tools used?

How often the team monitors the entire application?

Self healing systems/Failover

Is there any ayto-recovery system used?

Does the application recover from a sev1/2 incident automatically?

Continuous Feedback and Improvement

Log Management

Are production logs captured and used for operational analysis?

Is there any log management tool used to monitor the end-2 end flow?

Operational Analysis

Do we analyze the application logs to minimize future failures, issues, exceptions in the application?

DevOps Metrics

How is the data collected above is utilized and used?

Incident Monitoring and Alerts

Do we have automated reporting of issues and incidents in production?

P1 Incident SLA

What is the process for sev1 issue resolution?

What is the SLA for sev 1 incidents in prod?

Real-time messaging

What is Real-time messaging in your team?

Are you following any Messaging technique?