我想知道如何生成一个随机字符串,例如TufwGfXZskHlPcYrLNKg
。
这将用于在我们的应用程序中创建一个新的教学类,但是出于测试目的,我想为每个创建的类分配一个随机名称。
目前,我使用application.yml
文件中其他位置保存的变量,例如
qa_newclass_name: 'Cucumber'
在测试期间,我将其分配给以下步骤: @wait.until {@driver.find_element(:css => '#name').click} @driver.find_element(:css => '#name').send_keys (Figaro.env.qa_newclass_name)
这将使类名为“黄瓜”。
除了为每个测试指定“黄瓜”之外,还有没有一种简单的方法可以生成可以分配给#name字段的随机数?也许这是一个可以与上面的其余代码内联地生成字符串的函数?
理想情况下,这应该在Ruby中。
一种简单的方法是:
require 'securerandom'
@driver.find_element(...).send_keys (SecureRandom.urlsafe_base64(5).gsub(/[^a-z ]/i, '').upcase)
正则表达式是必需的,因为它#urlsafe_base64
可能会生成类似-
和的字符_
。必须使用大写,因为您要定义一个常量,小写字母可能是按原样排列的随机字符串的第一个字符。
没有必需的模块和正则表达式的解决方案可能类似于:
@driver.find_element(...).send_keys ((5.times).map{(65 + rand(26)).chr}.join)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句