TestNG 数据提供者优化
TestNG dataprovider optimizations
我们的数据提供程序旨在根据传入的某些键值从 Excel 文件中检索单行数据。这对于我们的测试套件来说效果很好,其中包含约 15 个测试,但是在接下来的几个月里,测试将增长到几百个,因此我担心每次测试访问一次 excel 文件的影响(是的,excel 文件将有一行对于每个测试)。
从 performance/resource 的角度来看,这是一个合理的担忧吗?如果是这样,人们如何衡量它? (我在 mac)。
使用@BeforeClass 方法,我可以轻松地将 excel 文件中的所有数据加载到一个对象中,并让数据提供者从该对象中检索数据。但是同样,我不知道在内存中存储那么多数据会产生什么开销。
是否有针对此数据的最佳实践?
如果您想使用数据提供程序,那么这是唯一的实现方式,因为在调用您的任何测试之前,数据提供程序会读取文件并将数据加载到内存中,然后 returns 和 Object[][]
。
而且我认为这不会增加内存开销,当然如果您有 hundreds/thousands 数据,那么 Data Provider 是最佳实践,它不应该影响您的性能。
我们的数据提供程序旨在根据传入的某些键值从 Excel 文件中检索单行数据。这对于我们的测试套件来说效果很好,其中包含约 15 个测试,但是在接下来的几个月里,测试将增长到几百个,因此我担心每次测试访问一次 excel 文件的影响(是的,excel 文件将有一行对于每个测试)。
从 performance/resource 的角度来看,这是一个合理的担忧吗?如果是这样,人们如何衡量它? (我在 mac)。
使用@BeforeClass 方法,我可以轻松地将 excel 文件中的所有数据加载到一个对象中,并让数据提供者从该对象中检索数据。但是同样,我不知道在内存中存储那么多数据会产生什么开销。
是否有针对此数据的最佳实践?
如果您想使用数据提供程序,那么这是唯一的实现方式,因为在调用您的任何测试之前,数据提供程序会读取文件并将数据加载到内存中,然后 returns 和 Object[][]
。
而且我认为这不会增加内存开销,当然如果您有 hundreds/thousands 数据,那么 Data Provider 是最佳实践,它不应该影响您的性能。