JMeter and WSSE

WSSE signing and/or encryption has always been an issue no-matter what tool you use. One of the reasons for the ongoing success of SoapUI as that does it magically somehow. šŸ˜‰

Thankfully my colleague Till Neunast has now written a wrapper that allows you to use WSSE with JMeter. Just install and away you go (nearly). It is really no less complex than the SoapUI variant. It is still early days and should be treated with caution(!!) and I can imagine there still being some change to the project but it’s a very good start and a long awaited reprieve from the personal hell that WSSE has been in the past. So excuse me for being a bit overexcited.

If you do end up using the plugin please feed back any issues or improvements to the project or Till for that matter.

To download please see here:
https://github.com/tilln/jmeter-wssecurity

by
Oliver Erlewein

My Daily Tool Use [Updated #2]

SublimeAs a performance tester I spend most of my daily time somewhere between the browser and a web server. I also so spend a lot of time on servers themselves analysing data. So I thought I’d write a bit about the tool landscape I tend to use. In my tool selection I favour Open Source software. Mainly because I don’t have to fluff around with licenses but also because I can look at code if I need to. It allows me to focus my resources on training people. I do tend to feed back into OSS, whenever I can (which is seldom as I am usually not that clever;-) ).

I also do a lot of bespoke programming to automate processes. This is not at the level a developer would do things but more on a simple scripting level. But not to be underestimated what power this can unleash in your day to day work.

Continue reading

Recruiting for testers – a hiring perspective

In recent times I have been heavily involved in hiring testers. This is includes fine tuning the hiring process, screening CV’s, interviews, take home exercises and so forth. It also includes spending time with recruiters. I have found two aspects of hiring interesting and we’ll look at one vital component of the process in this post.

Recruiters

I have found recruiters fall into two categories ā€“ those that listen and those that don’t. I have met some very good recruiters who have gone out of their way to build a rapport before trying to sell me their wares. I have appreciated this as I have found that they’ve listened to what we were after (our ‘requirements’ if you will) and we got to know each other better. This is important as testing (and the tech business) is about people after all. An example of this is when I recently spoke at a testing conference in Melbourne, Australia (ATD2K16) – three people from the same recruiting firm came to support me because we had established a very good relationship before hand!

Continue reading

Controlling JMeter ThreadGroups with -1

When I script large JMeter projects I immediately default to run scripts through config files. That means that all sorts of variables get pre loaded at the start of the test (VariablesFromCSV is a huge help!). From there I control things like URLs, usernames and passwords,… but I also control Thread Groups. Recently I came across the issue that I wanted to switch in such a config file between a test that ran for a certain length of time to a test that ran only X number of iterations.

For all of you that have used JMeter you know that that might be an issue.

Continue reading

Every Tester is a Performance Tester

…at least to some degree. Well, there are human conditions that distort the perception of time but it’s highly unlikely that you’re one of them. So you are a performance tester too.

The biggest annoyance for a performance tester is to get code into a performance environment that CLEARLY has issues that can be detected by the simplest means available (well.. second most annoying, as finding obvious functional defects is even worse). This is where you as a (whatever kind of) tester come in.

You know the times you drum your fingers on the desk waiting for that spinning wheel in the browser to come back? The batch job where the execution is exactly “making one cup of coffee” long? The usual response from you would be to shrug and say something like “This is just the environment. It’s system test afterall.” or “Let performance testing take care of it”.

Now, I can totally relate to such sentiments! We’re all busy and have deadlines to meet. I’d make the case though that you’d actually help the project as a whole and thereby yourself too by not ignoring such issues.

Continue reading

CheatSheet for JMeter __time Function Calls

Often I have to deal with dates and times in my scripting and luckily JMeter is quite good at dealing with them. The function to call is __time (JMeter doco http://jmeter.apache.org/usermanual/functions.html). The thing is the doco is pretty sketchy about all the different formats it can take. So I just created a test script to see what works. The examples are below ready to copy & paste. I also have included scripts for time and date manipulation for completeness.

Continue reading

Extracting a value from JSON with JMeter

So again an issue I had and thought I’d share. I found very little about this on Google. The problem I had was, that I got a JSON response from a site that contained an ID I’d need to use on the next page. The challange was that I had a variable in the regex which JMeter doesn’t seem to like. The easiest way to do this is to use JMeter-plugins!!!

Short post, if it were not for the unlucky fact that I couldn’t use the plugins. So here the long answer….

Continue reading

Iterating over a CSV file in JMeter

A common problem in JMeter is that you want a CSV file as an input and want to execute each line, then continue. So from a script perspective that would look something like this:

Thread Group
 |-For Each CSV Line
 |  |-HTTP Request (CSV input)
 |-Do something else

The issue though is there is no “For Each” concept in JMeter. I know that it is called a ForEach Loop in JMeter but it isn’t from a developer view. You need to know the length of your CSV file. You could just tell the For loop how many lines there are but that would make it very unflexible. You’d need to adjust the script every time the CSV changes.

So here is how I solved it. Not elegant but it actually works quite well.

Continue reading