💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# Randomized testing(随机测试) 原文链接 : [https://www.elastic.co/guide/en/elasticsearch/reference/5.3/getting-started.html](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/getting-started.html)(修改该链接为官网对应的链接) 译文链接 : [http://www.apache.wiki/display/Elasticsearch](http://www.apache.wiki/display/Elasticsearch)(修改该链接为 **ApacheCN** 对应的译文链接) 贡献者 : 廖建博,[ApacheCN](/display/~apachecn),[Apache中文网](/display/~apachechina) ## Randomized testing(随机测试) 您目前看到的代码片段都没有显示随机测试功能,因为它们被小心隐藏在hood下。 但是,当您编写自己的测试时,您也应该使用这些功能。 在开始之前,您应该要知道,如何重复使用相同设置的失败测试,如何失败的。 幸运的是,这很容易,因为整个mvn调用与失败的测试都将一起记录,这意味着你可以简单地复制和粘贴该行并运行测试。 ## generating random data(生成随机数据) 下一步是把使用静态测试数据的测试,转换为使用随机测试数据的测试。您可以随机化的数据类型与您正在测试的功能有很大的不同。看看下面的例子(注意,这个列表可以继续页面,因为分布式系统有许多很多移动的部分): 使用任意UTF8符号搜索数据 每次运行时更改映射配置,索引和字段名称 每次运行时更改响应大小/可配置限制 创建索引时更改碎片/副本的数量 那么,你如何创建随机数据。最重要的事情是,你不应该实例化自己的随机实例,而是使用随机化测试中提供的随机实例,所有弹性搜索依赖测试类都从该实例继承。 | `getRandom()` | 返回随机实例,可以在使用特定参数调用测试时重新创建 | | `randomBoolean()` | 返回随机布尔值 | | `randomByte()` | 返回一个随机字节 | | `randomShort()` | 返回随机短 | | `randomInt()` | 返回一个随机整数 | | `randomLong()` | 返回一个随机长 | | `randomFloat()` | 返回随机浮点数 | | `randomDouble()` | 返回一个随机的double | | `randomInt(max)` | 返回0和max之间的随机整数 | | `between()` | 返回提供的范围之间的随机值 | | `atLeast()` | 返回至少为指定整数的随机整数 | | `atMost()` | 返回最多指定整数的随机整数 | | `randomLocale()` | 返回随机区域设置 | | `randomTimeZone()` | 返回随机时区 | | `randomFrom()` | 从列表/数组返回一个随机元素 | 此外,还有几种帮助方法,可以创建随机ASCII和Unicode字符串,请参阅随机测试类中以randomAscii,randomUnicode和randomRealisticUnicode开头的方法。后者尝试通过非任意随机创建更真实的unicode字符串。 如果要调试特定随机种子的特定问题,可以使用@Seed注释配置特定种子进行测试。如果要多次运行测试,而不是重复启动整个测试套件,可以使用@Repeat注释和任意值。每次迭代都不同于使用不同的种子运行。