我们使用AngularJS创建了单页面应用程序 . 我们想验证该应用程序的标记 . 问题是标记主要是用脚本生成的,所以如果我们将源代码传递给验证器,结果只是部分的 .
目前,我们正在考虑以下列方式测试页面 .
使用Selenium Web自动化库打开页面 .
做一些行动 .
将当前HTML转储到文件 .
使用独立验证器处理它 .
实现这个流程非常耗时,因为我们需要硬编码使用应用程序的所有方法,所以我想问:还有其他方法吗?
使用 AngularJS 只要您坚持使用 AngularJS 编程模型并坚持以下内容,您应该 NOT 必须验证页面的每个变体,因为 DOM 会更改单页应用程序中的脚本: -
AngularJS
DOM
这些是Angular模板/部分或您可能拥有的任何HTML文件(index.html) . 使用基于 grunt 的html验证器插件,如this,以便grunt工作流可以确保HTML在提交到源代码存储库之前是有效的 . 这样的插件可以验证HTML片段 .
grunt
例如ngSwitch,ngView,ngIf等,而不是使用jQuery或其他机制的任何自定义的东西 .
AngularJS 已经确保了有效的HTML DOM . 这意味着您生成的HTML始终有效 .
您是否考虑过使用Angular e2e:
http://docs.angularjs.org/guide/dev_guide.e2e-testing
这允许您从html访问get / validate元素,如:
expect(element('#email').html()).toBe('something');
来自使用jazmine的Angular文档:
describe('Buzz Client', function() { it('should filter results', function() { input('user').enter('jacksparrow'); element(':button').click(); expect(repeater('ul li').count()).toEqual(10); input('filterText').enter('Bees'); expect(repeater('ul li').count()).toEqual(1); });
});
Update 1
然后你可以尝试类似的东西:
我将此称为GUI级别测试 . Visual Studio具有出色的浏览器记录和回放工具,允许测试人员创建自动化测试,以验证测试人员想要的任何内容 .
这是一段视频:https://onedrive.live.com/?cid=ae5cd7309cccc43c&id=AE5CD7309CCCC43C%21183&sff=1&authkey=%21ANqaLtCZbtJrImU&v=3
您需要使用Premium版本才能执行此操作 . 另外,我听说过关于Selenium的好报道,事实上,MSFT自己已经认可了它 .
3 回答
使用
AngularJS
只要您坚持使用AngularJS
编程模型并坚持以下内容,您应该 NOT 必须验证页面的每个变体,因为DOM
会更改单页应用程序中的脚本: -这些是Angular模板/部分或您可能拥有的任何HTML文件(index.html) . 使用基于
grunt
的html验证器插件,如this,以便grunt工作流可以确保HTML在提交到源代码存储库之前是有效的 . 这样的插件可以验证HTML片段 .例如ngSwitch,ngView,ngIf等,而不是使用jQuery或其他机制的任何自定义的东西 .
AngularJS
已经确保了有效的HTML DOM . 这意味着您生成的HTML始终有效 .您是否考虑过使用Angular e2e:
http://docs.angularjs.org/guide/dev_guide.e2e-testing
这允许您从html访问get / validate元素,如:
来自使用jazmine的Angular文档:
});
Update 1
然后你可以尝试类似的东西:
我将此称为GUI级别测试 . Visual Studio具有出色的浏览器记录和回放工具,允许测试人员创建自动化测试,以验证测试人员想要的任何内容 .
这是一段视频:https://onedrive.live.com/?cid=ae5cd7309cccc43c&id=AE5CD7309CCCC43C%21183&sff=1&authkey=%21ANqaLtCZbtJrImU&v=3
您需要使用Premium版本才能执行此操作 . 另外,我听说过关于Selenium的好报道,事实上,MSFT自己已经认可了它 .