Automation, Automation Framework, Design patterns, Java, Maven, Safari, Selenium

Running selenium scripts on browser Safari and Mac Operating System

Safari Logs

SafariDriver Launcher
 [ 0.007s] [safaridriver.client] Connecting to SafariDriver browser extension...
 [ 0.019s] [safaridriver.client] This will fail if you have not installed the latest SafariDriver extension from
 http://selenium-release.storage.googleapis.com/index.html
 [ 0.020s] [safaridriver.client] Extension logs may be viewed by clicking the Selenium [✓] button on the Safari toolbar
 [ 0.071s] [safaridriver.client] Connected to extension
 [ 0.072s] [safaridriver.client] Requesting extension connect to client at ws://localhost:10975

Continue reading “Running selenium scripts on browser Safari and Mac Operating System”

Advertisements
Agile Testing, Automation, best practises, central repository, collabration, Functional Tests, git, Java, Manual Testing, Maven, Test Cases, Testing, version control, Web Testing

Making code commit in a better way.

Developers always work for their growth and betterment be it a niche technology or any fast technique.
Here in this post I have listed some points which if kept in mind before committing code in central repository(like git) can help an agile team in saving time and achieving improved quality of work.
 better-code

Continue reading “Making code commit in a better way.”

Agile Testing, Automation, Automation Framework, best practises, Java, Java Class, Java Object, Object Oriented, Selenium, Testing, Web Automation, Web Testing

Part 2 – Resolution of some major-frequently-seen Selenium utilities.

This blog is a continuation of my previous blog . Here I am collating the data according to my own experience. These methods can be added in the Utility class directly to make wide use of different functionalities.

Continue reading “Part 2 – Resolution of some major-frequently-seen Selenium utilities.”

Automation, Automation Framework, Design Pattern, Design patterns, Page Object Model, Testing, Web Automation

Part II – One step deeper into Page Object Model.

As we have already discussed in my last post on page object model, why we need design patterns while coding. In this post, lets see what all pre-requisites are required to get a quick start so that we can get a better understanding of POM aka Page Object Model:

  1. The functionality classes (PageObjects) represent a reasoned common lineage between the pages of the application.
  2. The Page Object pattern act for the screens of your web app as a sequence of objects.
  3. It encapsulates the characteristics represented by a page.
  4. It permit us to mock-up the UI in our tests.
  5. A page object is an object-oriented class that work as an interface to a page of your AUT.

Continue reading “Part II – One step deeper into Page Object Model.”

API testing, Automation, Automation Framework, best practises, HTTP, HTTP methods, Java, java.lang.NullPointerException, rest assured, Services Testing, Testing, TestNG, Web Services, Web Testing

Part 1- API testing with rest assured.

In this post, I will share some basic rest assured code that can be directly used in a project which can support Java, Page Object Model, TestNg, API testing, etc.

rest-assured

Continue reading “Part 1- API testing with rest assured.”

Agile Testing, Automation, Design patterns, Functional Testing, Java, Page Object Model, Quality Analyst, Selenium, Testing, Web Automation, Web Testing

Why to apply Page Object Model in automation frameworks.

Today I will share how and why we can apply design pattern concepts while creating a new framework. Lets try and understand why we need any design pattern in our project. No doubt we can make a framework be it automation or any feature specific project but if we talk about a big Enterprise edition project then we have to think of factors like optimal solutions, performance, maintainability etc. Similarly we can directly use the play-records plugin of Selenium and start applying further concepts over it. Then why people are not utilizing it ? Moreover inclination is more towards Selenium webdriver whole-some project. Let us see what all factors attract a user to use Selenium Webdriver instead of the fact that Selenium IDE can generate automation code in any of your favorite language like Java, etc

  1. Code is rigid.
  2. You can make classes out of the code but not any framework.
  3. You have to certainly perform the record and play option again and again if any test case fail.
  4. This idea will definitely give you a piece of code but not a project on which you can rely upon.

Lets understand this with a picture, it would be difficult for this guy to find a way. But it would be much easier if something like this might happen to him.

Make sense, yeah…err…no!! Ok. What I mean is if we can specify directly that what path to take and when, then it might help the reader to understand better, as simple as this. Design patterns also helps us in doing the same stuff for our code, so that we can arrange our code snippets, classes, packages, etc in such a manner that it would help in making code more readable, understandable and manageable.

Advantages of page object pattern:

  1. Makes tests more readable and robust.
  2. Bring down the duplication of code.
  3. Improves the maintainability of tests, remarkably when there is frequent change in the AUT. (Useful in Agile methodology based projects).
  4. Simple and clear tests.
  5. Good support of tests, because everything is stored in one place.
  6. Easy creation of new tests. In fact, tests can be created by a person not knowing the features of automation tools.
  7. The UI changes, the fix need only be applied in one place.
  8. Code re-use: Able to use the same page object in a variety of tests cases.

In the coming blog I will be discussing how we can apply this Page Object Concept in Selenium scripts.