8 rules of Meeting-driven developement(MDD)

  • Instead of wasting time on writing detailed requirements organize daily meetings and explain how requirement should be implemented.
  • Invite to meetings as much as possible attendants, to make them feel important even if they don’t have any impact on final decisions.
  • In the scope of one meeting try to discuss as much as possible topics, doing so you are saving time. Time = money!
  • Keep organizing meetings until all attendants will be agreed with the final decision. Do not be the only person who will be responsible for the decision.
  • Instead of answering to emails, collect them, organize a meeting and invite all senders where you can discuss altogether.
  • If attendants calendar is full, do not hesitate to schedule overlapping meeting.
  • While scheduling meeting do not check attendants time zone.
  • Implementation of requirements has to be done between the meetings.If you follow any of above rules, this explains that you are using new cutting edge methodology, MDD. Congrats!

    What new rules of MDD you know?

REST API Automated testing approaches

rest-api-testing-approach

Did you know that it is possible to implement REST API Automated testing with JMeter? If no then this blog post might be interesting and show how powerful is JMeter. In this blog post, I would like to list pro and cons of using JMeter for automated REST API testing, so to non-technical and more general questions I will give answers. Also, I will compare different alternative approaches and tools with JMeter. Let’s start listing pros of using JMeter for automated testing:

  • Easy to write tests in JMeter
  • Free and open source
  • Maintainability of existing tests
  • Graphic interface
  • Supports non-RESTful services
  • Possibility to perform load and performance testing
  • Test recording
  • Built-in test results and reports
  • Integration with Jenkins or any CI

List of pros is pretty much impressive for software which is originally was not supposed to support functional testing. You can try to calculate how much it will cost to write framework which will cover all JMeter pros. I’m sure that you will get enough amount of budget to think about if it’s worth to write framework from scratch. Now let’s take a look at cons, which are for sure exist.

  • Test reusability
  • Extendibility
  • Integration with other testing frameworks
  • UI

Now let me aplify some of cons and the first is test reusability. With JMeter you don’t get flexibility which gives OOP, but still with “Include Controller” and “Module Controller” you can devide big tests into small parts and reuse them. But it will be tricky to pass arguments. Extendibility can be pro but I consider it as con because if you want to write some plugin you have to be familiar with JMeter API and it requires some amount of time. If you already have Selenium WebDriver tests or any automated tests it’s really hard to integrate them with JMeter. UI is at the same time is pro and con, because JMeter has specific UI and it’s not user friendly. It will take some time to get used to it.

Before making some conclusions, I would like to talk little bit about SoapUI. If you are not familiar SoapUI is actually API functional testing tool. It has open source free and commercial versions. Free version has everything you need to start testing REST API but at the end you will come up with idea that you have to buy commercial version. SoapUI is good competitor for JMeter.

Summary

If you have REST API which should not be integrated with other automated tests, i.e. when you run REST API tests independently and do not reuse them for example in Selenium WebDriver tests, then choose JMeter. If you have extra money to pay for commercial support, choose SoapUI commercial version. If you need to integrate your REST API tests with other tests then go for xUnit frameworks or RobotFramework.

Load testing WordPress on cheapest cloud hosting plan

Nowadays the most of the cloud hosting companies are offering 5$ per month hosting plan, we wanted to know if this plan can be used in production and how much load it can handle. This article will include information about how much load can handle WordPress on the cheapest cloud hosting plan. We will reveal if the cheapest cloud hosting plan is marketing thing or it can solve some sort of problems for new starters.

Server set up and WordPress installation

For this load test, we won’t use any server-side nor web app optimizations. We will use cloud hosting built-in features such as “One-click apps” which deploys LEMP or LAMP Stack plus WordPress in one click. With few mouse clicks, we have the cloud server with WordPress installed. We choose LEMP Stack (Linux, Nginx, MySQL and PHP-FPM). Here are hardware properties:

 

$sudo lscpu

Architecture:          x86_64

CPU(s):                1

Thread(s) per core:    1

Core(s) per socket:    1

Socket(s):             1

CPU family:            6

Stepping:              2

CPU MHz:               1799.998

BogoMIPS:              3599.99

Virtualization:        VT-x

Hypervisor vendor:     KVM

Virtualization type:   full

L1d cache:             32K

L1i cache:             32K

L2 cache:              256K

L3 cache:              30720K

Continue reading “Load testing WordPress on cheapest cloud hosting plan”

Using Beanshell for Beginners

JMeter has rich built-in plugins for most things you need. But you could still get stuck while writing complex tests for something specific.

In such cases, it’s worth using the Beanshell sampler. It’s really powerful…if you know how to use it. If you’re a Java developer you can easily invoke Java code in Beanshell. However, if you’re not familiar with Java, you might find it difficult to write a Beanshell script. So, in this article I’m going to show you how to write Beanshell scripts without any Java knowledge.

For starters: add “Thread group” and Beanshell sampler. The Beanshell sampler has pre-defined variables which you can use in the script, these are: SampleResult, ResponseCode, ResponseMessage, isSuccess, Label, FileName, ctx, vars, props, and log.

JMeter by default supports Beanshell so you can write and run Beanshell scripts in the Beanshell sampler. However, if you want to run them separately you can install the Beanshell console.

Type the following in the console:

sudo apt-get install bsh

Now type “bsh” in the console and you’ll see a prompt message from the Beanshell console. To learn the syntax of Beanshell, try checking out the online tutorial: “Beanshell Quick Start”.

Note that I’m not using the Beanshell console for coding. All scripts will be written in the JMeter Beanshell samplers.

Now we can start the step-by-step coding of the Beanshell script. Here are the steps you should take:

1. Open the Beanshell sampler and type the following:

print(“Hello”);

https://i0.wp.com/cdn2.hubspot.net/hub/208250/file-1560747562-png/Blog_Images/beanshellblog1.png

Continue reading “Using Beanshell for Beginners”

Debugging JMeter with Wireshark

In this post, we consider the situation when JMeter request which was recorded with “HTTP(S) Test Script Recorder” does not work but if you repeat steps with browser everything works fine and if you have already tried to debug JMeter script but with no results. In more detail, you recorded HTTP request which should check some sort of API action but when run JMeter script occurring error. API, in turn, didn’t return accurate information about the error. If you try to repeat the steps using a browser then everything works fine. The first thing that may come to mind it so HTTP Cookie Manager, but if after adding HTTP Cookie Manager error persists then have to use Wireshark to see what is wrong. So, open Wireshark, select the network interface if you do not know what interface to choose, choose “any”.

screenshot_533

Now run sniffing and write in the box Filter:

http.request.method == "DELETE"

Instead of “DELETE” you can assign “GET”, “POST”, “PUT” according to the method.

screenshot_532

After that, open the browser and perform the steps that we need, if the connection between the browser and the server is encrypted you’ll have to decrypt Wireshark packets, but if not then you will see the requests sent. Now you need to save them in a text format, for this select “File” -> “Export” -> “as ‘Plain Text’ file …”. In the new window, select “All expanded”, “Displayed”, insert the name of the file. After that, we need to repeat the previous steps, but only need to capture requests through JMeter. After that, you will have two files with captured packets. Now run or install program Meld:

sudo apt-get install meld

Open the program and select two captured files to compare them.

 

screenshot_535After analyzing two files figured out that there was no “Content-Type” header in request and this was causing problem. Adding “Content-Type” header solved the problem. That’s it!

 

Interested in our services? Get a free quote! Contact us!

Automation testing Chrome extensions

This article would be helpful if you develop Chrome extension and you need automation testing to reduce cost of testing. We try to automate functional testing of Chrome extension with Selenium WebDriver. On the other hand it may look impossible to automate as Selenium works only with webUI and to manipulate Chrome extension should be used GUI testing tool similar to ldtp. You can use any GUI automation testing tool to test Chrome extension but if you need also test webUI solution would be complex. Let’s start.

By default Selenium can’t manipulate Chrome extension and we should open it in webUI. To open extension in webUI you can use such url:

chrome-extension://mbopgmdnpcbohhpnfglgohlbhfongabi/popup.html

screenshot_289

This url won’t work on your browser as extension may not be installed, that’s why you have to change ID of necessary extension. ID of the extension you can get from this url:

chrome://extensions/

As you can see on screenshot we have just opened extension’s dashboard and now we can manipulate with Selenium.
To record actions we tried to use Selenium IDE for Chrome but for unknown reasons it didn’t record extension’s dashboard.
If Selenium IDE won’t work you can use Chrome’s developer tools to inspect web elements. Continue reading “Automation testing Chrome extensions”

Howto debug JMeter scripts

In this article we examine debugging options in JMeter. I start from debugging on GUI level which helps during working with “Post Processors”. In this case we will debug “Regular Expression Extractor”. To make it work, add these elements into test tree:

  • Thread group
    • HTTP Request
    • Regular Expression Extractor
  • Debug Sampler
  • View Results Tree

Now you have to configure “HTTP Request” and “Regular Expression Extractor” and the rest of elements leave unchanged. Insert any server name, for example releasecon.wordpress.com in “HTTP Request”. “Regular Expression Extractor” should be changed proceeding screenshot.

screenshot_221

Now try to run your test, open “View Results Tree” and select “Debug Sampler”. On the right pane you see the list of Jmeter variables and also REGEXP variable with value.

screenshot_222

Continue reading “Howto debug JMeter scripts”