Elasticsearch Randomized testing(随机测试)

x33g5p2x  于2021-03-14 发布在 ElasticSearch  
字(1.2k)|赞(0)|评价(0)|浏览(390)

原文链接 : https://www.elastic.co/guide/en/elasticsearch/reference/5.3/getting-started.html(修改该链接为官网对应的链接)

译文链接 : http://www.apache.wiki/display/Elasticsearch(修改该链接为 ApacheCN 对应的译文链接)

贡献者 : 廖建博

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注释和任意值。每次迭代都不同于使用不同的种子运行。

相关文章