Forum Discussion

Alexander_Culum's avatar
Alexander_Culum
Occasional Contributor
16 years ago

No transfer of soapUI's datasource / -loops steps?

Hi,

i have a test suite with a data source and a data source loop and a load test in soapui, however, if I convert it to a loadui test case, only the first row of the data source is used recurrently for all steps during the load test. The load test in soapui works as expected (one row for each test step).
The setup is simple as that, 1. datasource -> 2. Test step with ds property -> 3. data loop

Is there a flag/switch to enable datasource loops in loadui?

Best,

Radgon

10 Replies

  • Hi Radgon,

    thanks for your post. soapUI Pro-specific TestSteps (datasource, etc.) are not yet supported but will be in in beta2 and a nightly build in 1-2 weeks, sorry for the confusion.

    regards!

    /Ole
    eviware.com
  • Alexander_Culum's avatar
    Alexander_Culum
    Occasional Contributor
    Hi Ole,

    ok, thanks. Is there any way I could be reminded that this feature is in the current build (RSS-feed, etc.)?

    Best,

    Radgon
  • Alexander_Culum's avatar
    Alexander_Culum
    Occasional Contributor
    Hi Ole,

    I tried again with loadUI 1.0.1 and soapUI Pro 3.6.1 and it does not work as expected.
    If a use the TestCase as defined in soapUI:

    TS 1: DataSource step (get 1 from 200 users from a csv file)
    TS 2: Call Web Service
    TS 3: DataSource loop (back to TS 1)

    loadUI seems to just execute the complete (ie. 200 users) TestCase in each step - this runs just fine in soapUI (once executed it is the first dataset, in a load test the data sets are iterated).
    If I leave out the DataSource loop at the end, it is executed once only (as expected), but only for the first dataset in the file.

    Will there be a fix for it? Workaround would also be nice, since we are evaluating loadUI for switching from soapUI for load tests, but this is obviously a blocker.

    Best

    Radgon
  • Hi Radgon,

    can you elaborate on exactly how you expect or want this to behave in loadUI, I'm not 100% clear on what you mean.

    Thanks in advance!

    regards,

    /Ole
    eviware.com
  • Alexander_Culum's avatar
    Alexander_Culum
    Occasional Contributor
    Hi Ole,

    ok, I will try. I will start with the requirements, they are quite basic:

    Requirement 1: A web service should be called once a second, during a period of one hour. It should not exceed execution time of 500ms.
    Requirement 2: To minimize side effects like caching, etc. different data sets should be used on each step.

    Now, technically, what I want to have is a loadUI-workflow like this:

    1. (Generator) (1/sec.) -> 2. DataSource component (take next item of csv file) -> 3. TestCase (web service call, existing soapUI TestCase) -> 4. Statistics component -> 5. loop to step 1/2. (for one hour).

    I have this working in a loadtest in soapUI, however, I cannot get it running in loadUI. The soapUI TestCase has three steps which include the datasource, the web service call and the loop (ie. step 2, 3 and 5 in the workflow). If I convert it with the existing soapUI-TestCase -> loadUI-project converter, the loop starts correctly, however on each iteration only the first data set of the CSV file is used.

    Best

    Radgon
  • Hi Radgon,

    thanks for this, I think I understand it now :-)

    The problem is that each time the generator triggers the soapUI Runner, it starts a whole new run of the soapUI TestCase, resulting in new requests from the beginning of your DataSource each time. I suggest you break out the reading of the data-source into a custom component in loadUI and then use it to parameterize the soapUI TestCase which would contain only a request; I've described this approach in a blog entry available at http://www.eviware.com/blog/?p=104, please check it out and let me know if it makes sense to you.

    regards!

    /Ole
    eviware.com
  • Alexander_Culum's avatar
    Alexander_Culum
    Occasional Contributor
    Hi Ole,

    yes, this might work (haven't tried yet), but this way, I would have to create own components for each teststep (data source, property transfer, etc.), correct?
    For example, we have test cases with several test steps, but in our performance tests only one test step should be measured, the others are for preparation and property transfer initialization. This is possible with soapui loadtests, the result table shows all times for all test steps.
    It seems to me that there is a mismatch between the concepts of testsuites, testcases and teststeps in soapui and loadui. With this mismatch, it is not possible to transfer an existing soapui test case (with all its test steps) to a loadui test case - is this correct? So I would have to create loadui testcases for each soapui-testcase-teststep. This seems to complicated for me.
    Would it be possible to create a 1:1 relation between soapui testsuites/testcases/teststeps and loadui testcases?

    Best

    Radgon
  • This is also true for us. We have existing test automation in SoapUI that uses data driven templates for functional testing. We had hoped to simply import these test cases into LoadUI and run them with different data. however this has not worked.

    We have automated with the approach of one test cases representing a business function from beginning to end with all related 'transactions' of the system included, the data is one line = one transaction with memory stores for carried data. This requires that each test case has supporting steps that control branching, data manipulation and capture as well as all possible transactions for that business activity. Our most complex test case has 27 steps with 10 of those representing actual transactions (the ones that we would want to report on).

    Given this approach it would be beneficial if we could also change the dataset used when LoadUI runs the test as opposed to SoapUI.

    Would it be possible to have an indication of when this would be available in a LoadUI release?

    Thanks