Forum Discussion

edhedh's avatar
edhedh
Occasional Contributor
15 years ago

Datasource driven Load Tests

Hello,

I'm using soapui pro 3.6.2-snapshot.

I really don't understand how I can reliably get any results using soapui's datasource driven loadtesting features.

Can somebody please explain me how I can achieve the following or tell me if it's a bug or an unsupported feature ?

I have one Testcase with one DataSource step, a request step, and a datasource loop step.

The DataSource contains 1 million records.
In the DataSource configuration I limit the numbers of rows to e.g. 250 (startrow = 0, end row = 249).

I've created two loadtests.

The first has the following characteristics: 1 Thread, Simple Strategy, delay 0, random 0
The second has the following characteristics: 4 Thread, Simple Strategy, delay 0, random 0

I now want to get an insight in tps and how long it takes to execute those 250 requests.
That is, in both load tests I want to execute exactly the same number of requests (250), so I can compare how long it takes with one thread (first loadtest), and how long it takes with 4 threads (second loadtest) and compare the tps and how long it took.

But I can't seem to find a way to do this using the limit Total runs, or runs per thread.
In both cases the second loadtest with 4 threads produces 1000 requests where I expected only a total of 250.

Please advise. Is this a bug, or am I doeing something wrong and if yes what exactly ?

Kind regards,
EDH

5 Replies

  • Hi

    Please make sure that you have the DataSource set to shared (in DataSource Options). This page in the documentation should be of particularly interesting.

    You might also want to try our free software loadUI, which is a more powerful way to test your soapUI tests.

    Regards!

    /Henrik
    eviware.com
  • Ok, good!

    Have you set the limit to 250 Total Runs in the upper right corner of the load test?

    /Henrik
    eviware.com
  • edhedh's avatar
    edhedh
    Occasional Contributor
    If I set the total runs to 250 in my first loadtest (1 Thread, Simple Strategy, delay 0, random 0) then I have the impression the testcase will be executed 250 (rows in datasource) * total runs (250) times. At this very moment the cnt is already at more than 1000 and it's still going.
    From your suggestion I gather you expected the test (and thus the cnt) to stop at 250, which definitively isn't the case.
  • Hi,

    The Total Runs count is for executing the full TestCase, which in your case contains 250 iterations of the request, resulting in 250*250 requests. If you disable the DataSourceLoop TestStep, each execution of the TestCase will only run one iteration, giving you the correct number of total requests. For this to work as you would expect it to with the DataSource, you need to make sure that "Shared" and "Restart Shared" are both checked, and that "Restart on Run" is NOT checked. Hope this helps!

    Regards,
    Dain
    eviware.com