2016-02-11 82 views
1

我是Selenium Automation的新手。我的公司正在关注DevOPS的软件交付。虽然我很喜欢使用框架并自动执行一些简单的测试,但我不知道在Enterprise Web Application中可以自动执行多少功能。我们使用Java,Cucumber,Junit和Jenkins进行测试自动化。可有人好心回答下面的问题,并给我指导使用Selenium测试企业Web应用程序

  1. 我的应用程序的前端使用ExtJS的,并与Java/Oracle的后端开发。我的应用程序中有工作流程自动化,它们使用Redhat JBoss业务流程管理(JBPM)实施。多年来,我一直在手动测试这些工作流程自动化。现在有一个很强的自动化他们。这些工作流程自动化由事件或定时器到期触发。我如何使它们自动化?

  2. 在我的应用程序中有测试,我在我的应用程序中执行某些活动,必须等待一段时间后再继续。这些是自动化的合适人选吗?在继续之前,我应该让Selenium等待吗?

  3. 我们将实施CA LISA以实现服务虚拟化。 Selenium是测试这些虚拟化服务的正确工具吗?

  4. 对于每个测试用例,我设置浏览器,登录并执行测试。一旦测试结束,我会通过注销并关闭浏览器来进行拆解。这是正确的方法吗?

问候 薇思瓦纳

回答

1

这是一个非常广泛的话题,但是从我的经验,任何作品通过HTTP可以非常有效地自动化。这涵盖了主流浏览器中的HTML,Javascript和CSS,并且通过在Java中使用正确的工具和库,您可以涵盖诸如HTTP(S),XML,JSON,YAML,FTP,SMTP,SSL等所有相关技术,更不用提JDBC等人。

单元测试跑步者,端到端测试跑步者和其他框架的各种组合可以与用于BDD的Cucumber(等)和Jenkins(等)用于CI和自动化/过夜测试,针对本地浏览器,本地网格和基于云的网格。

最重要的资产是经验丰富的网络开发人员了解完整堆栈(至少)来自HTTP向上。教他们WebDriver应该完成他们的知识,并让他们能够提出自动化解决方案来满足您几乎所有的需求。

那么,现在回答你的问题:

  1. 可以。希望以上的帮助。上述带JavaScript的Web开发人员,完整的Java堆栈和WebDriver应该没问题。 AngularJS的覆盖范围很广,但也有ExtJS,并且可以运行任何原生JavaScript。
  2. 随着整个堆栈控制客户端浏览器,你有两全其美。您可以在各个级别发出等待:预定测试,客户端等待等。
  3. Apparently, yes
  4. 这是最简单的情况,是的,但随着您的需求扩展,您可能需要编写代码或选择框架,这样可以更好地控制浏览器实例以最大限度地减少延迟。正确完成,这可以非常有效。做得很糟糕(或根本没有),你可能会遇到一个缓慢的,不可扩展的混乱。以下是对于严肃的企业解决方案的单挑,您还需要管理测试数据集
0

关于问题(4):你说的是正确的,但是你可以通过避免在每个测试中关闭和打开浏览器来提高执行时间,例如你可以删除所有的cookie(取决于具体情况,这可能就够了)。

与Andrew提到的数据集有关,在某些情况下,我使用DBUnit负责为每个测试加载相应的数据集。

更笼统地说,我总是尽量避免自动测试出现在网络演示中,因为它们往往非常脆弱(UI中的细微变化可能会导致测试失败),与其他类型相比,它们的成本也很高的测试。我更喜欢单元测试和皮肤下测试(就在演示文稿下方,就像打REST API一样)。