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.uppercase、string.lowercase、string.digitsなどの便利な文字列を提供します。これらを便利に使用したり、独自の文字リストを記述したりできます。 "".join(L)リストLのすべての文字を何も分離しないため、1つの文字列で文字のシーケンスを取得します。

あなたの場合、あなたは以下を使うことができます:

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