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

Robotframework 机器人框架:生成唯一随机数,robotframework,Robotframework,我必须在机器人框架中生成唯一的随机数。我使用“生成随机字符串”来获得随机数。命令: ${random} Generate Random String 1 [NUMBERS]) 我在for循环中给出了上述语句。现在我可以得到n个随机数。但它们并不是独一无二的。我如何使它们独一无二 我的情况是:我想要四个从1到10的唯一随机数。我试图在for循环中给出generate random number命令,在第二个循环中,我试图将它与第一个随机值进行比较,依此类推。但这是行不通的 有没有简单的

我必须在机器人框架中生成唯一的随机数。我使用“生成随机字符串”来获得随机数。命令:

${random}   Generate Random String  1   [NUMBERS])
我在for循环中给出了上述语句。现在我可以得到n个随机数。但它们并不是独一无二的。我如何使它们独一无二

我的情况是:我想要四个从1到10的唯一随机数。我试图在for循环中给出generate random number命令,在第二个循环中,我试图将它与第一个随机值进行比较,依此类推。但这是行不通的

有没有简单的逻辑可以得到4个1到10之间的唯一随机数

提前谢谢

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

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

我认为随机模块的功能是最优雅的解决方案。这里从1到10(含)的数字集中取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到10之间的4个随机数:

${Random Numbers}=     Evaluate  random.sample(range(1, 10),4)   random
语法:

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

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

库字符串

${PO_Number}    Generate random string    4    0123456789
我希望它能像对我一样对你有用

问候,,
Arvind Kumar

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

*测试用例*

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

这看起来比我的解决方案好多了:)不知道sample()。谢谢。欧盟的银行账号需要符合一个特定的标准:IBAN(国际银行账号)()。也许政府能帮上忙?