Angularjs 与大型量角器测试套件的持续集成

Angularjs 与大型量角器测试套件的持续集成,angularjs,continuous-integration,protractor,travis-ci,browserstack,Angularjs,Continuous Integration,Protractor,Travis Ci,Browserstack,我们有一个应用程序,开发3个月,由2名开发人员开发。该网站相对较小,仅完成了三分之一,但测试相当全面 当以串行方式运行时,在我们的开发人员机器上运行量角器需要60分钟,而使用2个并发会话运行分片时,则不到40分钟 在2个并发会话中对具有6个兼容性的BrowserStack运行量角器不到4小时 外推完成产品的这些测试时间(即4小时+200%)意味着总测试时间约为12小时。这超过了travis-ci.com上的120分钟限制,使我们在Browserstack上进入999美元/月的价位。这也意味着,任

我们有一个应用程序,开发3个月,由2名开发人员开发。该网站相对较小,仅完成了三分之一,但测试相当全面

当以串行方式运行时,在我们的开发人员机器上运行量角器需要60分钟,而使用2个并发会话运行分片时,则不到40分钟

在2个并发会话中对具有6个兼容性的BrowserStack运行量角器不到4小时

外推完成产品的这些测试时间(即4小时+200%)意味着总测试时间约为12小时。这超过了travis-ci.com上的120分钟限制,使我们在Browserstack上进入999美元/月的价位。这也意味着,任何更改(包括错误修复)最多需要12小时才能显示为实时


其他人是否也会遇到同样的问题?如果是,他们如何解决这些问题?

在我看来,要么你应该改变你的测试策略,通过运行SanitySuite开始发布新的功能/bug,要么你可以选择最为重要的几个平台来运行整个测试。我知道这不是一个发布功能的理想方式,但至少它会给你很大的信心继续下去


第二种选择是使用CI工具中的多个作业在不同的平台上运行测试,如果有任何财务限制,那么我会说让我们有一个本地CI工具设置。也许你可以选择Jenkins。

我们刚刚完成了这种CI实现(TFS+Jenkins)。我们还使用Browserstack,在上一个项目中,我们有大约150个e2e测试。执行这些测试也需要相当长的时间。所以我们所做的决定不是在每次提交之后执行这些测试,而是在每天的基础上作为夜间工作执行。早上可以查看结果并查看smth是否出错/构建失败的原因。我们使用最便宜的计划,我们有4个不同的配置文件(chrome/safari/firefox/iOS),每个配置文件有4个浏览器/平台设置。实际上有一点棘手:即使你有最便宜的browserstack计划,你也可以并行执行4个测试而不出任何问题


顺便说一句,我们使用了Git+Bitbucket+Babmoo,在您建议的新发布策略中,它比TFS+Jenkins更为用户友好

,您还会在某个时候运行整个套件吗?如果是的话,什么时候/多久一次?我想说,只有当有高优先级的东西要发布,并且您希望在所有平台上测试该功能时,才使用sanity选项。理想情况下,SanitySuite的执行时间不应超过整个套件执行时间的10%。我总是选择只在重要的平台上运行整个测试,并且在每晚都应该在所有平台上运行整个测试。我们在CI工具中配置它,每天下午6点运行测试,第二天早上6-7点结束,所以我们到达办公室时会得到完整的报告。我是BrowserStack的Mukul。我们最近发布了一个版本,允许您轻松地将Jenkins CI服务器与BrowserStack集成。希望这有帮助!