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
  • Round and Round with the For..Next in Katalon Studio (1)
    • Sweet Ophaline Labador: Hello can you help me how to loop this scenario. Checking the elements is just the same. I want to check that the following function is available in www.siacargo.com: Track Shipment – clicking on this can...
  • How To Disable the Quicken Registration Prompt (30)
    • David: A BIG Thank you! I regularly reinstall Windows OS’s using different hardware configs. In short, Quicken 2011 (it’s March of 2020 as I write this) has been a program I’ve been very happy with and continue to use....
    • Karen L: Today I rang Reckon Australia again, got a different guy and he talked me through the process of getting me a new product key to enter since I already had the licence and it had been extended. Reckon have only extended it by 1...
    • Karen L: I have Australian Quicken 2008 on Windows 8.1. It keeps asking me to renew my licence which Reckon did for me however the activation won’t work. I tried this to disable the registration prompt however it did not stop the...
  • Parsing Strings in Katalon – Split, Substring and Readlines (6)
    • Don Pedro: String tempText=”Date Month January. Revenue $1,355,721.00″ println(tempText.split(“ \$”)[1]) You need to escape the $ with \$ The [1] on the split captures characters on the right of the split [0]...
    • Prasad: Hi, I need to get the substring from the below string ‘Date Month January. Revenue $1,355,721.00’ I want to extract text after $ value. Please help Thank you
  • Working with Dates and Date Formatting in Katalon Studio (15)
    • Sangeethaa: How to get previous day’s date(Yesterday’s date)? Actually I was using today.previous() before,it was working fine till today morning.Now its not retrieving right date. Can anyone please guide me on this.
    • Don Pedro: That could be a little tricky. First, is the text/format always going to be the same? You will need to do some parsing. Separate the first but of text at 2019. After that, split the text again to get rid of Central Standard...
    • Don Pedro: It should be of the same Date type as today. You could then do some calendar trickery with Calendar /*Calendar c = Calendar.getInstance(); //c.set(Calendar.MONTH, 1) //Set the month, 0=January, 11=December println...
    • josh: I’m testing a page with a string like “Updated November 21, 2019 16:25:32 PM Central Standard Time.” How might I capture the date and time and compare it to current time to verify that the update time was within...
    • zakir hussain: today = new Date() lastWeek = (today – 1.week) can u please help me in understanding what is the return type of lastweek? and I wanted to set nextyear date how can i do it
  • Output status messages and test information by writing to the Log File Viewer in Katalon Studio (6)
    • Saranya: Good One. Could you plz share link to access all your katalon related blogs. ThankQ
    • Rodrigo Calabretta: I’m using the KeywordUtil.markFailed or KeywordUtil.markError and my test stops is being shown as Error and If I use in the @afterTestCase the testCaseContext.getTestCaseSta tus() to show the status test case...
  • Setting up Environment Profiles in Katalon Studio (2)
    • Don Pedro: Not quite sure I understand. The term “Execution Profile” is normally used now, but they are still GlobalVariables and are created in the same way for version 7 as previous. You make a new execution profile, then...
  • Here is my drive cluster (2)
    • Don Pedro: While I still have those drives, the drive cluster looks nothing like that now. Almost all of my external drives have had the cases removed and they have been installed into a series of MediaSonic 8 Bay Drive Enclosures. I...