Создать случайные данные для тестирования - PullRequest
2 голосов
/ 18 ноября 2010

Кто-нибудь знает приложение, которое генерирует XML-файл, заполненный случайными данными?

В моем приложении есть импортер, который должен обрабатывать почти все размеры и структуру XML-файлов, и я бы хотелпроверить это.

Чтобы было ясно;не только имена и значения всех элементов должны быть случайными, но и сама древовидная структура.Должно быть случайное число дочерних ветвей, каждое с дополнительными случайными ветвями и т. Д.

Аналогично, существует ли приложение, которое будет создавать такие же случайные данные для файлов Json?

Ответы [ 2 ]

2 голосов
/ 18 ноября 2010

Шаг 1. Определите шаблон для повторяющихся элементов в XML.

t= string.Template( """<sometag><data>${data}</data><moredata>${moredata}</moredata></sometag>""" )

Шаг 2. Генерация случайных значений.

import random
args = dict(
    data = random.random(),
    moredata= random.random()
)

Шаг 3. Вставьте случайные значения в шаблон.

t.substitute( **args )

Вы можете без особых усилий сгенерировать много случайных XML. Хотите имена вместо цифр?

def random_name( size=8 ):
    return "".join( random.choice(string.ascii_letters) for x in range(size) )

Хотите имена переменной длины?

def random_variable_len_name( mean_size= 8, std_size= 2 ):
    size= int(random.gauss( mean_size, std_size ))
    return random_name( size )

Возможности бесконечны и действительно просты в реализации.


Случайный JSON еще проще.

import json
import random
args = dict(
    data = random.random(),
    moredata= random.random()
)
json.dumps( [args] )        

Если «случайный» вас смущает, учтите это.

t1 = string.Template( """<sometag>${body}</sometag>""" )
t2 = string.Template( """<othertag attr="$attr">$data</othertag>""" )
t3 = string.Template( """<moretag attr="$attr">$data</moretag>""" )
elements = random.randint(0,4)
body= [ random.choice([t2,t3]).substitute( attr=random.random(), data= random_name() ) for x in range(elements) ]
t1.substitute( body="".join( body ) )

Это, например, создаст случайные теги внутри другого тега.

0 голосов
/ 18 ноября 2010

Для файлов XML вы можете рассмотреть Генератор XML от Stylus Studios. Вы должны будете определить структуру XML заранее, но данные будут случайными. Это не бесплатный продукт, но вы можете загрузить пробную версию и посмотреть, соответствует ли она вашим потребностям.

Для генерации случайного JSON хорошее предложение было размещено на SO здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...