Welcome to the new Parasoft forums! We hope you will enjoy the site and try out some of the new features, like sharing an idea you may have for one of our products or following a category.

Test Flow Logic Question

LegacyForum
LegacyForum Posts: 1,664 ✭✭
edited December 2016 in SOAtest
Hey guys I have a test case which I use 3 calls to succeed. 2 calls to obtain information and store certain output in an XML Databank and the third is the service under test. The service under test has a datasource of accounts which it rifles through. What I need to do is create a test flow which forces the Service Under Test to wait for the reference calls to be consumed and refresh the XML Databank values for Test 1 and Test 2 which will then be used on the service under test with the next incremented account.

scenario...
Test 1
Test 2
SUT --> DS(acct,1), Test 1, Test 2 - suceeds
SUT --> DS(acct,2), Test 1, Test 2 - fails
SUT --> DS(acct,3), Test 1, Test 2 - fails
.
.
.

under default conditions the SUT call will run through the range of values in its accoutn DS until completed. However My test requires that Test 1 and Test 2 output be different for each value of Acct,N. I know I could just populate the Datasource with the values but in production we'll be using these reference calls to obtain the equivalent Test 1 , Test 2 data.

I"ve played around with the test flow logic parameters without success. setting dependencies doesn't cause the SUT to resubmit Test 1 and Test 2. Looping with while doesn't increment the DS(acct,N) properly.

thanks for any tips you can give,


LeapTester

Comments

  • LegacyForum
    LegacyForum Posts: 1,664 ✭✭
    Curtis,

    If you have each of your tests at the same level of scope (in other words, in the same test suite), they will iterate automatically.

    Say for example you have a single test suite, "Test Suite X1". It should contain your three tests, Test 1, Test 2, and SUT (assuming SUT is a single stand-alone SOAP Client). If Test 1, Test 2, and SUT have all been parameterized with values from a data source, they will be invoked once, sequentially, for each row of the data source.

    Here's a diagram of what the test suite structure within SOAtest might look like:

    CODE
    Test Suite: Top Test Suite
       Test Suite: Your tests
           Data Sources
               Table: Static Data
           Test 1: Test 1
               XML Data Bank
           Test 2: Test 2
               XML Data Bank
           Test 3: SUT - Using data from 2 data banks and Static Data datasource

    Assuming you have parameterized one of Test 1, Test 2, and/or Test 3 with a column from the "Static Data" data source, the test flow execution will look something like this:

    (Iteration over "Static Data" row 1)
    Test 1
    Test 2
    SUT

    (Iteration over "Static Data" row 2)
    Test 1
    Test 2
    SUT

    At each iteration, all tests will only contain data for the row of the data source that is currently being iterated over.

    Please let me know if this is not what you are looking for as I've made a few assumptions in my understanding of your problem description. If I have misinterpreted this in any way, feel free to clarify.

    -Mike
  • LegacyForum
    LegacyForum Posts: 1,664 ✭✭
    Hey Mike no your understanding is only as good as the explanation. Sorry for leaving out some details. Based on the example you gave then I would have the effect i'm trying to achieve. However Test 1 and Test 2 are independent of the Service Under Test (SUT) datasource(single soap client) . So there is no clear connection between the test cases. Specifically, SUT has 3 inputs. Test 1's is fed via xmlDB to SUT input 1. Test 2 to SUT input 2 and Finally accountnumbers are fed from a writable DS to SUT input 3. The account numbers are acquired from a set-up test(too much info I know).
    So with no common DataSource to bind the Test 1,2 and SUT service calls, how do I create a situation where Test 1 and Test 2 are invoked. Because once they execute there's no trigger to force subsequent invocations which to map to the SUT which has the DataSource range to cause multiple requests to occur.

    Hope this helps.

    Best,

    Curtis
  • LegacyForum
    LegacyForum Posts: 1,664 ✭✭
    Curtis,

    Just one more clarification should be all I need to answer your question. If not, maybe I can give you a call so we can take a look at this in your environment.

    How do Test 1 and Test 2 get impacted by the different data rows? Is it only something that happens on a back-end database? I'm imagining the possibility that SUT invokes an operation on one row of data in a datasource within SOAtest which then changes data in the back-end database. Therefore, Test 1 and Test 2 might now return different sets of data since the database has been updated.

    Also, it might be helpful to attach your .tst file to the topic and point me to which tests & datasources this is dealing with.

    Thanks,
    -Mike