什么是硒点?

GBa*_*GBa 28 testing selenium unit-testing

好吧,也许我错过了什么,但我真的没有看到Selenium的观点.使用代码打开浏览器,使用代码单击按钮以及使用代码检查文本有什么意义?我阅读了网站,我看到理论上如何自动对您的Web应用程序进行单元测试,但最终不是花费更多的时间来编写所有这些代码而不是仅仅点击并在视觉上验证工作是否正常?

我不明白......

egl*_*ius 44

它允许您在"单元"测试框架中编写功能测试(问题是后者的命名).

当您通过浏览器测试应用程序时,通常会对系统进行完全集成测试.考虑到你必须在提交之前测试你的更改(冒烟测试),你不想一遍又一遍地手动测试它.

非常好的一点是,你可以自动化你的烟雾测试,QA可以增加那些.非常有效,因为它减少了重复工作并使整个团队更加接近.

Ps就像你第一次使用学习曲线时所使用的任何练习一样,所以通常第一次需要更长的时间.我还建议您查看Page Object模式,它有助于保持测试清洁.

更新1:请注意,测试还将在页面上运行javascript,这有助于测试高度动态的页面.另请注意,您可以使用不同的浏览器运行它,因此您可以检查跨浏览器问题(至少在功能方面,因为您仍然需要检查可视化).

另请注意,随着测试所涵盖的页面数量的增加,您可以快速创建具有完整交互周期的测试.使用Page Object模式,它们看起来像:

   LastPage aPage = somePage
      .SomeAction()
      .AnotherActionWithParams("somevalue")
      //... other actions
      .AnotherOneThatKeepsYouOnthePage(); 
  // add some asserts using methods that give you info
  // on LastPage (or that check the info is there).
  // you can of course break the statements to add additional 
  // asserts on the multi-steps story.
Run Code Online (Sandbox Code Playgroud)

重要的是要明白你是逐步的.如果它是已构建的系统,则为正在处理的功能/更改添加测试.在此过程中添加越来越多的覆盖范围.反过来,通常会隐藏您错过的测试内容,因此如果您做出了影响每个页面的更改并且您将检查一个子集(时间不允许),您就会知道您实际测试了哪些并且QA可以从中工作那里(希望通过添加更多的测试).


EBG*_*een 21

对于一般的单元测试,这是常见的事情."我需要编写两倍的代码用于测试?" 同样的原则适用于此.回报是能够改变你的代码并知道你没有破坏任何东西.


Luk*_*uke 15

因为您可以一遍又一遍地重复SAME测试.


Haw*_*ger 9

如果您的应用程序甚至超过50页,并且您需要经常构建并针对X个主要浏览器进行测试,那么这很有意义.

  • 每次更改包含在所有50个页面上使用的实用程序功能的库文件时. (6认同)
  • 或者在我们的应用程序中它实际上是200多页.人类需要几天时间才能完全回归. (2认同)

Lee*_*e B 5

想象一下,你有50个页面,每个页面都有10个链接,还有一些有多阶段表单需要你浏览表格,输入大约100种不同的信息来验证它们是否能正常使用所有信用卡号码,所有地址在所有国家等

这几乎不可能手动测试.它变得非常容易出现人为错误,你不能保证测试是正确的,更不用说测试证明了被测试的东西.

此外,如果按照现代发展模式,许多开发人员在同一站点的所有工作在断开连接的,分布式的方式(一些从他们的笔记本电脑在网站上工作,而在飞机上,例如),那么人类的测试人员不会甚至能够访问它,更不用说每次开发人员尝试新事物时都要耐心重新测试.

在任何体面的网站上,测试都必须自动化.