Try our new research platform with insights from 80,000+ expert users
PeerSpot user
Consultant at a consultancy with 501-1,000 employees
Consultant
3 Reasons for combining JMeter and WebDriver

The Apache Foundation states the following about JMeter:

The Apache JMeter™ desktop application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions.

So in other words, it’s a tool you can use to generate functional load on an application or a platform. This also immediately describes what it is good at: generating load. Yes if implemented well you not only generate dumb-load but also hit the functional application layers with the tool. But the basic function of JMeter is aimed at generating load and measuring the (server) response times during this load.

What does JMeter NOT do?

Despite being capable of generating functional load, JMeter does not render pages nor is it very well equipped to execute embedded JavaScript (it is simply not equipped to do that actually), therefore JMeter will not tell you anything (out of the box) about the render times of pages. Especially not about render times when the server is heavily overloaded by your scripts!

What is WebDriver good at?

SeleniumHQ gives a wonderful description of what Selenium (or nowadays WebDriver) does:
Selenium automates browsers. That’s it! What you do with that power is entirely up to you. Primarily, it is for automating web applications for testing purposes, but is certainly not limited to just that.

In short, what WebDriver does is just about anything that happens within your browser. It does render pages, it does execute JavaScript, it retrieves the pages as if an actual human was clicking on a website. So for fully functional automated testing (or checking to stick with the more correct terminology) WebDriver is perfect.

What does WebDriver NOT do?

Well, it is not quite good at generating load. Since WebDriver basically requires a browser (yes, it is possible to run it headless of course) it is very difficult to generate multiple (virtual) users. That would require a bunch of browsers to start up, when talking about 10 users that may seem feasible, however when talking about generating real load (say several 1000’s concurrent users) a bunch of browsers becomes a lot more difficult to arrange.

Why combine them then?

The logical question then indeed is, why would you combine them? Below I have set out 3 clear reasons why combining JMeter and WebDriver scripts can be an excellent idea.

  • Impact of server-side load on render-times;
    When the load on a server increases, the response times of various parts of a web application may increase as well. These increased response times can have implications on the render time of the web application. For example: a web application heavy with Ajax requests is put under load, the server response times increase, this may result in all Ajax-requests becoming slower, therefore making the website extremely unfriendly to the end-user. When you just run a JMeter script, this will hardly be noticed, and if you do notice it, you cannot express the impact it will have on the user. You can merely speculate about it.
  • Impact of server-side load on functional behavior;
    Given that the server is experiencing increased load and therefore the business-logic of the application is working hard to handle all requests effectively, it can be safe to say the underlying database may also be stressed and therefore responding slower than expected. Slower response times of both application-logic and database requests can result in buggy behaviour of the application. For example incomplete data returned, or worse, a time-out on data or application-logic. How does the application deal with that? How are these errors reported to the end-user? Will the application still function normally within the browser when certain aspects of the application platform are malfunctioning? The best answer to this is by testing the functionality thoroughly while the application is under load. An easy way to test this repeatedly and consistently is by automating these functional tests, for example using (part of) the automated regression test while the servers are under increased load.
  • Advantage of screenshots of fully rendered pages and possible errors with the application under load;
    As a result of the two points mentioned above, it may be extremely useful for both developers/system engineers and your customer to see errors on the pages affected by the increased server load, such as stylesheets not loading or not loading properly, JavaScript not loading, images missing etc. Screenshots (or screen captures in movie format) will help make clear to the customer what the problem is and more importantly how big the impact on the end-user will be.

I have listed 3 reasons why combining JMeter and WebDriver can be a good idea. I’d love to hear your suggestions of more reasons to want to combine the two.

In a follow-up post I will go into more detail on ways to achieve an effective combination of JMeter and WebDriver running along side each other, well timed and generating consistent logging and results.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
it_user69342 - PeerSpot reviewer
it_user69342Consultant at a consultancy with 501-1,000 employees
Consultant

Hey, Peter-Thomas,

The easiest way I can suggest it to just start small: ensure you add timers to your existing webdriver scripts so you know what your application does under normal circumstances.
Once you have the functional side covered in a way that you know what you need to know, start building up a load generator in Jmeter and start running the two alongside one another manually. When you have that working properly and are getting some useful numbers drop the whole thing as a script into your CI environment for running after a full regressiontest.

See all 4 comments
PeerSpot user
Consultant at a consultancy with 501-1,000 employees
Consultant
JMeter is great as a stand-alone load generator, however when you need a distributed load you'll require high server use

Over the past year I have spent a lot of time in close collaboration with Apache JMeter. I used JMeter as a standalone platform, in collaboration with several tools out there and with my own servers. Over the next few posts I will elaborate a bit more on what I have learned from working with tools like BlazeMeter, Loadosophia as well as working with your own remote servers and Jmeter. On top of that I will share some things I consider good practices to use when working with JMeter and building elaborate test scenarios in it.

JMeter and remote servers

Meter is great as a stand-alone load generator, however the moment you need to generate a substantial load or a distributed load, you will require the use of more servers. There are several possibilities to add external servers to JMeter. You can use a load generation platform such as BlazeMeter and Flood.io or you can choose to use your own machines (Disclaimer: I have only worked with Flood and BlazeMeter as services, so I only mention these two. There may very well be other services out there I am not (yet) aware of).

Why use your own remote servers?

Although there are several commercial options to run JMeter tests from a cloud-platform, it might be useful to have your own servers running. Your own machines, for example Virtual Private Servers, will give you at least the following advantages, please bear in mind these are the main reasons for me to run private servers. It may very well be that you have different reasons for doing the same (I’d be happy to hear them btw!):

  • Availability within firewalls: Not all applications are available outside of firewalls. For quite a lot of companies it is not an option to allow external addresses, especially cloud services, within their firewalled environment. When this is the case in your organisation it can be very useful to have your own load generator hosted inside the firewall.
  • Geographical location: not each and every country has platforms available for load generation. Although platforms like Blazemeter have a lot of different locations available, it may very well be that your particular country is not available through a service provider. However getting your own, hosted, machines within a country is generally not too difficult to do. Keep in mind though whenever you want to use something like a Virtual Private Server to verify with the hosting company whether they allow load generation from within their network!
  • Control: a fairly straightforward reason is in order for you to have full, unlimited control over the load generating servers. If you have your own (virtual) servers running you can easily adjust settings, properties and other things in order to make it fully match your (customers) needs.

Why use a service?

Even though there are quite some reasons for using your own machines, the advantages of using a service like BlazeMeter or Flood.io are plenty, I will just highlight the few that for me have tipped the scales several times in favor of a service.

  • Maintenance: Setting up your own servers is time consuming and therefore not cheap. These servers need maintenance even though you quite likely do not constantly need them. A Service is just there. You buy a subscription, be it with a time constraint (monthly) or a load constraint (max amount of concurrent users) or something like that, but the service is simply at your fingertips. The moment you need it, you have it.
  • Multiple locations: the JMeter based services generally make use of the Amazon AWS cloud, thus giving you, the user, an immense amount of servers at your disposal. With this comes a huge worldwide distribution, which can be very advantageous for big world-wide used applications.
  • Support: both mentioned platforms have a very solid support base for their customers. If you have questions, if your tests seem to not run properly or you simply have issues getting something done, there generally is a good support platform available. You can use forums or the actual helpdesk, but either way, there is a good, solid, commercial support-base to help resolve your issues.

In the end, I choose per assignment what best fits my needs. Sometimes I use the VPS, sometimes I use a service. It is important you at least think about what best suits your needs for the test you are about to build and execute.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user

Hi Martin,

Thanks for your input, very useful to know. I am working as a consultant on a relatively new client site, and am preparing to head up the team to write an RFP proposal for a new performance testing tool to be used across the company.

Getting all the technical / protocol details for the various systems is proving to be more challening than it should - they seem to be all Web based (although only support old versions of IE like 8 and 9... I know). I am very tempted to strongly recommend JMeter as the tool (probably with BlazeMeter or Flood as the cloud based service), but I am concerned that a couple of months down the line some legacy system will come out of the woodwork that JMeter would not be able to support.

Hope that all makes sense. Would be interested in any other feedback that you had.

Cheers,

James

See all 5 comments
Buyer's Guide
Apache JMeter
December 2024
Learn what your peers think about Apache JMeter. Get advice and tips from experienced pros sharing their opinions. Updated: December 2024.
824,067 professionals have used our research since 2012.
Lead SDET at Unify Technologies
Real User
Good reporting, but it should be more user-friendly, support Ruby, and support dynamic throughput
Pros and Cons
  • "The most valuable features are the integration with Jenkins and the reporting."
  • "The interface could be made more user-friendly."

What is our primary use case?

We are writing scripts using various tools in multiple environments. We have tests set up where you have to pass the credentials in to get a session ID, and it sets and checks the cookies. Then, we check the response values and pass them on to the next function.

We have this solution integrated with Jenkins and we also use it for database performance testing.

What is most valuable?

The most valuable features are the integration with Jenkins and the reporting.

JMeter allows us to automate performance testing and raise diagnostic functions.

What needs improvement?

This solution should support the Ruby programming language for scripting.

JMeter should support dynamic throughput so that we can reduce or increase it during the execution of the scripts. 

For performance testing, we would like to be able to select different bandwidths such as 3G or 4G.

The interface could be made more user-friendly.

For how long have I used the solution?

I have been working with Apache JMeter for the past three months.

What do I think about the stability of the solution?

We have not had any problems with stability.

What do I think about the scalability of the solution?

So far, I haven't had any issues with scalability when performance testing.

How are customer service and technical support?

We have not yet been in contact with technical support.

Which solution did I use previously and why did I switch?

I have also started working with BlazeMeter. One of the differences is that the automation is not possible in BlazeMeter. However, BlazeMeters allows for the selection of different bandwidths, it takes less time to write tests, and it is more user-friendly.

How was the initial setup?

The initial setup is straightforward. We have not yet completed our full deployment with all of the tests.

What about the implementation team?

Our internal team was responsible for the implementation.

Which other solutions did I evaluate?

We are currently comparing the differences between Apache JMeter and BlazeMeter.

What other advice do I have?

JMeter is a good solution but it requires writing manual scripts and takes longer than BlazeMeter. It takes longer to cover the same number of use cases and is not as user-friendly.

I would rate this solution a four out of ten.

Which deployment model are you using for this solution?

On-premises
Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
PeerSpot user
Head of Performance with 51-200 employees
Vendor
Good for vanilla web testing, less so for more complex requirements.
A mature opensource toolset that has been available for many years. Good for vanilla web testing, less so for more complex requirements. Like most opensource offerings it has relatively poor analytics and limited integration with analytics tools like APM although it is relatively easy to extend with plug-ins and there are quite of these available for free download. A good choice where budget is tight and the tech-stack requirement is straight-forward.
Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
it_user100902 - PeerSpot reviewer
it_user100902Head of Performance with 51-200 employees
Vendor

Hi Kobi,

JMeter is not well suited for this sort of requirement as you are likely to have to deal with some sort of API. If however the API is web service based then should be ok. Something more proprietary would be better dealt with scripting in C# in my experience so some other tool choice would be better suited.

KR
Ian

See all 10 comments
reviewer891849 - PeerSpot reviewer
Founder and Principal Consultant at a tech services company with 11-50 employees
Consultant
Priced well, stable, and integrates with other tools, but the installation is not intuitive
Pros and Cons
  • "I like the fact that JMeter integrates well with other tools."
  • "The installation needs some work. It could be simplified."

What is our primary use case?

I was experimenting with Apache JMeter. I was doing a proof of concept for myself to see if it fit my needs. I wanted to compare it with LoadRunner to see how it compares in terms of recording, ease of use, and functionality.

What is most valuable?

I like the fact that JMeter integrates well with other tools. For instance, we are also looking at OctoPerf and, I know for OctoPerf, you can import JMeter scripts, whereas, for LoadRunner, you cannot import LoadRunner scripts into OctoPerf.

I like the graphing; it is good.

Once I got past the learning curve, it was okay.

There were a lot of features that translated well from LoadRunner. I have LoadRunner experience, so once I applied my base knowledge to JMeter, then it was okay. The terminology was a little different, but the functionality is similar. For instance, They are called "extractors," in JMeter and called "correlation" in LoadRunner. 

Once I learned the terminology and how to navigate through JMeter, then it was easier.

I still think LoadRunner is a better tool, but for some purposes, JMeter would suit the need.

What needs improvement?

The installation needs some work. It could be simplified.

When compared with LoadRunner, LoadRunner is a more mature product.

For how long have I used the solution?

I used it for a couple of weeks.

What do I think about the stability of the solution?

It's pretty stable, I don't have any complaints.

What do I think about the scalability of the solution?

We didn't do a large load test. I didn't explore the scalability.

I was the only person using this solution, but I ran 100 user load tests.

How are customer service and technical support?

I did not need to use technical support.

Which solution did I use previously and why did I switch?

Previously, we were testing LoadRunner.

How was the initial setup?

I reviewed some YouTube videos and went through them. It wasn't necessarily intuitive.

There was some configuration, and file that had to be set up.

It wasn't like LoadRunner where they have an automatic installer and wizard that does everything for you.

It wasn't as easy, but anyone who is technical can work through it.

What's my experience with pricing, setup cost, and licensing?

When comparing the price with LoadRunner, and if the cost is an issue then JMeter is a better choice. LoadRunner is very expensive.

Which other solutions did I evaluate?

I like LoadRunner better, although I might be biased because I do have LoadRunner experience. I am a little more familiar with it. I was leaning towards LoadRunner.

What other advice do I have?

I would advise others to look at YouTube videos for the setup. Other than that, it was pretty straightforward. I was pretty much satisfied with it. It's a good tool, and it sounds like it's been around for a while.

I would rate Apache JMeter a seven out of ten.

Which deployment model are you using for this solution?

On-premises
Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
Test Team Lead at Passed Informatikai Kft.
Real User
A free solution that's stable and easy to use
Pros and Cons
  • "The solution is free. You don't need to worry about licensing costs."
  • "The user interface is a little bit tricky."

What is our primary use case?

We primarily use the solution for performance download testing.

What is most valuable?

It's a solution that's easy to use. It's a bit different from SoapUI and LoadUI.

What needs improvement?

The user interface is a little bit tricky.

For how long have I used the solution?

I've been using the solution for three to four years.

What do I think about the stability of the solution?

The solution is very stable.

What do I think about the scalability of the solution?

It's not 100% scalable like LoadUI, but LoadUI is very expensive. We're an outsourcing company, so we have approximately ten users. We may have plans to expand in the future.

How are customer service and technical support?

The solution doesn't have technical support. If we need answers, we look for them on the internet.

Which solution did I use previously and why did I switch?

Previously, we used the basic version of LoadUI. We switched because LoadUI is very expensive and Apache JMeter is free.

How was the initial setup?

The initial setup was complex. We did have it done in a day. It took approximately one hour. We have about five to six people that manage the solution.

What's my experience with pricing, setup cost, and licensing?

The solution is free. You don't need to worry about licensing costs.

Which other solutions did I evaluate?

We didn't evaluate other options before choosing this solution.

What other advice do I have?

We are using the private cloud version of the solution.

I would rate this solution eight out of ten. If it had a bit of a better user interface, I would rate it higher.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
PeerSpot user
Technical Leader with 501-1,000 employees
Real User
Reporting feature can be improved but allows us to simulate a load of concurrent users on our application

What is most valuable?

Almost all features provided by JMeter are helpful.

How has it helped my organization?

We have a solution called Service Quality Manager portal and is a web based solution to do service management. We do performance testing of this solution using JMeter. It allows us to simulate a load of concurrent users on our application and find out performance bottlenecks in the application.

What needs improvement?

Reporting feature can be improved to provide better test results.

For how long have I used the solution?

We have been using JMeter for 5 years.

What was my experience with deployment of the solution?

I did not encounter any issue while deploying JMeter.

What do I think about the stability of the solution?

I did not encounter any issue with stability.

What do I think about the scalability of the solution?

Yes, While running with a large number of simulated users, sometimes we got thread exceptions and we restarted our testing simulation.

How are customer service and technical support?

As such there is no customer service provided by Apache for JMeter. This software is free to use under Apache licensing system.

Which solution did I use previously and why did I switch?

We tried BadBoy but it lacked features.

How was the initial setup?

Initial setup of JMeter is simple. A user can go ahead and start using it just by following it's documentation.

What about the implementation team?

We implemented JMeter using our own in-house team.

What was our ROI?

I am not sure yet.

What's my experience with pricing, setup cost, and licensing?

As it is java based software an can run on any platform supporting JVM.

What other advice do I have?

I would suggest to verify one's own business need and evaluate certain parameters first like Feasibility and Reliability of Automation, Ease in maintenance of automated test cases, Time saving in Manual or Automated Testing.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
it_user326337 - PeerSpot reviewer
it_user326337Customer Success Manager at PeerSpot
Real User

How would you suggest improving the reporting features?

See all 2 comments
PeerSpot user
Senior Software Engineer at a tech vendor with 51-200 employees
Vendor
JMeter helps me in measuring performance of my product very effectively

What is most valuable?

I think CSV data config, regular expressions extractor, reporting and distribution testing are the strengths of JMeter.

How has it helped my organization?

It makes life easier by simulating production scenario to check the performance under heavy load. We are able to find out the bottleneck in our system with the results.

What needs improvement?

Better way to handle dynamic elements, to handle session id, browser cookie and cache manager.

For how long have I used the solution?

I have used JMeter for around 6-8 months.

What do I think about the scalability of the solution?

No, distributed testing was helpful for scaling the users in JMeter.

How are customer service and technical support?

Customer Service: 3 out of 5Technical Support: 3 out of 5

Which solution did I use previously and why did I switch?

I never used any performance tool before.

How was the initial setup?

Yes, the initial setup IS easy after following the blogs or Apache JMeter page.
Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
it_user254718 - PeerSpot reviewer
it_user254718Principal QA Engineer at a tech company with 10,001+ employees
Real User

I have started using JMeter recently, I am confused with the sampler number, I ran a simple Login test of 50 threads for 10 min, I see sampler numbers around 3000. Does that mean 3000 users are doing logins or 50 threads have done 3000 requests so far?

See all 2 comments
Buyer's Guide
Download our free Apache JMeter Report and get advice and tips from experienced pros sharing their opinions.
Updated: December 2024
Buyer's Guide
Download our free Apache JMeter Report and get advice and tips from experienced pros sharing their opinions.