Robot Framework: Generating Unique Random number

为君一笑 提交于 2019-12-04 04:40:33

问题


I have to generate unique random numbers in robot framework. I have used "Generate Random String" to get random numbers. Command:

${random}   Generate Random String  1   [NUMBERS])

I gave the above statement in a for loop. Now I am able to get 'n' random numbers. But they are not unique. How do I make them unique?

Whats my case exactly: I want four unique random numbers ranging from 1 to 10. I am trying to give the generate random number command in for loop and in the second loop i am trying to compare it with first random value and so on. But this is not working.

Is there any simple logic to get 4 unique random numbers between 1 to 10?

Thanks in advance.


回答1:


I think the random module's sample function is the most elegant solution. Here taking 4 out of the set of numbers from 1 to 10 inclusive:

${numbers}=    Evaluate    random.sample(range(1, 11), 4)    random

This returns a list of int's. If you want string representation of numbers...

${numbers}=    Evaluate    random.sample([unicode(x) for x in range(1, 11)], 4)    random



回答2:


Generate 4 Random And Unique Numbers
    ${numbers}    Create List    1    2    3    4    5
    ...    6    7    8    9    10
    ${random index}    Generate Random String    1    0123456789
    ${random number 1}    Set Variable    @{numbers}[${random index}]
    Remove From List    ${numbers}    ${random index}
    ${random index}    Generate Random String    1    012345678
    ${random number 2}    Set Variable    @{numbers}[${random index}]
    Remove From List    ${numbers}    ${random index}
    ${random index}    Generate Random String    1    01234567
    ${random number 3}    Set Variable    @{numbers}[${random index}]
    Remove From List    ${numbers}    ${random index}
    ${random index}    Generate Random String    1    0123456
    ${random number 4}    Set Variable    @{numbers}[${random index}]
    Remove From List    ${numbers}    ${random index}
    ${random numbers}    Create List    ${random number 1}    ${random number 2}    ${random number 3}    ${random number 4}
    [Return]    ${random numbers}

or with python

import random

def generate_4_random_and_unique_numbers():
    pool = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    random_numbers = []
    for index in range (0, 4):
        index = random.randint(0, len(pool)-1)
        random_numbers.append(pool[index])
        del pool[index]

    return random_numbers

In general, create a list of possible numbers. Pick number randomly from that list and then delete that number from the list. Repeat as many times as needed.




回答3:


In order to get 4 random numbers from 1 to 10: ${Random Numbers}= Evaluate random.sample(range(1, 10),4) random

Syntax: ${Random Numbers}= Evaluate random.sample(range(specify the range of number),(number of random numbers to be generated)) random




回答4:


I think you should try below code. It will give you a 4 digit unique random number from "0123456789"

library String

${PO_Number}    Generate random string    4    0123456789

I hope it will work for you as it worked for me.

Regards, Arvind Kumar



来源:https://stackoverflow.com/questions/22524771/robot-framework-generating-unique-random-number

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!