2

我最近开始使用 windmill 和 python 来运行我的 Web 应用程序的自动化测试。这是 windmill 通过记录我的事件自动生成的 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')

(随机,不同)

谢谢!

4

2 回答 2

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')
于 2012-04-07T09:30:13.170 回答
-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 模块提供了一些方便的字符串,它们是 string.uppercase, string.lowercase, string.digits, ... 您可以使用这些方便或编写自己的字符列表。 "".join(L)将列表 L 的所有字母分开,因此您可以在一个字符串中获得字符序列。

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

client.type(text=unicode(get_random_string(20)), id=u'input-999052296848829736')
于 2012-04-07T09:31:48.480 回答