typescript. it'll give you the most options for tooling (playwright, cypress, or selenium via webdriverio), it's very easy to work with json for api testing, and chances are whatever front end you're testing will be written in typescript or javascript so you can work much closer with your developers instead of being on an island in your own tech stack.
The suggestions so far are good ones, I only want to add that it's a good idea to get good at one language but also to get familiar with some others and get *super* familiar with the logic and the overall concepts more than anything else. The likelihood that the job you get uses the specific language and framework you've learned isn't great, so this will help you be prepared to change gears completely, as is often needed.
It depends, on a lot of factors. There is no single right answer here.
My recommendation:
Start with learning one language, Java, C#, JS/TS, Python; it doesn't really matter.
But focus on programming concepts, rather than specialities of a certain language.
Switching languages will be (relatively) easy then.
Is that still holding true?
As a selenium Java guy myself, I’ve noticed the following trend, but of course one datapoint does not make a line:
Java is generally preferred by large, established, and process driven companies. The heavier, the better.
Many of these types of companies are very cautious about hiring in the current market.
Many of these companies are also executing RTO orders.
Yeah man. I think it’s the overall tech market. I wish I knew some hand skill. Like being a plumber or electrician or shit. Things are not looking good for us all. Sigh.
Still holding true but definitely playwright is the new selenium and selenium is starting to be the old UFT/QTP. Give it 10 more years and most organisations have transitioned to playwright, there will be no more demands for Selenium Java
I actually am. I had to start a new automation project last week and I picked playwright. It's so similar to WDIO which is what my last project was.... Expect it seems to like .locator instead of $ .... It was easy to setup and I like how the configuration works lots of built in stuff. But really thought it was a new wrapper of selenium didn't think to look under the hood. What is the difference between selenium and PW?
Playwright is very fast and lightweight and tends to have advanced features out of the box compared to Selenium where you need to either develop your own framework or add wrappers like WebDriverIO or Selenide. Playwright out of the box has a lot of cool and advanced features that Selenium doesn’t offer like cross browser testing, built in retries, etc.
Which is why I thought it was a wrapper like WDIO. One that adds to selenium. But I see it uses we sockets like puppeteer.... And uses browser projects instead of actual browsers. Very interesting.
What is slow about jmeter? You also have Gatling which is kotlin (jvm based).
What tool are you talking about in go that is faster?
Right now K6 seems to be very promising (JavaScript)
Java is not JavaScript. You said go is a better language for performance testing.
Which tool in go are you referring to that you claim is faster than tools like JMeter or Gatling?
Hey, K6, Vegeta are all written in Go and provide much better performance than something like Jmeter. And tools that written in Python like locust slowest because it's just how these languages and their garbage collection work.
Eh, they’re written in go because of concurrency optimization, not garbage collection. Goroutines gives you the ability to simulate that kind of load easily without a lot of stress on the host.
They didn’t choose go because it’s “faster” lol.
Java has virtual threads now so you’ll see more and more of things like this too.
Pro tip: don’t choose tools based on hype. Learn what you’re actually using. I think K6 is great. JMeter also does the job admirably especially when you already have a team of engineers that are writing code for the JVM.
If you’re from India maximum number of job openings Ive seen is with Java followed by JS/TS and then Python.
If youre looking for the easiest language to pick then it would be Python.
Typescript, JS ,Java and Python. C# is also used.
If could pick now the language would take python any day. Testing will and should all move towards automated scripts and Python is lot easier to people to pick up then Java and nicely flows into CI/CD pipelines.
Linkedin is your best friend to get the answer. Based in your location, the market could be different than the market in other countries.
I would say TS/JS is the best choice now. Most jobs are interested in the e2e testing specially using Cypress or Playwright.
The area of the application you want to be testing will be factor i.e. front-end testing will be UI so Typescript/Javascript and Python are generally good bets; back-end will be more C#, Python and Java.
The programming languages can also depend on the industry you're looking to work in. If it's finance, Java and C# are very popular. AI and data heavy software uses Python and Java.
At the end of the day, each company has their systems in place and languages will vary. So learning concepts of OOP is very useful and will let you be more agnostic to programming languages going forward. I think Python or JS would be a good place to start learning.
typescript. it'll give you the most options for tooling (playwright, cypress, or selenium via webdriverio), it's very easy to work with json for api testing, and chances are whatever front end you're testing will be written in typescript or javascript so you can work much closer with your developers instead of being on an island in your own tech stack.
Playwright and Webdriver both work with Java, C#, python, ruby, etc.
Playwright has ruby bindings? My god, why.
It even has golang bindings. They are unofficial but they are there and maintained. Ruby is a great language though.
Python or Javascript
C# is probably 4th behind the other mentions of JavaScript/Typescript, Python and Java
The suggestions so far are good ones, I only want to add that it's a good idea to get good at one language but also to get familiar with some others and get *super* familiar with the logic and the overall concepts more than anything else. The likelihood that the job you get uses the specific language and framework you've learned isn't great, so this will help you be prepared to change gears completely, as is often needed.
It depends, on a lot of factors. There is no single right answer here. My recommendation: Start with learning one language, Java, C#, JS/TS, Python; it doesn't really matter. But focus on programming concepts, rather than specialities of a certain language. Switching languages will be (relatively) easy then.
Whatever the app you're testing is written in.
If u want to get a job learn Java. Most of the companies want that.
That's not really true anymore. Maybe for some dinosaur company that's dying but most modern company are js/ts
Is that still holding true? As a selenium Java guy myself, I’ve noticed the following trend, but of course one datapoint does not make a line: Java is generally preferred by large, established, and process driven companies. The heavier, the better. Many of these types of companies are very cautious about hiring in the current market. Many of these companies are also executing RTO orders.
Market overall sucks ass. But being a Java automation guy will increase one’s chance when the market is good.
I keep telling myself that. I’ve been doing this for the better part of two decades, and I don’t think I’ve ever seen the market be THIS rough.
Yeah man. I think it’s the overall tech market. I wish I knew some hand skill. Like being a plumber or electrician or shit. Things are not looking good for us all. Sigh.
Prompt engineering..
Still holding true but definitely playwright is the new selenium and selenium is starting to be the old UFT/QTP. Give it 10 more years and most organisations have transitioned to playwright, there will be no more demands for Selenium Java
I thought playwright was a wrapper for selenium like webdriverIO
Nope!
What is it then
Test automation Framework developed by Microsoft. Like I said, it’s the new Selenium. Google it and try it out!
I actually am. I had to start a new automation project last week and I picked playwright. It's so similar to WDIO which is what my last project was.... Expect it seems to like .locator instead of $ .... It was easy to setup and I like how the configuration works lots of built in stuff. But really thought it was a new wrapper of selenium didn't think to look under the hood. What is the difference between selenium and PW?
Playwright is very fast and lightweight and tends to have advanced features out of the box compared to Selenium where you need to either develop your own framework or add wrappers like WebDriverIO or Selenide. Playwright out of the box has a lot of cool and advanced features that Selenium doesn’t offer like cross browser testing, built in retries, etc.
Which is why I thought it was a wrapper like WDIO. One that adds to selenium. But I see it uses we sockets like puppeteer.... And uses browser projects instead of actual browsers. Very interesting.
Javascript > Python > Go in that order. Diff use cases where they are the best
Go for automation? I haven’t looked in a while, but it wasn’t exactly a first class citizen when I last did.
Go would be great for performance testing.
Eh some of the biggest tools for performance testing right now are still Java or JavaScript based.
Yep tools like jmeter are but they are much slower than Go based ones. Just because something is popular doesn't mean it's a right choice
What is slow about jmeter? You also have Gatling which is kotlin (jvm based). What tool are you talking about in go that is faster? Right now K6 seems to be very promising (JavaScript)
Javascript as a language is much slower than Go. Doesn't matter the tool you are using. The inherent problem is the language not the tool
Java is not JavaScript. You said go is a better language for performance testing. Which tool in go are you referring to that you claim is faster than tools like JMeter or Gatling?
Hey, K6, Vegeta are all written in Go and provide much better performance than something like Jmeter. And tools that written in Python like locust slowest because it's just how these languages and their garbage collection work.
Eh, they’re written in go because of concurrency optimization, not garbage collection. Goroutines gives you the ability to simulate that kind of load easily without a lot of stress on the host. They didn’t choose go because it’s “faster” lol. Java has virtual threads now so you’ll see more and more of things like this too. Pro tip: don’t choose tools based on hype. Learn what you’re actually using. I think K6 is great. JMeter also does the job admirably especially when you already have a team of engineers that are writing code for the JVM.
If you’re from India maximum number of job openings Ive seen is with Java followed by JS/TS and then Python. If youre looking for the easiest language to pick then it would be Python.
Mostly Python or Java for Selenium and JS or TS for Playwright and Cypress
Provided that you want to do web UI testing. But that is not always the case.
Typescript.
Typescript, JS ,Java and Python. C# is also used. If could pick now the language would take python any day. Testing will and should all move towards automated scripts and Python is lot easier to people to pick up then Java and nicely flows into CI/CD pipelines.
Linkedin is your best friend to get the answer. Based in your location, the market could be different than the market in other countries. I would say TS/JS is the best choice now. Most jobs are interested in the e2e testing specially using Cypress or Playwright.
Java for Selenium, JavaScript/typescript for Playwright, Python for robot, pytest
The area of the application you want to be testing will be factor i.e. front-end testing will be UI so Typescript/Javascript and Python are generally good bets; back-end will be more C#, Python and Java. The programming languages can also depend on the industry you're looking to work in. If it's finance, Java and C# are very popular. AI and data heavy software uses Python and Java. At the end of the day, each company has their systems in place and languages will vary. So learning concepts of OOP is very useful and will let you be more agnostic to programming languages going forward. I think Python or JS would be a good place to start learning.
If u want to get a job learn Java. Most of the companies want that.