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
  • 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
    • ALLAN FORD: Useful !
    • Don Pedro: Not sure I understand what you are trying to do.
  • 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...
    • Aparna: Hello, Your documentation is excellent and has helped me understand many things. But this article above seems outdated and I need help in creating my own Global variables and all the documentation out there seems to be point to...
  • 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...
    • Marin Boucher: Hi! Verry funny blog with “go to the point” on many post! I spent good time reading some of your post. Regarding this one about NAS, “many NAS” in fact, I would be curious to see a screenshot of...
  • How To Disable the Quicken Registration Prompt (27)
    • debra: didn’t work for me… my 2007 – which I am keeping on my older mac.
  • Adding entries to an open Excel spreadsheet during runtime (1)
    • IanG: Hi: Seems like nobody else has described (in detail) how Katalon can be configured to test an API by reading the first entry from a multi-row multi column XLSX spreadsheet, executing a test, writing the result to another column (or...