Data Driven testing with dynamic/changing assertions
Hello fellow SoapUI users.
I am currently working on implementing data driven tests with a DataSource. The idea came up that we could cover a program flow chart with SoapUI by creating a "flow template" and then control the flow using the parameters from the data source. This means we need to use dynamic assertions, checking for content that one row produces which might not exist in other rows. Sadly I cannot find a way to dynamically enable / disable assertions and set their expectation value.
One idea is to have a groovy script that dynamically evaluates the data in the current row and asserts according to the expected outcome within groovy. This leads to a lot of groovy scripting which I would like to circumvent because the system will be passed to a successor with limited programming experience and I fear for the maintainability of the tests.
Another idea could be to simply include the expected assertion values in the DataSource and have ambiguous assertions that take the data to assert against from the row as well. This could however lead to an unmaintainable Excel-Sheet with too many columns and an unintuitive way to call assertions, this also does not allow asserting a dynamic amount of potentially generated parameters.
I hope you can provide me with further ideas or refer to a similar implementation.
Thanks in advance.
Depending on how the tests will be structured I can encapsulate and separate most of the batches, but the flow diagram I am provided with is very long and basically has a few "bottlenecks" that I can use to split the TestCases. On a first glance the worst flow has 12 decisions - each causing a change in the expectation - that I need to cover. After talking a bit more with my colleagues we think the best way to go about it is the bloated excel sheet because it offers a single point of reference, even if it means that our columns will be bloated.
Thank you very much for your input, I'll keep the topic open for more ideas but will implement the large excel-sheet for the time being.