Skip to content

Category: API

BlazeMeter: Continuous Performance Testing for Dev Ops

BlazeMeter is a self service load testing platform as a service (PaaS), which is compatible with Apache JMeter. You can read my blog on JMeter here.

BlazeMeter was founded in 2011. It provides developers and teams with the tools necessary using Amazon Elastic Compute Cloud (EC2) service to be able to simulate thousands of users visiting a website simultaneously. From Mobile, to Web applications, web-service, API, or database testing, BlazeMeter can do it all.

What is it Used For?

Like I mentioned above, BlazeMeter can do it all. It is massively scalable, and can test against all of your apps, from web, mobile apps, to microservices, and API. Its fantastic for running Load and Performance Testing in the Cloud. Performance and Load testing is done after the functional testing phase is done, and that is where BlazeMeter comes in handy.

BlazeMeter is the Complete testing suite that leverages open source tools such as JMeter, Gatling, Selenium & Taurus. You can Build using your favorite open source tool, Run any combination of tests in parallel, and View & Analyze test results in real time and automate and configure your tests & integrate with Continuous delivery platforms like Jenkins and Travis.

Build and Run in parallel

Analyze Results in Real Time.

 

Best used for:

  • Load & Performance Testing
    • Extending JMeter tests (Simulating thousands or millions of virtual users)

Learning Curve:

  • Medium
    • Can be used with and provide better results than JMeter when wanting to simulate 100+ virtual users from 56 geo-locations.

Getting Started with BlazeMeter:

You can write tests as code in domain specific language (DSL) and generate to run JMeter tests without having to leave the BlazeMeter UI. You can also use the same DSL to configure and run tests using any major open source performance testing tool and validate performance of the software at test with every deliver stage.

You can Get Started with BlazeMeter Here.

 

BlazeMeter Pricing:

The good news is you can simulate up to 50 max concurrent users, and a max of 5 concurrent users for a Selenium Webdriver Test with One shared Load generator. With the Free plan, you can run 10 Tests/Month for a maximum of 20 Mins.

If your just wanting to do Functional API Tests (API Calls), you can run up to 1000/Month with the free tier but the Data/Results will only keep for one week.

For development teams, you can also have Unlimited team mebers with any price tier option for free.

BlazeMeter Annual Cost

BlazeMeter Month-To-Month Cost

BlazeMeter Plan Comparison

Which Pricing Plan is best for me?

Free – As you can see from the chart above, if you are just needing to perform some Functional API Testing, or run < 10 Tests per month and only need to simulate 50 virtual users, then the Free plan would work just fine for you.

Basic – If you need to run slightly more tests than the Free tier, then the Basic may be for you. It allows for 200 tests/year, 20 concurrent selenium webdriver tests, and comes with the ability to simulate up to 1,000 virtual users. If you are needing to simulate more than 1000 users, then the Pro or Unleashed plans are your better option.

Pro – The Pro plan allows you to simulate 5,000 virtual users. This is the tier that I have previously worked with in Testing Consulting and has worked very well for me personally with the ability to retain Data for up to 6 months, run tests for up to 5 hours long, and use up to 20 different load generators.

Unleashed – The unleashed plan is the 1+ to the Pro plan. The Unleashed plan pricing and is customization if the Pro plan does not meet your needs. You can Contact BlazeMeter for pricing and additional information on the Unleashed plan at: +1.855.445.2285 or Schedule a Demo with a BlazeMeter Engineer.

 

Closing Thoughts:

I am a big fan of BlazeMeter. As a Software Testing Consultant, I have used Google Postman, JMeter, Insomnia REST, SoapUI, Katalon, and BlazeMeter all for API Testing. BlazeMeter is a very powerful tool when used as an extension to your open source testing tools. For me, I enjoy using BlazeMeter along side my JMeter Tests. As you may know, JMeter can only perform as good as the computer that the application is running on. With BlazeMeter, you can upload your existing written JMeter tests, and run them in the cloud and perform more efficient, and effective load & performance tests. For example, a local machine may only be able to run 100 threads on a JMeter test. With BlazeMeter, you can run thousands, thus providing a better test.

Links:

BlazeMeter Website

BlazeMeter Docs/How-To’s

BlazeMeter Resources

BlazeMeter Pricing Plans

Add the Google Chrome BlazeMeter Extension to your Web Browser

Apache JMeter

Image result for jmeter

Apache JMeter is an application that is open source, and designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to test even more!

 

What is it Used For?

JMeter can be used for a variety of things! Its best use though is for performance testing web applications. Using JMeter you can simulate a heavy load on servers, groups of servers, network, or object to test its strength and performance under load.

Apache JMeter features include:

  • Ability to load and performance test many different applications/server/protocol types:
    • Web – HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET)
    • SOAP / REST Webservices
    • FTP
    • Database via JDBC
    • LDAP
    • Message-oriented middleware (MOM) via JMS
    • Mail – SMTP(S), POP3(S) and IMAP(S)
    • Native commands or shell scripts
    • TCP
    • Java Objects
  • Full featured Test IDE that allows fast Test Plan recording (from Browsers or native applications), building and debugging.
  • Command-line mode (Non GUI / headless mode) to load test from any Java compatible OS (Linux, Windows, Mac OSX, …)
  • A complete and ready to present dynamic HTML report
  • Easy correlation through ability to extract data from most popular response formats, HTMLJSON XML or any textual format
  • Complete portability and 100% Java purity.
  • Full multi-threading framework allows concurrent sampling by many threads and simultaneous sampling of different functions by separate thread groups.
  • Caching and offline analysis/replaying of test results.
  • Highly Extensible core:
    • Pluggable Samplers allow unlimited testing capabilities.
    • Scriptable Samplers (JSR223-compatible languages like Groovy and BeanShell)
    • Several load statistics may be chosen with pluggable timers.
    • Data analysis and visualization plugins allow great extensibility as well as personalization.
    • Functions can be used to provide dynamic input to a test or provide data manipulation.
    • Easy Continuous Integration through 3rd party Open Source libraries for Maven, Gradle and Jenkins.

Say you were asked to simulate 200 users hitting an API at one time, how would you do this? Well, JMeter allows you to do exactly that! It would be near impossible to attempt to find 200 people whit a PC and internet access to hit an API at one time right? Well, with JMeter you can do exactly that.

Best used for:

  • API Load & Performance Testing

Learning Curve:

  • Medium
    • Can do more than Google Postman, but is not quite as easy to pickup.

JMeter Advantages

  • Open Source
  • Friendly GUI
  • Platform independents
  • Multi-threading framework
  • Visualize Test Results
  • Easy Install
  • Extensible
  • Multi Protocol
  • Can be used with Blazemeter

How does JMeter work?

JMeter simulates a group of users sending requests to a target. It starts by Sending a request to the target, then getting statistics information of the target, then generates a test report based on the server at test by simulating multiple users sending a request to the target server.

JMeter Plugins

JMeter currently supports 64 plugins. JMeter Plugins can be installed on JMeter using the Plugin Manager.Each plugin serves different purpose.

 

How do I use JMeter?

 

JMeter Tutorials

API Testing – A Google Postman Tutorial

So you have an interest in using Postman as your API Testing tool?

Awesome! But before we begin, please be sure to read my blog on Postman found here. 

Let’s get started! First, navigate to my tutorials github repository and download the project.

Here is a very basic Postman tutorial for testing and training purposes. This repository contains the following files: The Postman Collection(PostmanTutorial.postman_collection), The Data File( postman.data.json), and this ReadMe file.

Requirements:

Instructions:

  1. Download/Clone this repository.
  2. In a new Terminal window, navigate to your newly downloaded/cloned postman-tutorial project.

Running the Collection:

  1. In a new Terminal Window, Navigate to the folder containing the PostmanTutorial.postman_collection and the postman.data.json files. (cd into the project directory).
  2. Run $newman run PostmanTutorial.postman_collection --insecure -d postman.data.json

Editing the Data Tested:

  1. Open the postman.data.json file in your preffered IDE, notepad or terminal window.
  2. Make edits, save, and ReRun the collection.

Editing Tests:

  1. Open Postman
  2. Once Postman is open, On the Top Navigation Bar, click Import
  3. Import the PostmanTutorial.postman_collection file.
  4. Navigate to your newly imported PostmanTutorial collection in Postman.
  5. Click Tests to view the Tests for the collection.
  6. Click Save to save your changes.
  7. Hover over your Postman Collection name and click the three dots ()
  8. Cick Export
  9. Select the Collection v2 option and click Export
  10. Save to the same folder location and overwrite PostmanTutorial.postman_collection.
  11. Run your Collection.

Generating Run Reports:

  1. Install newman html reporter by doing a $npm install -g newman-reporter-html in a terminal window.

Usage:

In order to enable this reporter, specify html in Newman’s -r or --reporters option.

  • Example: $newman run PostmanTutorial.postman_collection --insecure -d postman.data.json -r html

API Testing & Google Postman

Google has always been one of the leaders in the tech industry and although there are many different options when it comes to selecting the best API testing tool, Google’s Postman still is at the top of my list and here is why.

What is an API?

Great question! So, in computer programming, an application programing interface (API) consists of a subset of definitions, communication protocols, and tools for building software.

Basically what this means is that a set of clearly defined methods of communication amongst various components. This could be a web-based system, Operating system, database system, computer hardware, or even a software library.

 

What makes a “Good” API?

A good API makes development easier. Think of it as the rock, or the foundation of a project. You need a solid base foundation and building blocks the piece together the end result, right? Same goes for API and programming.

 

What is Google Postman?

Google Postman “makes API Development simple, developers use Developers use Postman to build modern software for the API-first world.”

Not only can Postman be used for developing an API, it can also be used for Testing an API.

Google Postman Features

Postman’s Tools Support Every Stage of the API Lifecycle.

Postman Cost – FREE!

The best thing about Postman is that it is completely free! I have used Postman for a few years now and have never had a problem with the Free version and have used Postman for testing multiple API’s.

 

How can I use Google Postman for API Testing?

Google postman can be used for API testing in a variety of different ways. For example, you can have a simple status check on a website’s Url that runs on a monitor schedule and runs at the top of every hour, and can even notify you when a website is unreachable with the ability to check HTTP Status Codes.

You can also test a REST API’s response body to verify that the API is providing the expected request response.

 

Example Postman Tests:

// Status Code Tests:

if(tests[“Status code is OK/200 and receiving a response as expected”] = responseCode.code === 200) {

   // Response Assertions/Status Checks

   pm.test(“Status code is OK”, function () {

   pm.response.to.have.status(“OK”);});

 

   pm.test(“Response time is less than 800ms”, function () {

   pm.expect(pm.response.responseTime).to.be.below(800);});

 

   pm.sendRequest(“https://postman-echo.com/get”, function (err, response) {

       console.log(response.json());});

 

   pm.test(“Content-Type is present”, function () {

       pm.response.to.have.header(“Content-Type”);});

 

// Error Checks:

   pm.test(“Response should be okay to process”, function () {

   pm.response.to.not.be.error;

   pm.response.to.have.jsonBody(“”);

   pm.response.to.not.have.jsonBody(“error”); });

 

// Response Body Content Tests:

   pm.test(“Response contains A String”, function () {

       pm.expect(pm.response.text()).to.include(“ExpectedResponseStringHere”);});

}

 

The above Example is of possible Test Scripts that can be written to test API’s using Postman. The Status Code Tests are testing that the response was Status Code 200 (Ok) and that the Response was received in less than 800ms/0.8 seconds.

The Error checks are checking that the response should be okay to process and is a .json as expected.

 

The final test is testing that a Specific String from the Response Body is included in the API’s response.

View Postman Test Scripts for more information.

Postman Review

Overall I am incredibly happy with Postman and everything that it can do in terms of being able to Test an API. Postman has a fantastic UI and is easy to learn and use for beginners. With the ability to automate scheduled runs and checks on API’s it makes testing easy and powerful. Postman’s free option is all that is needed when testing an API. If you are new to API Testing, and wanting to get your feet wet, I strongly recommend you give Postman a try.

Links:

Download Google Postman

A How-To test using Postman Tutorial

Getting Started with Google Postman