在 Selenium Test Automation 中使用符号或不使用符号定义 Css 选择器之间的性能优势?

Performance advantage between defining Css Selector using symbols or not using symbols in Selenium Test Automation?

在自动化中,虽然我们使用CSS来定义页面元素,但我们可以为示例页面元素定义如下方式:

element :fld_page_element, "#uniqueID .some-class-name"

或者,

element :fld_page_element, "[id='uniqueID'] [class='some-class-name']"

其中#符号代表ID,.表示 class 属性名称。

当测试自动化出现时,它们在性能方面有什么区别?还是使用其他有什么优势?如果是,请与我分享。

我认为,您正在尝试进行过早的优化。

当您设计测试时,您应该以最好的 "user"(即开发人员)体验为目标 - 编写可读的测试,当失败时,它会显示一个清晰的消息。正如评论中所说,您可能会花费大量时间调试编写奇怪的测试,这可能是相同测试的 "slow but readable" 版本 运行.

的十倍时间

如果您发现您的测试套件太慢,请使用您的测试框架提供的工具找出最慢的测试(rspec 可以显示最慢测试的列表,minitest,如果我记得的话正确,包含对某些东西进行基准测试等的工具)并优化它们。不过,大多数时候,您会发现这些测试速度很慢的原因与您所说的原因不同。

更新: 抢劫一下:http://www.shouldioptimize.com/

它允许您检查您可以购买多少 AWS EC2 实例时间的计算小时数,以支付您每小时 customer/company 支付的费用。

来自他们的"Why" page

Microbenchmarks and language wars are fun and all, but does it really matter whether it takes 5 seconds or 0.5 seconds to calculate a million things? Maybe. Most of the time, probably not. If you're wondering whether you should spend time thinking about how to make your code faster or maybe spend that time making your code easier to read and change later, you might consider how much it actually costs to simply throw processing time at the problem.

(注意图像 header 中的 "across FIVE YEARS" 内容)