【问题标题】:Robot Framework: Generating Unique Random numberRobot Framework:生成唯一随机数
【发布时间】:2014-04-26 19:32:20
【问题描述】:

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

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

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

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

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

提前致谢。

【问题讨论】:

标签: robotframework


【解决方案1】:

我认为随机模块的sample 函数是最优雅的解决方案。这里从 1 到 10(包括 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

【讨论】:

  • 这看起来比我的解决方案更好:) 不知道 sample()。谢谢。
【解决方案2】:

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

库字符串

${PO_Number}    Generate random string    4    0123456789

我希望它对我有用。

问候, 阿文德库马尔

【讨论】:

    【解决方案3】:

    为了得到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
    

    【讨论】:

      【解决方案4】:
      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
      

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

      【讨论】:

        【解决方案5】:

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

        * 测试用例 *

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

        【讨论】:

          猜你喜欢
          • 2020-05-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-05-03
          • 2017-09-24
          • 2013-03-13
          相关资源
          最近更新 更多