September 29, 2020

How to work between local repository and Remote repository

 Firstly you have to create an account on github and then create an empty repository . You can go for public or private.

Once you created a repo, the next step will be to include in your local repo.

go to your terminal where you want to add your remote repo.

newproject(master)> git remote add origin http://-----------------------------------(url)

> cat .git/config

> git branch 

> git branch -r 

It is now tracked with your local repo.

if you want to push your code to remote repo . Do this step-

> git push -u origin master 

> git branch 

> git branch -a 

Now let's sat we want to add that project in my computer not in same folder. assume my Colleauge work - 

> git clone http://----------  newproject 

then newproject folder will be created with all the cloned project '

newproject(master)> ls -la

How to track remote branches -

mainproject(master)>git branch non-tracking

> git push origin non-tracking

We have to specify the remote branch now 

Set up to track remote branch from origin'

>git branch -u origin/non-tracking non-tracking

for non tracking we can use this command-

> git branch --unset -upstream non-tracking

Push changes to Remote Repo-

Before push we have to amke some changes 

mainproject(master)> git commit -am "changes are done"

>git log --oneline -5 origin/master

>git log diff origin/master..master 

> git push 

origin/master is tracking branch 

> git log --oneline origin/master 

Fetch the changes from remote repo-

newproject(master)> git log 

>git log orgin/master

>git branch

>git branch -r

>git Fetch

>git log --oneline origin/master 

now master branch will not change 

we have to merge in fetched changes -

> git diff origin/master..master 

>git merge origin/master 

>git log --oneline origin/master

Basically git Fecth + Merge = Pull

Check out Remote branches -

newproejct (master)> git branch non-tracking origin/non-tracking

>git log --oneline non-tracking

>cat .git/config

> git branch -d non-tracking 

>git checkout  -b non-tracking origin/non-traking

>git checkout master 

>git commit -am "new changes "

> git push 

Delete a Remote Branch-

git push origin : non-tracking

2nd method- git push origin --delete non-traking 

====================================================================


Let take an example - My work and / My collegue work 


My Work- git checkout master 

>git fetch 

>git merge origin/master 

>git checkout -b newbranch 

>git commit -am "new changes"

> git fetch

>git push -u origin newbranch 

======================================

My Collegue Work == cheking the remote repo what changes ahs been dine in new rep and make new changes in that branch and agin push to remote repo.

git checkout master 

git fetch 

git merge origin/master 

git chekout -b newbranch origin/newbranch 

git log

git show SHA

git commit -am 

git Fetch

git push 

===================================

My Work= check if i want to see my colleuge work and want to make some changes '

>git fetch 

>git log -p newbranch..origin/newbranch

>git merge orgin ./newbranch 

git checkout master 

git fetch 

git merge origin/master 

git merge newbranch 

git push 

=======================================




































 


GIT and GITHUB



Git - Is software keeeping track of changes . it is version control and comapre the different versions.

manage source code .

Here are some commands -

git config
Utility : To set your user name and email in the main configuration file.
How to : To check your name and email type in git config --global user.name and git config --global user.email. And to set your new email or name git config --global user.name = “” and git config --global user.email = “”

git init
Utility : To initialise a git repository for a new or existing project.
How to : git init in the root of your project directory.

git clone
Utility : To copy a git repository from remote source, also sets the remote to original source so that you can pull again.
How to : git clone <:clone git url:>

git status
Utility : To check the status of files you’ve changed in your working directory, i.e, what all has changed since your last commit.
How to : git status in your working directory. lists out all the files that have been changed.

git add
Utility : adds changes to stage/index in your working directory.
How to : git add .

git commit
Utility : commits your changes and sets it to new commit object for your remote.
How to : git commit -m”sweet little commit message”

git push/git pull
Utility : Push or Pull your changes to remote. If you have added and committed your changes and you want to push them. Or if your remote has updated and you want those latest changes.
How to : git pull <:remote:> <:branch:> and git push <:remote:> <:branch:>

git branch
Utility : Lists out all the branches.
How to : git branch or git branch -a to list all the remote branches as well.

git checkout
Utility : Switch to different branches
How to : git checkout <:branch:> or **_git checkout -b <:branch:> if you want to create and switch to a new branch.

git stash
Utility : Save changes that you don’t want to commit immediately.
How to : git stash in your working directory. git stash apply if you want to bring your saved changes back.

git merge
Utility : Merge two branches you were working on.
How to : Switch to branch you want to merge everything in. git merge <:branch_you_want_to_merge:>

git reset
Utility : You know when you commit changes that are not complete, this sets your index to the latest commit that you want to work on with.
How to : git reset <:mode:> <:COMMIT:>

git remote
Utility : To check what remote/source you have or add a new remote.
How to : git remote to check and list. And git remote add <:remote_url:>

git commit -am 
Utility: To commit and add together 
How to : git commit -am "message"

git diff 
Uitility - to check the difference between two branches or check difference between working directory and staging area 
how to: git diff master..newbranch
git diff 

git diff --staged
Utility- To check difference between staging area and repository '
Howe to : git diff --staged 

git restore 
Utitlity - restore the cjhanges which are in staging area 
How to: git --restore file1

git reset


git-reset - Reset current HEAD to the specified state

git reset HEAD filename - to reset to working directory from staging area .


git reset [-q] [<tree-ish>] [--] <pathspec>…​ git reset [-q] [--pathspec-from-file=<file> [--pathspec-file-nul]] [<tree-ish>] git reset (--patch | -p) [<tree-ish>] [--] [<pathspec>…​] git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>]



--soft

Does not touch the index file or the working tree at all (but resets the head to <commit>, just like all modes do). This leaves all your changed files "Changes to be committed", as git status would put it.--mixed

Resets the index but not the working tree (i.e., the changed files are preserved but not marked for commit) and reports what has not been updated. This is the default action.


If -N is specified, removed paths are marked as intent-to-add (see git-add[1]).--hard

Resets the index and working tree. Any changes to tracked files in the working tree since <commit> are discarded.




git show SHA - to get the details related to that SHA

git rm filename - to delete a file

git mv file 1 file 2 - to rename a file name

git commit amend -m "chnge the commit"- if you want to change in the commit

git revert - to revert the commit

git revert shaname

git branch -m branchnamenew - for rename a branch name

git branch -d branchname









September 22, 2020

What is cloud????



what is cloud?

Cloud is new way of thinking .about massive scale of servers.

NIST defines 5 characteristics of cloud- on demand self service

broad network access

resource polling

rapid elasticity

measured service

What are the benefits -

eliminates buying cost of hardware no more h/w set up

pay only for the services used

Better performance

security updates id done by cloud vendors

professional troubleshooting

Scalability - start small and build out as as needed

Elasticity- Grow or shrink resources dynamically

Azure offers three main cloud computing platform services: SaaS – Software as a Service. IaaS – Infrastructure as a Service. PaaS – Platform as a Service.

IaaS- It allows customer to instantly provision servers, network switches, firewall and other physical devices.

SaaS - It allows users to connect to and use cloud based apps over the internet.

PaaS- PaaS vendors provide one or more platforms upon which applications and services can be built. A complete development and deployemnt cloud envronement














For Enterprises-

Buy through the Azure Portal

Add azure to your existing enterprise agreement

Use through a Microsoft cloud solution provider

Azure APP service benefits-

write code in a multitude languages . For example- .NET, core, java, PHP, Python, Node.js, supports Devops tooling

Create APP Service in Azure 
-

App service offers an abstracted web server.

1.Azure portal- web app, API app , go to the marketplace , web, featured template,

2. command line

3. web Developer tool like Microsoft visual basic

create a web app on App service

app creates a virtual machine

install preconfigured Operating System

host API app and web app on APP service

Azure storage

Azure Database














September 20, 2020

AWS


AWS (Amazon Web Services) is a comprehensive, evolving cloud computing platform provided by Amazon that includes a mixture of infrastructure as a service (IaaS), platform as a service (PaaS) and packaged software as a service (SaaS) offerings.

Availability-

Amazon Web Services provides services from dozens of data centers spread across availability zones (AZs) in regions across the world. An AZ is a location that contains multiple physical data centers. A region is a collection of AZs in geographic proximity connected by low-latency network links.

A business will choose one or multiple availability zones for a variety of reasons, such as compliance and proximity to end customers. For example, an AWS customer can spin up virtual machines (VMs) and replicate data in different AZs to achieve a highly reliable infrastructure that is resistant to failures of individual servers or an entire data center.

Storage-

Amazon Simple Storage Service (S3) provides scalable object storage for data backup, collection and analytics. An IT professional stores data and files as S3 objects -- which can range up to 5 gigabytes (GB) -- inside S3 buckets to keep them organized. A business can save money with S3 through its Infrequent Access storage tier or by using Amazon Glacier for long-term cold storage.

Amazon Elastic Block Store provides block-level storage volumes for persistent data storage when using EC2 instances. Amazon Elastic File System offers managed cloud-based file storage.

A business can also migrate data to the cloud via storage transport devices, such as AWS Snowball and Snowmobile, or use AWS Storage Gateway to enable on-premises apps to access cloud data.
Databases, data management

The Amazon Relational Database Service -- which includes options for Oracle, SQL Server, PostgreSQL, MySQL, MariaDB and a proprietary high-performance database called Amazon Aurora -- provides a relational database management system for AWS users. AWS also offers managed NoSQL databases through Amazon DynamoDB.

An AWS customer can use Amazon ElastiCache and DynamoDB Accelerator as in-memory and real-time data caches for applications. Amazon Redshift offers a data warehouse, which makes it easier for data analysts to perform business intelligence (BI) tasks.
Migration, hybrid cloud

AWS includes various tools and services designed to help users migrate applications, databases, servers and data onto its public cloud. The AWS Migration Hub provides a location to monitor and manage migrations from on premises to the cloud. Once in the cloud, EC2 Systems Manager helps an IT team configure on-premises servers and AWS instances.

Amazon also has partnerships with several technology vendors that ease hybrid cloud deployments. VMware Cloud on AWS brings software-defined data center technology from VMware to the AWS cloud. Red Hat Enterprise Linux for Amazon EC2 is the product of another partnership, extending Red Hat's operating system to the AWS cloud.

Networking-

An Amazon Virtual Private Cloud (Amazon VPC) gives an administrator control over a virtual network to use an isolated section of the AWS cloud. AWS automatically provisions new resources within a VPC for extra protection.

Admins can balance network traffic with the Elastic Load Balancing (ELB) service, which includes the Application Load Balancer and Network Load Balancer. AWS also provides a domain name system called Amazon Route 53 that routes end users to applications.

An IT professional can establish a dedicated connection from an on-premises data center to the AWS cloud via AWS Direct Connect.

Developer tools-

A developer can take advantage of AWS command-line tools and software development kits (SDKs) to deploy and manage applications and services. This includes:
The AWS Command Line Interface, which is Amazon's proprietary code interface.
A developer can use AWS Tools for Powershell to manage cloud services from Windows environments.
Developers can use AWS Serverless Application Model to simulate an AWS environment to test Lambda functions.

AWS SDKs are available for a variety of platforms and programming languages, including Java, PHP, Python, Node.js, Ruby, C++, Android and iOS.

Amazon API Gateway enables a development team to create, manage and monitor custom application program interfaces (APIs) that let applications access data or functionality from back-end services. API Gateway manages thousands of concurrent API calls at once.

AWS also provides a packaged media transcoding service -- Amazon Elastic Transcoder -- and a service that visualizes workflows for microservices-based applications -- AWS Step Functions.

A development team can also create continuous integration and continuous delivery pipelines with services like:
AWS CodePipeline
AWS CodeBuild
AWS CodeDeploy
AWS CodeStar

A developer can also store code in Git repositories with AWS CodeCommit and evaluate the performance of microservices-based applications with AWS X-Ray.
Management and monitoring

An admin can manage and track cloud resource configuration via AWS Config and AWS Config Rules. Those tools, along with AWS Trusted Advisor, can help an IT team avoid improperly configured and needlessly expensive cloud resource deployments.

AWS provides several automation tools in its portfolio. An admin can automate infrastructure provisioning via AWS CloudFormation templates, and also use AWS OpsWorks and Chef to automate infrastructure and system configurations.

An AWS customer can monitor resource and application health with Amazon CloudWatch and the AWS Personal Health Dashboard, as well as use AWS CloudTrail to retain user activity and API calls for auditing.

Security and governance-

AWS provides a range of services for cloud security, including AWS Identity and Access Management, which allows admins to define and manage user access to resources. An admin can also create a user directory with Amazon Cloud Directory, or connect cloud resources to an existing Microsoft Active Directory with the AWS Directory Service. Additionally, the AWS Organizations service enables a business to establish and manage policies for multiple AWS accounts.

AWS also includes tools and services that provide software- and hardware-based encryption, protect against DDoS attacks, provision Secure Sockets Layer (SSL) and Transport Layer Security (TLS) certificates and filter potentially harmful traffic to web applications.

The AWS Management Console is a browser-based graphical user interface (GUI) for AWS. The Management Console can be used to manage resources in cloud computing, cloud storage and security credentials. The AWS Console interfaces with all AWS resources.
Artificial intelligence

AWS offers a range of AI model development and delivery platforms, as well as packaged AI-based applications. The Amazon AI suite of tools includes:
Amazon Lex for voice and text chatbot technology;
Amazon Polly for text-to-speech translation; and
Amazon Rekognition for image and facial analysis.

AWS also provides technology for developers to build smart apps that rely on machine learning technology and complex algorithms.

With AWS Deep Learning Amazon Machine Images (AMIs), developers can create and train custom AI models with clusters of graphics processing units (GPUs) or compute-optimized instances. AWS also includes deep learning development frameworks for MXNet and TensorFlow.

On the consumer side, AWS technologies power the Alexa Voice Services, and a developer can use the Alexa Skills Kit to build voice-based apps for Echo devices.
Mobile development

The AWS Mobile Hub offers a collection of tools and services for mobile app developers, including the AWS Mobile SDK, which provides code samples and libraries.

A mobile app developer can also use Amazon Cognito to manage user access to mobile apps, as well as Amazon Pinpoint to send push notifications to application end users and then analyze the effectiveness of those communications.
Messages and notifications

AWS messaging services provide core communication for users and applications. Amazon Simple Queue Service (SQS) is a managed message queue that sends, stores and receives messages between components of distributed applications to ensure that the parts of an application work as intended.

Amazon Simple Notification Service (SNS) enables a business to send publish/subscribe messages to endpoints, such as end users or services. SNS includes a mobile messaging feature that enables push messaging to mobile devices. Amazon Simple Email Service (SES) provides a platform for IT professionals and marketers to send and receive emails.
AR & VR (Augmented reality and virtual reality)

AWS offers augmented reality (AR) and virtual reality (VR) development tools through the Amazon Sumerian service. Amazon Sumerian allows users to create AR and VR applications without needing to know programming or create 3D graphics. The service also enables users to test and publish applications in-browser. Amazon Sumerian can be used in:
3D web applications
E-commerce & sales applications
Marketing
Online education
Manufacturing
Training simulations
Gaming
Game development

AWS can also be used for game development. Large game developing companies, such as Ubisoft, will use AWS services for their games, like For Honor. AWS can provide services for each part of a game's lifecycle.

For example, AWS will provide a developer back-end services, analytics and developer tools. Developer tools should help aid developers in making their game, while back-end services might be able to help with building, deploying or scaling a developer's platform. Analytics might help developers better know their customers and how they play the game. Developers can also store data, or host game data on AWS servers.
Internet of Things

AWS also has a variety of services that enable the internet of things (IoT) deployments. The AWS IoT service provides a back-end platform to manage IoT devices and data ingestion to other AWS storage and database services. The AWS IoT Button provides hardware for limited IoT functionality and AWS Greengrass brings AWS compute capabilities to IoT devices.
Other services

Amazon Web Services has a range of business productivity SaaS options, including:
The Amazon Chime service enables online video meetings, calls and text-based chats across devices.
Amazon WorkDocs, which is a file storage and sharing service
Amazon WorkMail, which is a business email service with calendaring features.

Desktop and streaming application services include Amazon WorkSpaces, a remote desktop-as-a-service platform (DaaS), and Amazon AppStream, a service that lets a developer stream a desktop application from AWS to an end user's web browser.
AWS pricing models and competition

AWS offers a pay-as-you-go model for its cloud services, either on a per-hour or per-second basis. There is also an option to reserve a set amount of compute capacity at a discounted price for customers who prepay in whole, or who sign up for one- or three-year usage commitments.

If potential customers can’t afford the costs, then AWS Free Tier is another possible avenue for using AWS services. AWS Free Tier allows users to gain first-hand experience with AWS services for free; they can access up to 60 products and start building on the AWS platform. Free Tier is offered in three different options: always free, 12 months free and trials.

AWS competes primarily with Microsoft Azure, Google and IBM in the public IaaS market.

















September 19, 2020

Advanced SOAPUI Funtionality-- MOCK SERVICE



How to use Mock Service:--

Select File > New SOAP Project.
Once the project you have opened appears in the Navigator, right-click any SOAP interface and select Generate SOAP Mock Service.
The Generate Mock Service dialog will appear. ...
In the next dialog, specify a name for your new mock service and click OK.

If you are waiting for back-end API to finish , you could create mock service like this that defines what responses you would get back and use that to test your front-end.

As we know, what if change method to post if we call get on test path and then that path does not exist.

We do not want to generate load on the server with post test and do not want to put any data. still interact with the product in that way.

There is more we can do as well:

If we see the response we are telling back to give back the 200 status code. we could tell it any other code to get back.

If we create two responses one will status code 200 and other with status code 500. Then when we call this in action- it cycling through these responses because the dispatch option here set to sequence.

We can change the dispatch option with query script and there is option to pass the query and set the value which we like to pass. Then only we can get that value.
Here is Dipatch Option:







Here is QUERY PARAMETER--



Data - Driven test suite with set up Script in SoapUI



DATA DRIVEN CONCEPT----

Quite simply put, data-driven testing is when you store test data (input, expected output, etc) in some external storage (database, spreadsheet, xml-files, etc) and then use that data iteratively in your tests when running them. For example to test your phone-lookup service, you might have a list of names and expected phone-numbers in a database which you would use to "drive" your test, checking that each name gets the right phone-number back.

Here,I am creating a CSV file and named as input file. I add groovy test script to it. let's  create variable input variable Path and call the test runner. I have defined the property in test suite and Iam going to get that property value and read the data out of that file and convert into string.

Read data and setting the property value from that file. Each times it adds the value and run the test case and loop through this file and put the test case name which we want to use for our test. In this case I used Numconvert. It is performing function what I want .



This is the test case -- I am using test suite property invalue that gives the value from our csv file and outvalue that contains NumberTodollar 




lets use set up script, I am reading in the file and put result in our test case property .. 
get handle to the file and create file objects and open the file path and make an array and that will read each line from that array and we can assert to check the number of lines. 





September 13, 2020

Selenium Basics

1. What is an automation testing?

Automation testing involves the use of a separate testing tool which lets you create test scripts which can be executed repeatedly and doesn’t require any manual intervention.

2. What are the benefits of Automation testing ?

Supports execution of repeated test cases
Enables parallel execution
Improves accuracy thereby reducing human-generated errors
Saves time and money

3. What is Selenium?

Selenium is one of the most popular testing suites. Is is designed in the way to automate the functional aspects of web application and wide range of browsers and platforms. Due to its existence in open source community, it has become one of the most accepted testing tool. It is the package of several testing tools. The main purpose of automation to reduce the time of regression.

4. Why do you prefer Selenium Automation Tool?

Some of the benefits of Selenium to do automation testing are
Free and open source –
Have large user base and helping communities.
Cross Platform compatibility
Multiple programming languages
Parallel Execution
Continuous Integration

5.Which execution engine have you used?

Selenium has no execute engine. J unit is used in selenium C#.

6.How do you capture the screen shot during run time?

We design out test case in such a way when there is any failure occur it goes to the catch block there we can write the code to capture the screenshot. We link the screenshot to extent report when failure occur screenshot will attach.

7. What are the Selenium components?

Selenium IDE- It is a Firefox/Chrome plug-in that was developed to speed up the creation of automation scripts. It records the user actions on the web browser and exports them as a reusable script.

Selenium Remote Control (RC)- RC is a server that allows users to write application tests in various programming languages. The commands from the test script are accepted by this server and are sent to the browser as Selenium core JavaScript commands. The browser then behaves accordingly. It is deprecated.

Selenium Web Driver- Web Driver is a programming interface that helps create and run test cases. It makes provision to act on web elements. Unlike RC, Web Driver does not require an additional server and interacts naively with the browser applications.

Selenium Grid- Grid was designed to distribute commands to different machines simultaneously. It allows the parallel execution of tests on different browsers and different operating systems.

8. What is Selenium framework?

Is is a code structure for making code maintainable simpler and code readability better. It involves breaking the entire code into smaller pieces of code which test a particular functionality.

9. What are the different types of framework available in Selenium?

Data Driven Framework:-
When the entire test data is generated from some external files like Excel, CSV, XML or some database table, then it is called Data Driven framework.

Keyword Driven Framework:-
When only the instructions and operations are written in a different file like an Excel worksheet or in feature file, it is called Keyword Driven framework.

Hybrid Framework:-
A combination of both the Data Driven framework and the Keyword Driven framework is called Hybrid framework

10. What are the challenges and limitation of Selenium Web driver?

Challenges -it is difficult to test image based application.

Can not perform tests on web services like soap and rest using Selenium

Limitations- Can not test mobile applications and window based applications, can not test the barcode.

11. Which Framework you worked on?

I have worked on Data driven and behaviour driven framework. Explain the components of framework.

12.What was your challenge during framework design?

My challenge was to identifying the proper structure and  all right components which fulfill our current and future requirements. The main challenge was how to write page functions, libraries of the framework. 

13. What source code management tool have you used?

I have used git repository  for my source code management. It is the Central location where we can push our code and people can clone. We can resolve the conflicts and merge and check out the project.

14. How many team members were there in your team?

In my company, we follow agile approach . We have small number of team. In my module, there are 5 members out of 2 QA , whose responsibilities is to start automation from functional testing  to the performance testing.

15. How many browser have you covered?
Basically 2- Chrome, Firefox

16. How did you manage to work in multiple browser?

We use Jenkins to trigger our scripts.

17. How many scripts do you automate in a day?

It depends on end to end Scenario, How good framework you have whether all page factory ready or not.

18. What are the testing types supported by Selenium?

Selenium basically supports Regression testing and Functional testing, UAT testing.

Steps involved are -
Re-testing: All tests in the existing test suite are executed. It proves to be very expensive and time-consuming.
Regression test selection: Tests are classified as feature tests, integration tests, and the end to end tests. In this step, some of the tests are selected.
Prioritization of test cases: The selected test cases are prioritized based on business impact and critical functionalities.

Functional testing - Functional Testing involves the verification of every function of the application with the required specification.

The following are the steps involved:
Identify test input
Compute test outcome
Execute test
Compare the test outcome with the actual outcome 

19. What is the difference between Selenium 2.0 and Selenium 3.0?

Selenium 2.0 is a tool that makes the development of automated tests for web applications easier. It represents the merger of the original Selenium project with the Web Driver project. Selenium RC got deprecated since the merge, however, was used for backward compatibility



Selenium 3.0 is the extended version of Selenium 2.0. It is inherently backward compatible and does not involve Selenium RC. The new version came along with several bug fixes and increased stability.


20. What is the same-origin policy and how is it handled?

Same Origin policy is a feature adopted for security purposes. According to this policy, a web browser allows scripts from one web page to access the contents of another web page provided both the pages have the same origin. The origin refers to a combination of the URL scheme, host name, and port number.

21. What is Selenese? How is it classified?

Selenese is the set of Selenium commands which are used to test your web application. The tester can test the broken links, the existence of some object on the UI, Ajax functionality, alerts, window, list options, and a lot more using Selenese.

Action: Commands which interact directly with the application

Accessors: Allow the user to store certain values to a user-defined variable

Assertions: Verifies the current state of the application with an expected state

22. Mention the types of Web locators.

Locator is a command that tells Selenium IDE which GUI elements ( say Text Box, Buttons, Check Boxes, etc) it needs to operate on. Locators specify the area of action.

Locator by ID: It takes a string parameter which is a value of the ID attribute which returns the object to findElement() method.

Locator by the link: If your targeted element is a link text then you can use the by.linkText locator to locate that element.

Locator by Partial link: The target link can be located using a portion of text in a link text element.

Locator by Name: The first element with the name attribute value matching the location will be returned.

Locator by TagName: Locates all the elements with the matching tag name

Locator by classname: This finds elements based on the value of the CLASS attribute. If an element has many classes then this will match against each of them.

Locator by XPath: It takes a parameter of String which is a XPATHEXPRESSION and it returns an object to findElement() method.

Locator by CSS Selector: Locates elements based on the driver’s underlying CSS selector engine.

23. Mention the types of navigation commands

driver.navigate()  - Navigates to the provided URL

driver.navigate().refresh() - This method refreshes the current page

driver.navigate().forward() - This method does the same operation as clicking on the Forward Button of any browser. It neither accepts nor returns anything.

driver.navigate().back() - This method does the same operation as clicking on the Back Button of any browser. It neither accepts nor returns anything.

24. What is the major difference between driver.close() and driver.quit()?

driver.close()- This command closes the browser’s current window. If multiple windows are open, the current window of focus will be closed.

driver.quit()- When quit() is called on the driver instance and there are one or more browser windows open, it closes all the open browser windows.


25. How to type text in an input box using Selenium?

SendKeys() is the method used to type text in input boxes

26. How to mouse hover over a web element?

Actions class utility is used to hover over a web element in Selenium Web Driver

Instantiate Actions class.

Actions action = new Actions(driver);

27. What is POM (Page Object Model)?

Every web page of the application has a corresponding page class that is responsible for locating the web elements and performing actions on them. Page Object Model is a design pattern that helps create object repositories for the web elements. POM improves code re-usability and readability. Multiple test cases can be run on the object repository. It keeps the test and element locators separately. 

28. Difference between Page Factory and Page Object model?

Page Object Model- It is a design pattern to create object repository for web UI elements. Each web page should have corresponding page class. 

Page Factory- It is the way to initialise the web elements within the page object when an instance is created.

29. How to handle multiple windows in Selenium?

A window Handle is a unique identifier that holds the address of all the windows. This is basically a pointer to the window which returns the string value.

getWindowHandle()- To get the current window handle.

getWindowHandles ()- To get all opened window handles.

30. What are assert and verify commands?

Assert is used to compare actual result with excepted result.

Verify means there wont be any halt in the test execution even though the verify condition is true and false. Verifies if the specified condition is true and false. If the result is true, the next test step will be executed. In case of false condition, the execution would still continue

31. What does the switch To() command do?

Switch To() command is used to switch between windows, frames or pop-ups within the application. Every window instantiated by the Web Driver is given a unique alphanumeric value called “Window Handle”.

Get the window handle of the window you wish to switch to

String handle= driver.getWindowHandle();

Switch to the desired window

driver.switchTo().window(handle);


32. When do we use findElement() and findElements()?

findElement() is used to access any single element on the web page. It returns the object of the first matching element of the specified locator. It throws an exception when element is not visible.

General syntax:

WebElement element = driver.findElement(By.id(page1));

findElements() is used to find all the elements in the current web page matching the specified locator value. All the matching elements would be fetched and stored in the list of Web elements. It does not throw an exception when elements are not visible.

General syntax:

List <WebElement> elementList = driver.findElements(By.id(page1));


33. What is the difference between single and double slash in Xpath?

Single slash is used to create Xpath with an absolute path i.e. the XPath would be created to start selection from the start node.

/html/body/h1/h2

Double slash is used to create Xpath with relative path i.e. the XPath would be created to start selection from anywhere within the document

//div[class="hello"]

34. Selenium WebDriver Commands in C#:

Browser commands- Url, Title, pageSource, close, quit, back, forward, refresh
Web Element commands- Click, Clear, SendKeys, Displayed, Enabled, Selected, Submit,Text, TagName, GetCSSValue
Dropdown commands- SelectByText, SelectByValue, options, IsMultiple, deselectAll, deselectByIndex, deselectByValue, deselectByText

35. Explain the different exceptions in Selenium WebDriver.

TimeoutException: This exception is thrown when a command performing an operation does not complete in the stipulated time

NoSuchElementException: This exception is thrown when an element with given attributes is not found on the web page

ElementNotVisibleException: This exception is thrown when the element is present in DOM (Document Object Model), but not visible on the web page

StaleElementException: This exception is thrown when the element is either deleted or no longer attached to the DOM

36. Write a code to wait for a particular element to be visible on a page. Write a code to wait for an alert to appear.

We can write a code such that we specify the xpath of the web element that needs to be visible on the page and then ask the WebDriver to wait for a specified time. Look at the sample piece of code below:

WebDriverWait wait=new WebDriverWait(driver, 20);
Element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath( “<xpath”)));


Similarly, we can write another piece of code asking the WebDriver to wait until an error appears like this:
WebDriverWait wait=new WebDriverWait(driver, 20);
Element = wait.until(ExpectedConditions.alertIsPresent());


37.How can you fetch an attribute from an element? How to retrieve typed text from a textbox?

We can fetch the attribute of an element by using the getAttribute() method. Sample code:
WebElement eLogin = driver.findElement(By.name(“Login”);
String LoginClassName = eLogin.getAttribute("classname");

38. What is a Robot class?


This robot class provides control over the mouse and keyboard devices.

The methods include:
KeyPress(): This method is called when you want to press any key.
KeyRelease(): This method is used to release the pressed key on the keyboard.
MouseMove(): This method is called when you want to move the mouse pointer in the X and Y co-ordinates.
MousePress(): This is used to press the left button of the mouse.
MouseMove(): This method helps in releasing the pressed button of the mouse.


39. How to handle a dropdown in Selenium WebDriver? How to select a value from dropdown?
This is a 2 step process:
Identify the ‘select’ html element (Because dropdowns must have the ‘select’ tag)
Select an option from that dropdown element

To identify the ‘select’ html element from the web page, we need to use findElement() method. Look at the below piece of code:

WebElement mySelectElement = driver.findElement(By.id("mySelect"));
Select dropdown = new Select(mySelectElement);


Now to select an option from that dropdown, we can do it in either of the three ways:

dropdown.selectByVisibleText(“ABC”); → Selecting an option by the text that is visible
dropdown.selectByIndex(“1”); → Selecting, by choosing the Index number of that option
dropdown.selectByValue(“option2”); → Selecting, by choosing the value of that option

40. Difference between isselected, isenabled, isdisplayed

isdisplayed()- whether the element is diplay on web page or not 

isenabled ()- whether element is enable or disable

isselected()- whether element is selected or not - in case of radio buttons, check box and drop downs 


41. how to resize the browser window?

dimension d= new dimension (480,620);
driver.manage.setsize(d);

42. When do we use selenium grid?

It can be used to execute same or different test scripts on multiple platforms and browsers concurrently so as to achieve distributed test execution.



43. how to drag and drop an element?

action.clickandHold(driver.findelement()).release().build().perform()







September 11, 2020

Types of Method Parameter in C#

 Basically in C# , there are four types of Parameters -

Value Parameter- 

Create a copy of parameter passed, so modification will not affect each other.

Reference Parameter-

 The ref method parameter keyword on method parameter causes a method to refer to same variable that was passed into the method. Any changes made to the variable will be reflected in that variable when control passes back to the calling method.

Out Parameter-

 Use when you want a method to return more than one value

Parameter Arrays

The Param keyword lets you specify a method parameter that takes a variable number of arguments. Param keyword should be the last one in a method declaration.

Here is the Example-

int[] numbers = new int[4];

            numbers[0] = 137;

            numbers[1] = 138;

            numbers[2] = 139;

            numbers[3] = 140;

           parammethod();

            parammethod(numbers);

            parammethod(1, 2, 3, 4, 5);

            int j = 20;

            int k = 0;

            simplemethod(j);

            Console.WriteLine(j);

            simplemethod(ref k);

            Console.WriteLine(k);

             int total = 0;

            int product = 0;

            calculate(10, 20, out total, out product);


            Console.WriteLine("sum={0} && Product={1}", total, product);

}

         public static void calculate(int a, int b, out int sum, out int product)

        {

            sum = a + b;

            product = a * b;


        }

        public static void simplemethod(ref int i)

        {

            i = 10;

        }

        //you can not have two param and it should be at the end 

        public static void parammethod(params int[] numbers)

        {

            Console.WriteLine("the total numbers are {0}", numbers.Length);

            foreach (int i in numbers)

            {

 Console.WriteLine(i);

        }

Difference Between For and ForEach

ForEach loop - It is used to iterate through the items in a collection.  Foreach is very efficient. you do not need to know how many elements in collection.

For loop - We do intialisation, condition and increment at same place . you have to know how many times you have to loop through. we can use an exception as well.

Here is the example-

int[] numbers = new int[4];

            numbers[0] = 137;

            numbers[1] = 138;

            numbers[2] = 139;

            numbers[3] = 140;

            foreach (int k in numbers)

            {

                Console.Write(k);

            }

            for (int j = 0; j <= numbers.Length; j++)

            {

                Console.WriteLine(numbers[j]);

            }


In this, in case of for loop , if by mistaken we use <= symbol instead of < , we will get indexOutOfRange exception. So pretty much , best to use foreach loop...

Difference between Parse and TryParse

 If a number in a string format you have two options to convert into int or string 

1. Parse--Parse() method throws an exception if it can not parse the value 

2. TryParse()- TryParse() method returen a boolean whether it is succeeded or failed.

Use Parse() if you are sure value is valid, otherwise use TryParse.. 


For example- We are using TryParse beacuse our number is invalid.

string num= "100lk";

int result= 0;

bool isConversionsuccessful= int.TryParse(num,out result)

if(isConversionsuccessful)

{

Console.Writeline(result);

}

else

{

Console.Writeline("Please enter valid number");

}

Best Automation Testing tools


Best Tools For Automation-


Selenium- For developers and testers who have experience and skills in programming and scripting, Selenium offers flexibility that is unseen in many other test automation tools and frameworks. Users can write test scripts in many different languages that run on multiple system environments  and browsers 

Katalon Studio- Katalon Studio is a powerful and comprehensive automation solution for testing API, Web, mobile, and desktop application testing. It also has a rich feature set for these types of testing and supports multiple platforms.


Cypress for automation-
Cypress provides a robust, complete framework for running automated tests but takes some of the freedom out of Selenium by confining the user to specific frameworks and languages.


Postman for API- Postman is another automation tool designed for API testing. Users can install this tool as a browser extension or a desktop application on Mac, Linux, Windows. It is popular not only among testers for API test automation but also developers who use the tool to develop and test APIs. It is, in fact, a development environment to develop and test APIs.

Soup UI for API-Soup UI is a headless functional testing tool dedicated to API testing.


Apache JMeter-JMeter is an open-source tool designed for test loading and performance measurement — two features of which JMeter is known.

WebLOAD supports hundreds of technologies – from web protocols to enterprise applications and has built-in integration with Jenkins, Selenium and many other tools to enable continuous load testing for DevOps. 

LoadNinja is a cloud-based load testing and performance testing platform for web applications and web services.




Why we need test automation ?

It seems simple, but the answer is quite tedious. I would say the purpose of automation is to make sure that the application is working properly and is meeting the functions requirements specified in the business requirement Specification. When test engineers run automation suits in this continuous deployment world, the automation suites needs to make sure that the application is not broken. The main purpose of Automation is to bring faster validation for phases in the development of your product and finding and preventing defects.

Basic Concepts of OOP's and C#

Basic Concepts---


1. What is OOP?

Object Oriented Programming

2. Can you write the basic concepts of OOP's?

(I personally think this is not a question to ask, but people do ask these kind of questions.)

Abstraction

Encapsulation

Inheritance

Polymorphism

3. What is a class?

A class is a broad definition of something, an instance (or object) is a specific example that fits under that broader class definition. e.g. TV is a class, and my Samsung TV is my instance.

4. What is an object?

It is the actual instance of a class. e.g. Car is class, Mercedes Benz is an instance.

5. What is Encapsulation?

The Class can encapsulate the details of the logic.


6. What is Polymorphism?

class Employee {

public int getDiscount() {

return 5;

}

}

class InternalEmployee : Employee {

public int getDiscount() {

return 10;

}

}

class Contractor : Employee {

public int getDiscount() {

return 20;

}

}

Employee employee = new Employee();

employee.getDiscount(); // returns 5

Employee employee1 = new InternalEmployee();

employee1.getDiscount(); // returns 10

Employee employee2 = new ContractEmployee();

employee2.getDiscount(); // returns 20

As you see, although the variables have been declared with the same type Employee, and depends its actual initialisation, the same method will be executed differently.

So Polymorphism: Objects may behave differently depending on the "type" while keeping the same interface. we use getter and setter methods to encapsulate and protect fields.

7. What is Inheritance?

One class can extend the features of the other Class, and the first class will be the sub class, usually it implies a more specific type of entity. e.g. Dog is subclass of Pet. Dog is more specific whereas Pet can contain some common features of Pet. This way when I create a class called Cat, I do not need to repeat everything Pet has already got.

We can achieve multiple class inheritance using interfaces that solves diamond problem.

8. Why Properties?
Making the class field is public, exposing it to external world is bad as you will not have controlled over what have assigned and returned.

9. Define a constructor?
Constructor is a method used to initialize an object, and it gets invoked at the time of object creation.
The creation of an object involves allocating the right amount of the memory.

10. Define Destructor?
Destructor is a method which is automatically called when the object is destroyed. You can clean up things there if needed.

11. What is a delegate?
A delegate is a point safe function pointer. It holds a reference pointer to a function.

12. What is a virtual method?
Virtual method is a member method of class and its functionality can be overridden in its derived or subclass class.

13. What is overloading?
Same method name, but different number or type of parameters.
e.g.
void add(int a, int b);

void add(double a, double b);

void add(int a, int b, int c);

14. What is an abstract class?
An abstract class is a class which cannot be instantiated.
It will be inherited by specific type or class. (A type is a class, a class is a type)
An abstract class can contain only Abstract method.
for example-
public abstract class Customer
{
public abstract void print();
}
public class Program: Customer 
{
public override void print()
{
Console.Writeline("Print Method");
}

public static void main()
{
Customer c= new Program();
c.print();

}
}


15. What is a ternary operator?

condition ? expr1 : expr2

If condition is true, expr1 is executed otherwise expr2 will be executed.

16. What is method overriding?

Method overriding is a feature that allows sub class to provide implementation of a method that is already defined in the main class. This will override the implementation in the super class by providing the same method name, same parameter and same return type.

17. What is an interface?

An interface is a contract. An interface is a collection of abstract method. If the class implements an inheritance, and then thereby inherits all the abstract methods of an interface.

18. What is exception handling?
Exception is an event that occurs during the execution of a program. Exceptions can be of any type – Run time exception, Error exceptions. Those exceptions are handled properly through exception handling mechanism like try, catch and throw keywords.

19. Difference between class and an object?

An object is an instance of a class. Objects hold information , but classes don’t have any information. Definition of properties and functions can be done at class and can be used by the object. Class can have sub-classes, and an object doesn’t have sub-objects.

20. What is early and late binding?

Early binding refers to assignment of values to variables during design time whereas late binding refers to assignment of values to variables during run time.

Every Console application should have a console method.

21. what is nullable type?

A nullable type can represent the correct range of values for its underlying value type, plus an additional null value.

The C# Null Coalescing Operator (??) is a binary operator that simplifies checking for null values. It is used to assign a default value to a variable when the value is null.
class Program

{

static void Main(string[] args)

{

string name = null;

string myname = name ?? "abc";

Console.WriteLine(myname);

Console.ReadLine();

}

}


22. What is an array?

An array is collection of similar data types.

23. Difference between Abstract classes and interfaces

The abstract keyword is used to create abstract classes. It can not be instantiated and can not be used as base class , not sealed class.

Abstract classes can have implementations for some of its members but the interface can not have implementation for any of its members.

Interface can not have fields where as as abstract class can have fields .

A class can inherit from multiple interfaces at the same time , where as a class cannot inherit from multiple classes at the same time.

Abstract class members can have access modifiers where as an interface members can not have access modifiers.

24. Difference between Abstract class and Sealed Class?

abstract means a class can be used as base class
sealed means class can not be used as base class

25. What is Enums?
Enums- If a program use set of integral numbers, consider replacing them with enums , which makes the program more readable, maintainable. these are strongly typed constants.

26. Difference between implicit and explicit conversion?

Implicit conversion- It is done by compiler when there is no loss of information if the conversion is done .

for example- Converting an int to float will not loose any data.

Explicit Conversion- For example- when we convert a float into int , we loose the fractional part and also a possibility of overflow exception.In this case , explicit conversion is required. We can use cast operator.

27. What is lambda Expression?

lambda Expressions- Anonymous methods => is called lambda operator. for example- to find an employees id with id=1

you can use lambda expression-

Employee em= listEmployee.Find((Employee em)=>em.id == 1);

28. Static member and static method-

Static member- when a class member is declared with static keyword is called static member. If I create 3 objects of a class, I will have 3 sets of instance members in the memory, where as there will be one copy of static member, no matter how many instances of class are created.

Static method:
Two common uses of static fields are to keep a count of the number of objects that have been instantiated, or to store a value that must be shared among all instances.

 Static methods can be overloaded but not overridden, because they belong to the class, and not to any instance of the class.

Static methods cannot be overridden, they can however be hidden using the 'new' keyword. Mostly overriding methods means you reference a base type and want to call a derived method. Since static's are part of the type 

Static method some cases we have specific method we do not need to create object of class
We do not need to create object all the time. blueprint we can avoid allocate the memory in our application by not need to create an object

29. What is Structs?
Structs is a value type where class is a value type. Struct are stored on stack where classes are stored on heap.

30. what does Type and Type member mean?
Classes, Structs, delegates, enums and interfaces are called as types and fields, properties , constructors and methods that normally reside in the type are called type members .

31. what are access modifiers?
Private - Only within the containing class 
Public - Anywhere 
Protected -  Within the containing type and type derived from the containing type 
Internal - A member with an internal modifier is available anywhere within the containing assembly  

32. What are attributes?
Attributes allows you to add declarative to your programs. For example-obselete 

33. what is Dictionary?
A dictionary is the collection of key value pair.
When we create a dictionary , we have to specify the type for key and value.

For example-
using System;
using System.Collections.Generic;
namespace Dictionary
{
   public  class Program
    {
        private static void Main(string[] args)
        {
            Customer c1 = new Customer()
            {
            id = 100,
            name = "krtishma",
            salary = 20000
        };
 Customer c2 = new Customer()
        {
            id = 101,
        name = "hari",
            salary = 300000
           };
`    Customer c3 = new Customer()
        {
            id = 103,
        name = "Reami",
            salary = 400000
             };
          Dictionary<int, Customer> diccustomer = new Dictionary<int, Customer>();
            diccustomer.Add(c1.id, c1);
            diccustomer.Add(c2.id, c2);
            diccustomer.Add(c3.id, c3)
    Customer cust;
            if (diccustomer.TryGetValue(111, out cust))
            {
                Console.WriteLine("ID ={0} Name ={1} salary ={2}", cust.id, cust.name, cust.salary);

            }
            else {
                Console.WriteLine("key not found");
            
            }
            Customer customer103 = diccustomer[103];
            //instead of key value pair we are using var
            foreach (KeyValuePair<int, Customer> CustomerKEyvaluepair in diccustomer)
            {
                Console.WriteLine("ID ={0}", CustomerKEyvaluepair.Key);
                Customer cus = CustomerKEyvaluepair.Value;
                Console.WriteLine("ID={0}name ={1} Salary ={2}", cus.id, cus.name, cus.salary);
 }
            foreach (Customer cus in diccustomer.Values)
            {
                Console.WriteLine("ID ={0} Name ={1} salary ={2}", cus.id, cus.name, cus.salary);
            
            }
            foreach (int key in diccustomer.Keys)

            {
                Console.WriteLine(key);
                
                // Console.WriteLine("ID ={0}", CustomerKEyvaluepair.Key);
                //Customer cus= CustomerKEyvaluepair.Value;
                //Console.WriteLine("ID={0}name ={1} Salary ={2}",cus.id,cus.name,cus.salary);


            }
public class Customer
        { 
        public int id { get; set; }
            public string name { get; set; }
            public int salary { get; set; }
}
        
        
33. What is list?
List is generic collection class can be used to create a collection of any type. we can sort a list , reverse a list, contains, start with different methods we can use..
public  class Program
    {
        private static void Main(string[] args)
        {

            Customer c1 = new Customer()
            {
            id = 100,
            name = "krtishma",
            salary = 20000

        };


        Customer c2 = new Customer()
        {
            id = 101,
        name = "hari",
            salary = 300000
            
            };

            List<Customer> customers = new List<Customer>(2);
            customers.Add(c1);
            customers.Add(c2);
           Console.WriteLine("are salary greater than 5900",customers.TrueForAll(x => x.salary > 4000));
            //if (customers.Contains(c2))
            if(customers.Exists(cus=>cus.name.StartsWith("p")))
            {
                Console.WriteLine("");

            }
            else {
                Console.WriteLine("");
            
            }

HOW TO RESIZE AN ARRAY- 
array.resize(ref arrayname, 7);


public bool method(string color)
return ( color.tolower()== "green" ) ? true: false 




            
       
























September 08, 2020

DI/CI Specflow



Dependency Injection-

Dependency Injection is a techniques whereby one object supplies the dependency of another object. Dependency is an object that is used as a service.

For example- At left hand side image , Chef says I need objects a and b. The waiter does not know anything about a and b . Dependency injection acts like a window between waiter and Chef. Objects are in DI that is hidden. Window is going to create object a and b but you cant see that. At right hand side , you can see waiter gives the object a and b to the Chef.


Context Injection-

SpecFlow supports a very simple dependency framework that is able to instantiate and inject class instances for scenarios. This feature allows you to group the shared state in context classes, and inject them into every binding class that needs access to that shared state.

To use context injection:

Create your POCOs (Plain old C# Object)(simple .NET classes) representing the shared data.

Define them as constructor parameters in every binding class that requires them.

Save the constructor argument to instance fields, so you can use them in the step definitions.

In this example we define a POCO for holding the data of a person and use it in a given and a then step that are placed in different binding classes.

public class PersonData // the POCO for sharing person data
{ 
  public string FirstName;
  public string LastName;
}

[Binding]
public class MyStepDefs
{
  private readonly PersonData personData;
  public MyStepDefs(PersonData personData) // use it as ctor parameter
  { 
    this.personData = personData;
  }
  
  [Given] 
  public void The_person_FIRSTNAME_LASTNAME(string firstName, string lastName) 
  {
    personData.FirstName = firstName; // write into the shared data
    personData.LastName = lastName;
    //... do other things you need
  }
}

Scenario Context-

You may have at least seen the ScenarioContext from the code that SpecFlow generates when a missing step definition is found: ScenarioContext.Pending();

ScenarioContext provides access to several functions, which are demonstrated using the following scenarios

Feature Context-

SpecFlow provides access to the current test context using both FeatureContext and the more commonly used Scenario Context. 
Feature Context persists for the duration of the execution of an entire feature, whereas Scenario Context only persists for the duration of a scenario.

September 07, 2020

Azure Devops



What is Azure?


Azure is cloud computing platform provided by Microsoft.

It is growing collection of integrated cloud services which Developers and IT professionals use to build, deploy and manage application through the global network of Data Centers.

All these providers provide services . 100+ services are available in 140 countries.

Azure Features -


1. On demand Provisioning- Ask for what you need, when you need and when to stop. If you want to scale an application then it will not take time .

2. Scalability in Minutes- Scale up or down, out or in depending upon usage or needs. for example- In e-commerce sites, like in festive seasons, you can scale up and not in festive seasons, you are able to scale down.

3. Pay as you Consume- You pay for only number of provisions you are using.

4. Abstract Resources- Focus on your application . You do not need to worry about hardware specifications and  networking. All things are taken care by Azure.

5. Efficiency of experts- Utilize the skills , knowledge and resources of experts

6. Measurable- Every unit of usage is measurable

Azure Services -


1. Compute - what kind of compute options are available. Virtual machines, app services , Data bricks.

2. Migration- if you want your storage or data . Different service available to migrate into cloud. you can move a part of your application and hybrid option is available

3. Secure - Azure is very secure and very much complained with organisational policy.

4. Storage- for example - you tube files SQL, MySQL ,DBMS, you want to store video and audio files are available in Azure

5. Messaging- Messaging based architecture like two application running separately and you want to scan send out message to each other

6. Networking- u can make cloud environment as secure as you want to be.

What is Devops -


Devops is set of practices intended to reduce the time between committing a change to the system and change being placed into the normal production, while ensuring high quality. Operations and developers come together.

The DevOps is the combination of two words, one is development and other is Operations. It is a culture to promote the development and operation process collectively.

The DevOps tutorial will help you to learn DevOps basics and provide depth knowledge of various DevOps tools such as Git, Ansible, Docker, Puppet, Jenkins, Chef, Nagios, and Kubernetes.
what is Azure Devops-

Azure DevOps Server is a Microsoft product that provides version control, reporting, requirements management, project management, automated builds, testing and release management capabilities.

All set of tools integrated into one single environment .

Components in Azure Devops-


1. Azure Board- IT is the service for managing the work for your software projects. It brings a set of capabilities including native support for scrum, Kanban and customizaable dashboards and integrated reporting. 

2. Azure Pipelines— A CI/CD, testing, and deployment system that can connect to any Git repository

3. Azure Repos— A cloud-hosted private Git repository service

4. Azure Test Plans— A solution for tests and capturing data about defects

5. Azure Artifacts — A hosting facility for Maven, Npm, and Nu Get packages


Key concepts in Pipeline

 1. Agent- To build your code or deploy your software using azure pipelines, you need at least one agent. Two types of agent- Microsoft host...