我想知道如何生成随机字符串,例如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)
这样做的目的是制作班级名称' Cucumber'
而不是指定' Cucumber'对于每个测试,是否有一种简单的方法来生成随机的东西,我可以分配给#name字段?也许这可以是一个函数,可以生成与上面其余代码一致的字符串?
理想情况下,这应该在Ruby中。
答案 0 :(得分:0)
一种简单的方法是:
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)