Tuesday, December 12, 2017

Selenium Interview Questions & Answers


1. What is Automation Testing?

Automation testing is a process of simulating the manual process of the application which is under test.

2. What are the benefits of Automation Testing?

Benefits of Automation testing are:
  • Supports execution of repeated test cases.
  • It enables parallel execution.
  • Improves accuracy thereby reducing human-generated errors.
  • Saves time and money.
3. What is Selenium 2.0?

Web Testing tools Selenium RC and WebDriver are consolidated in a single tool in Selenium 2.0.

4. Mention what is Selenium 3.0?

Selenium 3.0 is the latest version of Selenium. It has released 2 beta versions of selenium 3.0.

5. Why Selenium?

It is becoming increasingly popular and it is the first choice of automation testers as well as organizations for automating the testing of Web-based applications for both the GUI as well as the functionality.

6. What are the testing types that can be supported by Selenium?

Selenium supports the following types of testing:
  • Functional Testing.
  • Regression Testing.
7. What are the different types of locators in Selenium?

In Selenium every object or control in a web page is referred as element, there are different ways to find an element on a web page they are
  • ID
  • Name
  • TagName
  • CSS Selector
  • Link text
  • PartialLink Text
  • Xpath etc
8. Mention what is the use of X-path?

XPath means XML Path. X-Path is used to find the WebElement in web pages. It is also useful in identifying the dynamic elements.

The fundamental behind locating elements using XPath is the traversing between various elements across the entire page and thus enabling a user to find an element with the reference of another element.

9. What is the difference between Assert and Verify commands?

Assert: Assert command checks whether the given condition is true or false. Let’s say we assert whether the given element is present on the web page or not. If the condition is true then the program control will execute the next test step but if the condition is false, the execution would stop and no further test would be executed.

Verify: Verify command also checks whether the given condition is true or false. Irrespective of the condition being true or false, the program execution doesn’t halt i.e. any failure during verification would not stop the execution and all the test steps would be executed.

10.  Explain the difference between single and double slash in X-path?

Single slash '/':
  1. Single slash (/) start selection from the document node.
  2. It allows you to create 'absolute' path expressions.
Double Slash '//':
  1. Double slash (//) start selection matching anywhere in the document.
  2. It enables to create 'relative' path expressions.
11. What is same origin policy? How you can avoid same origin policy?

The "Same Origin Policy" is introduced for security reason, and it ensures that content of our application will never be accessible by a script from another application. As per the policy, any code loaded within the browser can only operate within that website’s domain.

To avoid "Same Origin Policy" proxy injection method is used, in proxy injection mode, the Selenium Server acts as a client configured HTTP proxy, which sits between the browser and application and then masks the application under test under a fictional URL.

12. Mention what is the difference between Implicit wait and Explicit wait?

Implicit Wait: Sets a timeout for all successive Web Element searches. For the specified amount of time, it will try looking for element again and again and if the element is not found then it throws a NoSuchElementException.

Explicit Wait: It is a one-timer, used for a particular search.


13. Explain what is the difference between findElement() and findElements()?

findElement(): It finds the single element within the current page using the given “locating mechanism”.It returns a single WebElement
Example: driver.findElement(By.xpath(“//div[@id=’example’]//ul//li”));

findElements(): Using the given “locating mechanism” find all the elements on the current page.It returns a list of web elements.
Example: List <WebElement> elementList = driver.findElements(By.xpath(“//div[@id=’example’]//ul//li”));

14. How to select a value in a drop-down?

A value in the drop-down can be selected using WebDriver’s Select class.
Syntax:

selectByValue:
Select selectByValue = new Select(driver.findElement(By.id(“SelectID_One”)));
selectByValue.selectByValue(“greenvalue”);

selectByVisibleText:
Select selectByVisibleText = new Select (driver.findElement(By.id(“SelectID_Two”)));
selectByVisibleText.selectByVisibleText(“Lime”);

selectByIndex:
Select selectByIndex = new Select(driver.findElement(By.id(“SelectID_Three”)));
selectByIndex.selectByIndex(2);

15. What is the difference between driver.close() and driver.quit command?

close(): Close() method closes the web browser window that the user is currently working.

quit(): Quit() method closes down all the windows that the program has opened. 

16. What is the difference between getWindowhandles() and getwindowhandle()?

getwindowhandles(): It is used to get the address of all the open browser and its return type is Set<String>

getwindowhandle(): It is used to get the address of the current browser where the control is and return type is a string

17. Explain how you can switch back from a frame?

To switch back from a frame use method defaultContent()
Example: driver.switchTo().defaultContent();

18. What is the difference between driver.get() and driver.navigate()?

driver.get(): It's used to go to the particular website, But it doesn't maintain the browser History and cookies so, we can't use forward and backward button, if we click on that, page will not get schedule

driver.navigate(): it's used to go to the particular website, but it maintains the browser history and cookies. So we can use the forward and backward button to navigate between the pages during the coding of test cases

19. What is Gecko driver?

Gecko Driver is the link between your tests in Selenium and the Firefox browser. Gecko Driver is a proxy for using W3C Web Driver-compatible clients to interact with Gecko-based browsers i.e. Mozilla Firefox in this case. As Selenium 3 will not have any native implementation of FF, we have to direct all the driver commands through Gecko Driver.

20. What are the differences between XPath and CSS?

With XPath, we can search elements either backward or forward in the DOM hierarchy while CSS works only in a forward direction. This means that with XPath we can locate a parent element using a child element.

Sunday, May 15, 2016

Web Service Testing - POSTMAN Tool

Introduction to Web Service:

A Web Service is a service accessed via Network. Web Service is a way to publish our application over the web and enable other applications to access functions defined by our web service.

Below are the HTTP Methods, that we're going to learn in web service testing (You can relate the below methods with DML commands in SQL)
  • GET -------------> Select Query
  • POST -----------> Insert Query
  • PATCH ---------> Update Query
  • PUT -------------> Update Query
  • DELETE -------> Delete Query 
POST(Create) - With the help of POST method, we can easily push the records into the table. The success response code is 201 Created.

GET(Read) - With the help of GET method, we can easily read the records from the table. The success response code is 200 OK.

PUT(Update) - With the help of PUT method, we can easily update the records in the table. For updating a value, we have to pass the parameters in the request URL. The success response code is 200 OK / 204 No Content.

PATCH(Partial Update) - With the help of PATCH method, we can easily update the single value in the table. For updating a value, we have to pass the parameters in the request URL. The success response code is 200 OK / 204 No Content.

DELETE (Delete) - With the help of DELETE method, we can easily delete the records from the table. The success response code is 200 OK.

All the above-mentioned HTTP methods are using REST protocol.

Learn about REST Protocol:
REST means REpresentational State Transfer protocol. It is an architecture that generally runs over HTTP.

The advantage of using Restful APIs:

Rest API supports both XML and JSON format. It is usually preferred for mobile and web apps as it makes app work faster and smoother.

Sample XML format for POST request:

<InsertCustomer>
<Name>Balaji</Name>
<TelephoneNumber>9999999999</TelephoneNumber>
</InsertCustomer>

Sample JSON format for POST request:
{
    "InsertCustomer": 
     {
        "Name": "Balaji",
        "TelephoneNumber": "9999999999"
     }
}

Learn about POSTMAN:

Postman is a Chrome App. This means that Postman can only run on the Chrome browser.
Postman is a powerful API testing tool. By using this tool, we can easily test our API’s. With postman, we can construct request quickly, save them as collections for later use. Please refer the figure 1.0.

Figure 1.0 - POSTMAN

How to add POSTMAN to chrome browser
1.Launch the Chrome browser.
2.Type the "Postman Chrome" in the address bar field.
3.Click the first search result.
4.In the postman home page, click the "Add to Chrome" button.

Learn about Collection:

A collection allows you to group individual requests together. These requests can be further organized into folders to accurately mirror your API. Please refer the figure 1.1, 1.2 & 1.3.

The collection runner runs requests in a collection in the order in which you set them. It also runs tests for every request and gives you an aggregate summary of what happened. It stores all your test runs so you can compare them and see what has changed.

All you have to do is select a collection, an environment if needed, and hit the Start Test button. Optionally, you can also add a CSV or a JSON file from which Postman can pick up data values.Please refer the figure 1.4 & 1.5.
If you want to run your request as a collection, we have to purchase jet-packs. It costs 9.99 dollars. 

Jetpacks are awesome upgrades, which will make our API workflow faster and more efficient.
Once you activate the Jetpacks upgrade, you get the following features:
1. Test editor and runner: Lets you write and run tests within Postman.
2. Collection runner: Lets you run an entire Postman collection in one go.
3. Data variables: Let’s you parameterize requests with values from a JSON/CSV file. This makes testing multiple scenarios as easy as adding another row to a spreadsheet.A one-time initialization is required. All future updates will be free.

Figure 1.1 - Create Collection

Figure 1.2 - Add Folder to the Collection

Figure 1.3 - Added Folders into the Collection

Figure 1.4 - Collection Runner




Figure 1.5 - Test Result

Learn about Environment:

While working with APIs, you will often need to have different setups. Environments give you the ability to customize requests using variables. This way you can easily switch between different setups without changing your requests.Environments can be downloaded and saved as JSON files and uploaded later.
Each environment is a set of key-value pairs. These can be edited using the key-value editor. The key is the variable name.
Variables can be used in the following form - {{variable Name}}. The string {{variable Name}} will be replaced with its corresponding value. For example, for an environment variable 'URL' with the value 'http://localhost’, you will have to use {{url}} in the request URL field. {{url}} will be replaced by http://localhost when the request is sent. Please refer the figure 1.6 & 1.7.

Figure 1.6 - Add Environment

Figure 1.7 - Select Environment



Learn about Newman:
Newman is a command-line collection runner for Postman. It allows you to run and test a Postman collection directly from the command-line.Newman is built on Node.js. To run Newman, make sure you have Node.js & python installed.

By using the below commands, we can easily install the newman & run the postman collection directly from the command-line on our machine.

npm install -g newman
newman -c mycollection.json –n 10 –e environment variable –H report.html 
d data.json
-c Specify a Postman collection as a JSON [file]
-e Specify a Postman environment as a JSON [file]
-n Define the number of iterations to run
-H Export a HTML report to a specified file
-d Specify a data file to use either json or csv