milano
13 years agoOccasional Contributor
TestStep receiving message before it is active
Hello,
I have spent days trying to figure out this one, but it definitely requires the knowledge of the inner workings of SOAPUI which I don't have. So I'm asking for help if anyone can offer some:
I have an application with two threads (T1 and T2) running independently and talking to two mock services (MS1 and MS2). MS1 is always polled, which seems to be in the essence of the problem. The whole test project is relatively large, and the problem doesn't happen always and at the same point (resembling perhaps some timing issue), but I was able to reproduce it almost always in a simple test case. It runs as follows (abstracted):
1. T1 polls MS1
2. T2 sends to MS2
3. T1 polls MS1
... etc
What happens is that while SOAP UI is waiting in the activated TestStep2 for the message from T2, T1 runs its regular one-second iteration and polls MS1. Now, I would expect that call to fail since TestStep3 is not active, but surprisingly it succeeds (and I can see the message in the opened step editor, and the proper response is returned to the application - so it is certain that it succeeds)
Then TestStep2 is completed and SOAPUI goes on and activates TestStep3. Then it waits for ever there since my application (T1) has already done that one and doesn't try again.
Now, it definitelly doesn't seem right that the TestStep3 should be executed even though it is not active, but I would be happy if there is a different way to structure these tests, so that polls of MS1 at the wrong time (meaning "no data available") are handled differently than by simple failure as I do it now. So if there is a better way please suggest.
Thank you very much
Milan
I have spent days trying to figure out this one, but it definitely requires the knowledge of the inner workings of SOAPUI which I don't have. So I'm asking for help if anyone can offer some:
I have an application with two threads (T1 and T2) running independently and talking to two mock services (MS1 and MS2). MS1 is always polled, which seems to be in the essence of the problem. The whole test project is relatively large, and the problem doesn't happen always and at the same point (resembling perhaps some timing issue), but I was able to reproduce it almost always in a simple test case. It runs as follows (abstracted):
1. T1 polls MS1
2. T2 sends to MS2
3. T1 polls MS1
... etc
What happens is that while SOAP UI is waiting in the activated TestStep2 for the message from T2, T1 runs its regular one-second iteration and polls MS1. Now, I would expect that call to fail since TestStep3 is not active, but surprisingly it succeeds (and I can see the message in the opened step editor, and the proper response is returned to the application - so it is certain that it succeeds)
Then TestStep2 is completed and SOAPUI goes on and activates TestStep3. Then it waits for ever there since my application (T1) has already done that one and doesn't try again.
Now, it definitelly doesn't seem right that the TestStep3 should be executed even though it is not active, but I would be happy if there is a different way to structure these tests, so that polls of MS1 at the wrong time (meaning "no data available") are handled differently than by simple failure as I do it now. So if there is a better way please suggest.
Thank you very much
Milan