Python新手生成随机字符串

时间:2012-04-07 09:15:39

标签: python string random windmill

我最近开始使用windmill和python来运行我的Web应用程序的自动化测试。这是风车在录制我的事件时自动生成的python脚本:

# Generated by the windmill services transformer
from windmill.authoring import WindmillTestClient
import string
import random

    def test_recordingSuite0():
        client = WindmillTestClient(__name__)

        client.click(id=u'input-999052296848829736')
        client.type(text=u'btsr65ejdfgdjdfg', id=u'input-999052296848829736')
        client.click(id=u'input-999052296848829736-1')
        client.type(text=u'dfgdbdfgdfgjdfgjd', id=u'input-999052296848829736-1')
        client.click(name=u'_u911175390904082714')
        client.select(option=u'1', name=u'_u911175390904082714')
        client.click(value=u'1')
        client.click(id=u'input-497945674625883994')
        client.type(text=u'dfgbhdfbgxcvbz3@asdfvsevsdf54.com', id=u'input-497945674625883994')
        client.click(name=u'_u969737303932735624')
        client.radio(name=u'_u969737303932735624')
        client.type(text=u'asdg9a7e0g57wn4bgwsdfhsdfhsdfhssdhsd', id=u'input-542327653202413691')
        #client.click(name=u'submit')
        #client.waits.forPageLoad(timeout=u'20000')

我是python的新手,我正在努力学习一些语法。但有人可以帮我在各个领域随机输入文字吗?

例如:第2行: 在一个测试我想

client.type(text=u'LAKJSDOGUSDGSDGS', id=u'input-999052296848829736')

和另一个:

client.type(text=u'908374098afsDGSGS', id=u'input-999052296848829736')

(随机,不同)

谢谢!

2 个答案:

答案 0 :(得分:6)

在程序的顶部,导入必要的模块,然后获得要放在随机字符串中的字符列表:

import string
import random

CANDIDATE_CHARS = string.ascii_letters+string.digits  # lowercase and uppercase letters, and digits

在测试功能中,您可以创建一个字母数字字符的随机字符串,如下所示:

random_text = u''.join(random.choice(CANDIDATE_CHARS) for _ in range(16))  # 16 random characters
client.type(text=random_text, id=u'input-999052296848829736')

答案 1 :(得分:-1)

您正在寻找random套餐。它有一个shuffle方法,可以就地清单。

import string, random

def get_random_string(length):
    chars = list(string.lowercase+string.digits)
    random.shuffle(chars)

    return "".join(chars[:length])

for i in range(12):
    print get_random_string(10)

字符串模块提供了一些方便的字符串,它们是string.uppercase,string.lowercase,string.digits,...您可以使用这些字符串以方便使用或编写自己的字符列表。 "".join(L)会将列表L的所有字母分开,因此您可以在一个字符串中获得字符序列。

在您的情况下,您可以使用:

client.type(text=unicode(get_random_string(20)), id=u'input-999052296848829736')