How can I set up checkout transaction testing with different variables


I’m very new to Katalon recorder and am struggling to figure out the most efficient way to set up some checkout transaction testing with different variables.

I have a test website set up and a csv file that contains login details, item details, billing and shipping addresses and credit card details and well as several columns like “Multiple Quantities” and “Multiple items” that have values set to yes or no.

At first I thought I could use the storeEval function and store all the values in all the columns and rows, and then add lots of IF/ELSE steps, but this takes a very long time to input and then if I want to change the test data (and say change a test to not include multiple quantities of an item) I have to change both the test data and the value ive stored in the test steps.

Is there a more efficient way to do this so that katalon recorder pulls all the details from the first row and then continues to loop through all the rows with different data until it reaches the end?

@alexis, you could try Data Driven testing. You can read more about it here:

1 Like

Here is a link that may help as well.

1 Like

I’d used variables you set in the top of the script to help determine what’s used further down.

storeCsv is more meant for grabbing from a single line of a CSV file, and being able to have complete control over where it’s pulling the data from.

If you’re iterating through a CSV file, pulling the same kinds of values with each line in the CSV, then you are likely better off using loadVars / endLoadVars to have it loop through each line in the CSV, unless you need it to function differently per iteration.

If the variable you want to use to determine which steps it needs to take, then you may need to use storeCsv to pull that value in first, then potentially use it again for other places where you need to pull in data.

In theory, you could combine the two ideas (storeCsv and loadVars), if you wanted to determine behaviour, then use loadVars to loop through behaving in that way with every step it then takes throughout that part of the script.

All depends on what your needs are.