有誰知道一個應用程序會生成一個填充隨機數據的XML文件?創建隨機數據進行測試
我的應用程序有一個導入程序,它應該可以處理幾乎所有的xml文件的大小和結構,我想測試它。
要清楚;不僅所有的元素名稱和值都需要是隨機的,而且樹形結構本身也是如此。應該有隨機數的子分支,每個子分支具有更多的隨機分支,等等。
同樣,是否有一個應用程序可以爲Json文件創建相同類型的隨機數據?
有誰知道一個應用程序會生成一個填充隨機數據的XML文件?創建隨機數據進行測試
我的應用程序有一個導入程序,它應該可以處理幾乎所有的xml文件的大小和結構,我想測試它。
要清楚;不僅所有的元素名稱和值都需要是隨機的,而且樹形結構本身也是如此。應該有隨機數的子分支,每個子分支具有更多的隨機分支,等等。
同樣,是否有一個應用程序可以爲Json文件創建相同類型的隨機數據?
第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))
例如,這將在另一個標籤內創建隨機標籤。
對於XML文件,您可能要考慮Stylus Studios的XML Generator。您必須提前定義XML結構,但數據將是隨機的。這不是免費的產品,但您可以下載試用版並查看它是否符合您的需求。
爲了生成隨機JSON,在SO here上發佈了一個很好的建議。
這不僅僅是應該是隨機的值,還有樹結構。 (具有隨機數的子元素的元素,以及具有隨機數的子元素的每個子元素等等。) – 2010-11-18 18:47:58
@sprocketonline:很容易爲各種XML片段創建模板並將它們按隨機順序或隨機元素存在或不存在。 – 2010-11-18 18:52:40