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.

Then again, I could be wrong.

Author Signature for Posts

3 thoughts on “Filling forms with random numbers in Katalon Studio

    • Author gravatar

      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.

    • Author gravatar

      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))

    • Author gravatar

      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 *

This site uses Akismet to reduce spam. Learn how your comment data is processed.