angularjs - 构建我的测试文件夹/方法

标签 angularjs selenium testing webdriver protractor

我已经开始为我的团队创建测试自动化(Selenium,现在使用 Protractor )。我是一名手动测试员,目前正在提升我的技能。

我正在从事的项目是一个具有 2 个帐户/门户的网络应用程序。一个给客户,另一个是管理员。我用这种结构编写了我的测试

test folder
---Client Tests
-----ValidLogin_test
-----InvalidLogin_test
-----ForgotPassword_test
-----other test...
---Admin Tests
-----ValidLogin_test
-----InvalidLogin_test
-----ForgotPassword_test
-----other test...

现在我的问题是我们现在正在创建一个 angularJS 应用程序,我需要支持它。现在,我不确定如何设计它。我应该先分开平台然后再分开帐户类型吗?还是先是账户类型,然后是平台?

如果您有什么可以推荐我学习或关注的东西,我将不胜感激您抽出宝贵的时间,因为我非常有兴趣为了可扩展性而学习它。

*我决定不在这一个和实用程序中包含页面对象,以使其更简洁。但它们位于客户端和管理员测试文件夹(同一级别)内的文件夹中。

最佳答案

您是否有 1 个应用程序根据登录的人表现不同?或 2 个应用程序,一个由管理员使用,一个由客户使用?

我非常喜欢将测试用例分解为应用程序的逻辑区域,包括手动和自动测试用例。重要的是尽量减少重复的测试步骤和/或代码。

假设您有两个不同的应用程序:管理门户和客户端应用程序。我在每个区域中组成了一些区域。我建议进行类似于以下的分割。

管理门户

登录

  • 登录 - 成功
  • 登录 - 密码无效
  • 登录 - 最大无效尝试

用户

  • 用户 - 当前用户信息
  • 用户 - 排序
  • 用户 - 过滤器
  • 添加

    -- 用户-添加-成功

    -- 用户--添加--现有用户

    -- 用户 - 添加 - 无效的用户名

群组

安全

然后我会为客户端应用程序做类似的事情。根据工作流程分解文件夹结构。

对于自动化( Protractor )测试,我建议使用类似于以下的文件夹结构: 规范

  • 登录.spec.js
  • Users.spec.js

页面对象

  • 登录.page.js
  • Users.page.js

您可以根据应用程序的大小/复杂性按需要分解规范/页面对象文件。最重要的是从您可以使用页面对象的内容中获得重用。页面对象将包含应用程序或页面那部分元素的定位器,以及可以从规范文件调用的可重用函数。规范文件包含所有测试用例。您可以将其视为用于测试的逻辑分组/文件夹。

由于您使用的是 Angular 应用程序,因此您不需要为每个运行的平台创建一个单独的部分。您希望运行测试的每个浏览器都应该使用配置文件进行配置。如果出于某种原因,行为在浏览器上有所不同,我会建议在测试中传递一个环境变量,以配置测试在哪个浏览器上运行,并根据需要处理规范/页面对象中的那些特定场景。不过,我希望这种情况不会太多。

关于angularjs - 构建我的测试文件夹/方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36845962/

相关文章:

java - WebDriver FluentWait - 函数/谓词可以抛出异常吗?

ruby - coffeescript 中的 stub 函数

go - 如何模拟嵌套的第三方依赖项?

unit-testing - 仅在质量保证测试完成后才创建单元测试是否可以接受?

javascript - 移动 Safari/Chrome 上 Angular 应用程序中的严重键盘滞后

javascript - 测试期间单向绑定(bind)指令属性的更改不更新指令范围

javascript - 更改 Angular Directive(指令)中属性的值

javascript - 在 ng-repeat 中过滤错误消息?

selenium - Protractor 5.1.1 selenium-webdriver 版本不一致

javascript - 如何在 python 中使用 selenium 和 javascript 跟踪鼠标事件和位置?