One of the most crucial decisions when writing your own test automation scripts will be your choice of programming language. Selection of a test automation language depends largely on the language an application was developed with, but there are other factors to consider.
Writing test scripts in the same language that the app was written in is typically the best path because it enables your organization's developers to easily read and write test code. Plus, the test code can live in the same repository as the application's source code. Every situation is different, though, and you may not be able to use the same code as your application. In some scenarios, the application may already be written and won't be updated, so it's irrelevant if developers need to read your test code.
Evaluate the most common test automation languages
Selenium WebDriver is implemented in each of these languages. It offers a base framework to interact with a browser, but for this discussion we'll compare programming languages with feature-rich frameworks.
Java is an appealing option, mostly because of the popularity of test automation frameworks already written with the language. Java has been around since the 1990s, and it is often the first language a programmer learns. Many prebuilt test frameworks already exist in Java. Commonly used Java test automation frameworks include Selenide, JBehave and Serenity.
Python is an increasingly popular choice, resulting from the trend in software programming for code that's more readable and that has fewer boilerplate lines.
Keep test scripts simple
To write simple test scripts that don't involve complex concepts, such as access modifiers in Java (public, private, protected and so on), Python might be a good choice. Python treats all class objects as public, and it reduces the amount of code you'll need to write. While Python is an object-oriented programming language, it is often referred to as a scripting language because of how easy it is to use in such applications.
Python is excellent for writing lightweight test scripts. Robot Framework and JBehave are good options for fully built frameworks written in Python.
An interpreted language, Ruby is similar to Python. It offers many powerful, built-in methods for objects. Conveniently, everything is an object in Ruby. Ruby yields lightweight tests, and it's easy to read. Watir, Konacha and Capybara are popular test automation frameworks in Ruby.
Some test automation frameworks are available in C#, a language created by Microsoft as a competitor to Java. For those working with other Microsoft frameworks, such as .NET, it makes sense to develop automated tests with C# and NUnit, which is the C# version of JUnit.
See which test automation language fits
Before committing to one language, run some experiments.
Take your most important automated test, and implement it with each language that you'd like to compare. You may find that one language or framework fits better than the others, allowing you to write cleaner, more maintainable tests or provide better reporting to project stakeholders. A testing project's success depends on the tools used, so take care to make the right choice.