Filling forms with random numbers in Katalon Studio

If you’re filling in forms, inevitably there will be a need to use random numbers. For me, since I’m dealing with a sales dashboard, this means entering dollar figures and percentage values. It’s certainly possible to enter the same figure over and over again, but it’s just as easy to use a few lines of code and generate some random data.

A basic form of the random number command can look like this:

randomNumber=rnd.nextInt(10) – A random number between 0 and 10

This will create a simple random number between 0 and 10. That unto itself is quite fine and can be used for any number of applications. It could be appended to the end of text to make a Title, Subject or similar a little more random. It’s a good start, but there is certainly more that can be done.

To return my example, I want to enter sales figures that range from 100,000 to 250,000. I also want to enter percentages that range from 3 to 15 percent.

random-numbers

There are basically two lines to creating a random number. The first is to initialize the random number. The next is to define the random number within the range. To create the two numbers I want for the form, I can use these lines:

Random rnd = new Random() – Initialize the random number generator

randomNumber = (10000 + rnd.nextInt(250000)) – Pick a number between 10,000 and 250,000. This is my sales figure.

randomNumber = (1 + rnd.nextInt(15)) – Pick a number between 1 and 15. This is my margin figure.

When I want to fill down the table, I can use a SetText command similar to the following: WebUI.setText(findTestObject(‘Page_/Sales Plan Budget/New Prospect/Category Margin Column’, [(‘Variable’) : loop]), String.valueOf(randomNumber))

To break down the parts of the command.

We first have the SetText command

Next comes the Object with the reference to where the fields exists on the page

Since I have two columns of numbers, I will use a loop (from 1-10) to go down the page. This is followed by passing the value of the loop counter into the XPath reference, for example (tr[loop]td[1])

Finally, the text of the random number is passed. For the site I’m working with, I need to convert this to a string in order for it be accepted correctly. The String.ValueOf() passes the random number as a string.

There are dozens and dozens of variations on how to create a random number. Some examples use functions while others are set up to create “more randomness”. For entering a number into a sales field, this example is more than sufficient and while those other examples are neat, they overly complicate the matter.

Other articles of interest:

3 Responses to Filling forms with random numbers in Katalon Studio

  • Seth says:

    When you are setting up randomNumber is this a new keyword or a new variable? I am trying to randomly generate unique socials and can’t seem to connect my generator to my Set Text.

  • Don Pedro says:

    randomNumber is the variable that holds the result of generating a new random number.

    Depending on how things work on your site, you might need to convert the number to a String before it’s recognized correctly.

    WebUI.setText(findTestObject(‘ObjectName’), String.valueOf(randomNumber))

  • Patrick Clough says:

    We created a handy random string generator custom keyword. The method takes in a string for the type of string you want, and an integer for the length. Looks like this:

    static String RANDOM_ALPHANUM = “ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890”
    static String RANDOM_ALPHANUM_SPECIAL = “ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#\$%^&*()”
    static String RANDOM_ALPHA_SPACES = “ABCDEFG HIJKLMNOP QRS TUV WXYZ”
    static String RANDOM_ALPHA_HARDRETURNS = “ABCDEFG\nHIJKLMNOP\nQRS\nTUV\nWXYZ”
    static String RANDOM_ALPHA_ONLY = “ABCDEFGHIJKLMNOPQRSTUVWXYZ”
    static String RANDOM_ALPHA_UPPER_AND_LOWER = “ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz”
    static String RANDOM_NUM = “0123456789”
    static String RANDOM_SPECIAL = “!@#\$%^&*()”

    @Keyword
    def String randomStringGenerator(Integer stringLength, String type) {

    //string ‘type’ passed in determines which type of chars are generated
    def CHARS = type

    StringBuilder string = new StringBuilder();
    Random rnd = new Random();
    while (string.length() < stringLength) { // length of the random string, uses an int passed in by test
    int index = (int) (rnd.nextFloat() * CHARS.length())
    string.append(CHARS.charAt(index))
    }
    String randomString = string.toString()
    return randomString
    }

Leave a Reply

Your email address will not be published. Required fields are marked *

Recent Comments
  • Parsing Strings in Katalon – Split, Substring and Readlines (4)
    • Anjana: Hey thanks for the response It is quite strange but initializing variable for delimiter and it worked String splitFormat = ‘-‘ WebUI.println(var_CampaignDura tion.toString().split(splitFor mat)[0])...
    • Don Pedro: I’m not really sure what the difference is, but I don’t think the “-“ in the split is the same as the one in the date. String var_CampaignDuration = “05/13/2019-06/07/2019&# 8221; String[] parsedDateRange =...
    • Anjana: Hi, I tried the same thing to split the string, but does not work for me, Could you plz point out whats wrong Variable var_CampaignDuration has value “05/13/2019-06/07/2019&# 8221; String[] parsedDateRange =...
    • Ellen: Thanks for sharing!! I like your contributions to Katalon topics.
  • How to Block games by Title and Tag on Steam (2)
    • Marcus861: I made an acc just to say: Same bro
    • JACK: Thanks, same just wanted to block anime games in my discover
  • Create a new and random UUID for an API call (1)
    • Anonymous: Hi ! I found this blog few weeks ago and it’s really helping me out with my tests! Thanks a lot for the Katalon tips and tricks ! Keep up the good work 🙂
  • How To Disable the Quicken Registration Prompt (25)
    • Greg: For me, holding the *LEFT* CTL + Shift then clicking Online, One Step Update worked. I originally tried holding the right CTL + Shift, and it didn’t work. I’m using Quicken 2006, so I don’t know if it will work...
    • Joe SR>: My monthly income is deposited into my Credit Union account. I use debit whenever possible. I write checks manually and mail them. I use Quicken 2012 off-line only. I have entered all my money and investment accounts. I...
    • Prtet: Never say never….every time I swear I will never use Quicken again, I discover that there are still no viable alternatives. Amazing that there is no decent personal finance software.
    • Joe D.: Holding CTRL + Shift keys and selecting On Line | One Step Update from the main menu worked for my Quicken 2004. I’m grateful that you wrote a synopsis (“Simply put, …”) just beneath the link to the blog...
    • Susan Long: I bought my quicken disc in the beginning and it came with a registration number. I rang the helpline and they gave me the code to put in and talked me through it. It you downloaded your version then you don’t own it...
    • Peter: You might consider running your old version of Quicken on an ancient computer. This is what I have done for years. The newer versions are fraught with problems- criminal, in my opinion. One version made mathmatical errors when...
  • Working with Dates and Date Formatting in Katalon Studio (6)
    • Ajoo: Thank you for the details. How do i remove leading “0” from dates. i.e. while formatting i receive 04/21/2019, but i need 4/21/2019. (same applies for date)
  • What is Katalon Studio? A Distro of Selenium, Groovy and Eclipse (1)
    • Mahesh: Looking for more posts on katalon studio.your katalon stuffs are always exiting