3

我正在使用 unittest 和 selenium 来自动化我的浏览器测试。

我将如何进行可以多次运行的测试,其中用户创建票证。票必须有一个标题名称,每次我运行测试时,我都希望标题名称是随机的。

我想要格式:“测试票,1 | 测试票,2...”

4

4 回答 4

8

faker模块提供了一些功能来填充几种不同类型的数据:

import faker
f = faker.Faker()

In [11]: f.
f.city            f.full_address    f.phonenumber     f.zip_code
f.company         f.last_name       f.state
f.email           f.lorem           f.street_address
f.first_name      f.name            f.username

In [11]: f.city()
Out[11]: u'Treyview'

.

如果你要随机测试,我建议随机生成一个种子(并记录它),这样你就可以重新创建任何失败的测试。您不想要的是失败的测试,但不清楚原因(即,如果再次测试,使用不同的随机值,则通过)。

于 2013-05-21T22:39:38.153 回答
2

如果您只需要字符串Test ticket,1 ...,它是:

from random import randint
randomString = "Test ticket, " + randint(min,max)

如果你想生成随机字符串,你可以使用

''.join(random.choice(string.ascii_uppercase + string.digits) for x in range(max))

您可能还想考虑防止字符串相等。在这种情况下,您可以创建一个range(min,max)并使用random.shuffle()

于 2013-05-21T22:32:39.107 回答
0

您可以在测试中定义以下函数:

import random, string

def random_word(self, length=6, chars=string.ascii_lowercase):
   return ''.join(random.choice(chars) for i in range(length))

def random_id(self, size=6, chars=string.ascii_uppercase + string.digits):
    return ''.join(random.choice(chars) for _ in range(size))

def random_number(self, length=3):
    return ''.join(random.choice(string.digits) for i in range(length))

和类似的。

也可以看看:

于 2015-05-12T20:30:35.450 回答
0

faker已被弃用,您应该改用fake-factory

pip install fake-factory

使用与之前相同的方法:

from faker import Factory
fake = Factory.create()

# OR
from faker import Faker
fake = Faker()

fake.name()
# 'Lucy Cechtelar'

或者使用本地化数据(例如,生成意大利名称):

from faker import Factory
fake = Factory.create('it_IT')
for _ in range(0,10):
print fake.name()

> Elda Palumbo
> Pacifico Giordano
> Sig. Avide Guerra
> Yago Amato
> Eustachio Messina
> Dott. Violante Lombardo
> Sig. Alighieri Monti
> Costanzo Costa
> Nazzareno Barbieri
> Max Coppola
于 2016-09-05T22:17:17.287 回答