jmeter-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From George <>
Subject Re: Using Multiple KeyStore Configurations
Date Thu, 16 Oct 2014 08:14:49 GMT

thanks for your reply.

Well i know that KeyStoreConfiguration is a JMeter configuration element but of course JMeter
has a lot of them and the behaviour of them all
depends on "where" you place them in your test plan. e.g. user-defined-parameters or cookie-manager
are configuration elements.
If you create a user defined parameter and place this configuration element as child of your
thread then the parameters are only valid inside this thread.
If you place this configuration element as child oft your test plan then in ALL threads the
parameter become valid.

So this should be the same with the KeyStoreConfiguration.
As showed above my test plan looks like this.

---> Thread Group 1 

            ---> KeyStoreConfiguration Startindex 0 Endindex 0 (means only the first cert
from keystore will be loaded)
            ---> Cookie-Manager with "clear cookie on every run" hook set

            ---> https request to my server without parameters just a pure GET to the url

---> Thread Group 2
           ---> KeyStoreConfiguration Startindex 2 Endindex 2 (means only the 3rd cert
from the keystore will be loaded)
           ---> Cookie-Manager with "clear cookie on every run" hook set
           ----> same https request as under group 1

If i let the test run then the test itself works perfect BUT in the second https request NOT
the 3rd cert but the first cert will be taken
I also see that the server responds with different cookies for request 1 and 2. Thus the server
treat both request perfectly. For the server two auth. has been made. But both with same cert.
But i want to login user 1 with cert 1 and user 2 with cert 2.

If i disable Thread Group 2 and then change the index of KeyStoreConfiguration from 0 - 0
(load only the first cert) to  0 - 2 (load all 3 certs)
AND then let Thread Group 1 loop 30 times then i see perfectly 30 https requests with 30 different
cookies and i see that request 1 is using cert [0] 

request 2 is using cert [1] request 3 is using cert [2] and then it starts again and request
4 is using cert [0]. 


Now i want to split it and i want to get "control" about my login.
I want Thread Group 1 to login as user 1 with cert 1 and do some stuff on my server
Then i want to launch a 2nd Thread group and login as user 2 with cert 3 and do some stuff
on my server
And so on...

For me it seems like the KeyStoreConfiguration is loaded ONCE for the whole test plan at the
beginning and then you can't change or "flush" it.
It also doesn't matter where you put the KeyStoreConfiguration element in your test plan.

I will try to do some BeanShell stuff to "clear()" the KeyStoreConfiguration after my Therad
ends. And on the next thread i need to load and use the other configuration.


sebb <> schrieb am 3:27 Donnerstag, 16.Oktober 2014:

On 15 October 2014 15:35, George <> wrote:
> Hello all,
> i need your help regarding the KeyStoreConfig element.
> Well i have setup a key store and everything works good. I have no configuration problems
regardings my certs my keys or my keystore etc etc.
> So i have 3 certs.
> [0] cert 1
> [1] cert 2
> [2] cert 3
> i can see all 3 cert's using the keytool -list -keystore /path/to/kestore command.
> Perfect.
> Now i can set up a test plan with one thread and a simple https request.
> Of cource i set up the KeyStoreConfiguration element and put "0" for start and "2" for
end index.
> I do not use any variables.
> Then i let the thread run 3 times or 10 times or 50 times and i see that every thing
works perfectly.
> I see the login with cert [0] then with [1] then with [2] then again with [0] then with
[1] and [2] and again with [0] and so on and so forth.
> Perfect.
> But now i want to do the following
> I create a second thread
> I create a second KeyStoreConfiguration
> I use the same https request
> I configure the KeyStore index to start at 0 and end at 0 (so take only the first cert)
> I confugire the KeyStore index in the first thread to start at 2 and end at 2 (so take
only the third cert)
> Now i let the test plan run and in the JMeterLogger Panel i see that BOTH key stores
will be created.
> The first one starting at 0 and ending at 0 and the other starting at 2 and ending at
> BUT i also see that jmeter.util.SSLManager is creating only one instance.
> This means that for BOTH threads in BOTH https request only once cert will be used.
> I have tried to do some beanshell stuff like "SSLManager.getInstance().reset()" and i
also did some other stuff with KeystoreConfig.testEnded() and KeystoreConfig.testStarted()
etc etc.
> But nothing works.
> Anyone got some ideas?

KeyStoreConfiguration is a Configuration element; these generally are
resolved at the start of a test.

> I want to have
> TestPlan
> ---> Thead 1
>             ---> KeyStoreConfig index 0 - 0
>             ----> Https request using cert on index 0
> ----> Thread 2
>            ----> KeyStoreConfig index 2 - 2
>            ----> Https request using cert on index 2
> But so far the SSLManager will initialize the Keystoreconfig only once for the whole
test plan.
> Btw.
> I can't use CSV file with cert aliases because my https request which do the login to
my https server do extract the CN directly from the cert to login.
> Thus there is no login parameter i need and can sent. So i do not need the variable to
pick the cert out.

Some suggestions to try.

Use two different thread groups
Use two different JMeter instances

> Br
> George

To unsubscribe, e-mail:
For additional commands, e-mail:
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message