我已经开始为我的团队创建测试自动化(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/