Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium 硒最佳实践:一个长测试还是几个连续的长测试?_Selenium - Fatal编程技术网

Selenium 硒最佳实践:一个长测试还是几个连续的长测试?

Selenium 硒最佳实践:一个长测试还是几个连续的长测试?,selenium,Selenium,在Selenium,我经常做一些测试,比如 // Test #1 login(); // Test #2 login(); goToPageFoo(); // Test #3 login(); goToPageFoo(); doSomethingOnPageFoo(); // ... 在单元测试环境中,您希望对每个部分进行单独的测试(即一个用于login,一个用于goToPageFoo,等等),这样当测试失败时,您就可以确切地知道出了什么问题。然而,我不确定这是否是硒的良好实践 这似乎导

在Selenium,我经常做一些测试,比如

// Test #1
login();

// Test #2
login();
goToPageFoo();

// Test #3
login();
goToPageFoo();
doSomethingOnPageFoo();

// ...
在单元测试环境中,您希望对每个部分进行单独的测试(即一个用于
login
,一个用于
goToPageFoo
,等等),这样当测试失败时,您就可以确切地知道出了什么问题。然而,我不确定这是否是硒的良好实践

这似乎导致了大量的冗余测试,“知道哪里出了问题”的问题似乎并不那么糟糕,因为通过查看测试的步骤通常可以清楚地知道哪里出了问题。当然,运行一系列“构建”测试所需的时间比只运行最后一个(“构建”)测试所需的时间要长


是我遗漏了什么,还是我应该只做一个长测试,跳过所有短测试?

我已经用Selenium构建了一个大型测试套件,使用了许多较小的测试(如您的代码示例中)。我做这件事的原因和你完全一样。了解测试失败时“出了什么问题”

这是标准单元测试的常见最佳实践,但如果我必须重新进行,我将主要采用第二种方法。需要时,进行较大的组合测试和一些较小的测试

原因是Selenium测试的运行时间比标准单元测试长一个数量级,特别是在更长的场景中。这使得整个测试套件的时间长得难以忍受,大部分时间都花在反复运行相同的冗余代码上


当您确实出现错误时,比如在20多个不同测试开始时重复的步骤中,如果知道您出现了20多个相同的错误,这并没有真正的帮助。我的测试运行程序按顺序运行我的测试,因此我的第一个错误甚至不在“构建”系列的第一个增量测试中,因此我最终查看了第一个测试失败及其错误消息,以了解失败的原因。如果我使用更大的“组合”测试,我也会做同样的事情。

太好了,谢谢。我知道对于这样一个主观的问题,我无法得到一个规范的答案,但即使是你的(主观的)答案,作为一个有经验的人,真的帮助我感觉我不会因为使用更长的测试而制造一个巨大的混乱。