机器人框架:生成唯一随机数

时间:2014-03-20 06:09:31

标签: robotframework

我必须在机器人框架中生成唯一的随机数。我使用了"生成随机字符串"得到随机数。命令:

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

我在for循环中给出了上述语句。现在我能够得到' n'随机数。但它们并不是唯一的。我如何使它们独一无二?

我的情况究竟是什么:我想要四个独特的随机数,范围从1到10.我试图在for循环中给出生成随机数命令,在第二个循环中我试图将它与第一个随机值进行比较,所以上。但这不起作用。

是否有任何简单的逻辑可以获得1到10之间的4个唯一随机数?

提前致谢。

5 个答案:

答案 0 :(得分:6)

我认为随机模块sample功能是最优雅的解决方案。这里从1到10中包含4个数字中的4个:

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

返回int的列表。如果你想要数字的字符串表示......

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

答案 1 :(得分:0)

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}

或使用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

通常,创建可能的数字列表。从该列表中随机选择号码,然后从列表中删除该号码。根据需要重复多次。

答案 2 :(得分:0)

我认为您应该尝试以下代码。它将为您提供一个来自“ 0123456789”的4位唯一随机数

库字符串

${PO_Number}    Generate random string    4    0123456789

我希望它对我有用。

关于, 阿文·库玛(Arvind Kumar)

答案 3 :(得分:0)

我添加了这两行,效果很好:

*测试用例*

Generate XYZ Random number
   ${rand_XYZ}=  generate random string  9  [NUMBERS]
   log to console  ${rand_XYZ}  

答案 4 :(得分:-1)

为了获得1到10的4个随机数: $ {Random Numbers} =评估random.sample(范围(1,10),4)随机

语法: $ {随机数} =评估random.sample(范围(指定数字范围),(要生成的随机数))随机