python中用于测试自动化的随机数据

python中用于测试自动化的随机数据,python,selenium,automation,webdriver,Python,Selenium,Automation,Webdriver,我正在使用unittest和selenium自动化浏览器测试 我该如何做一个可以运行多次的测试,用户在其中创建一个票证。票证必须有一个标题名,每次运行测试时,我都希望标题名是随机的 我想要格式:“测试票,1 |测试票,2…”如果您只需要字符串测试票,1…它是: from random import randint randomString = "Test ticket, " + randint(min,max) 如果要生成随机字符串,可以使用 ''.join(random.choice(str

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

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


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

如果您只需要字符串
测试票,1…
它是:

from random import randint
randomString = "Test ticket, " + randint(min,max)
如果要生成随机字符串,可以使用

''.join(random.choice(string.ascii_uppercase + string.digits) for x in range(max))
您可能还想考虑防止字符串相等。 在这种情况下,您可以创建一个
范围(最小,最大)
并使用
随机.shuffle()

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

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'


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

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

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))
类似的

另见:

    • 已被弃用,您应该改用

      使用与之前相同的方法:

      from faker import Factory
      fake = Factory.create()
      
      # OR
      from faker import Faker
      fake = Faker()
      
      fake.name()
      # 'Lucy Cechtelar'
      
      或使用本地化数据(例如,生成意大利语名称):


      你有什么问题吗<代码>票1,
      票2
      。。。你展示的例子看起来不是很随意。还有,这种格式是描述一张票,一张用逗号分隔的票列表,一张用管道分隔的票列表,还是…什么?请不要太含糊地描述预期的输出。一张票证,每次我运行测试时,它应该创建一张票证。还包括其他步骤,但我只想介绍名称部分。我相信这真的很简单,但我不感谢你的建议,我不知道你随机生成一个种子是什么意思,你能提供一些代码让我看看:)。我猜当我拿到票单并发送钥匙时,这就是我需要一台发电机的地方?@JacobHong我想知道你是否真的想要……这比我想要的要多,我正在研究文件谢谢:)@JacobHong我想我只是想改变我的答案。。。令人烦恼的是,它似乎没有提供种子功能。。。然而,我把一个python模块放在了一起,它有更好的语言环境支持(使用ruby的数据),但我还没有把它放在cheese shop中:谢谢,这正是我想要的,我想补充一个问题。如何使测试用例运行多次?只是加个循环什么的?
      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