【发布时间】:2020-12-17 08:49:56
【问题描述】:
我正在寻找一种方法来生成用于测试目的的随机数据(大约 10000 个文件)。对于这个测试,我有一个 json 模式。
生成 JSchema:
RunTest(){
JSchemaGenerator generator = new JSchemaGenerator();
JSchema schemaBuilding = generator.Generate(typeof(TestClass));
}
代码本身在 C# 中,所以理想情况下我会有一个 C# 代码来执行此操作,尽管 Python 解决方案也是可接受的。我发现了一些关于这个主题的问题得到了websites 或者只关注一个前缀sample 但我找不到如何在 C# (或者最好是 python)中做到这一点,任何人都有任何好的方法这样做?
至于这样做的原因:它有两个方面:1 这是通过输入大量随机数据来寻找我们没有想到的边缘情况来测试系统的稳定性;2 这是负载测试。 (所以基本上是烟雾+负载测试)
【问题讨论】:
-
如果有人有任何无法回答的问题或建议,请随时发表评论。
-
想一想。如果您正在生成您知道适合 JSON Schema 的 JSON,那么您真的在测试 JSON Schema 吗?您最好根据您认为架构应该执行的操作手动生成 JSON。这样你就可以实际测试它,而不是对测试抱有错误的信心,因为只有在模式改变时才会失败。
-
@Relequestual 模式本身是使用静态代码分析生成的(并且是动态的),并且模式后面隐藏着相当大的代码库,我对测试解析并不感兴趣,但是而是隐藏在解析器后面的所有代码。我知道手动制作 JSons 更好,但考虑到整个事情的大小,目前不太实用(时间限制)并针对已知问题区域和大量随机 json 运行选择测试(在崩溃时查看日志) ) 希望能提供一些保护。
-
我可以理解以上所有内容。即使你成功地做到了你想做的事,也只会给你一种虚假的安全感。实际上,您将要测试的只是 JSON 生成是否根据模式正常工作。基于模式生成 JSON 是其他事情的一个很好的起点。直接使用它们对模式进行测试就像测试 1 === 1。
-
既然你有这个类,也许你这将是有用的github.com/nickdodd79/AutoBogus,它会给你一个对象,然后你可以将它序列化为 json....
标签: python c# json jsonschema