重用Jasmine块之间的身份验证状态

时间:2015-04-07 13:22:00

标签: selenium jasmine protractor end-to-end

我的应用要求用户通过提交表单进行登录。我想知道在我的测试中最好的地方是什么。我提出了一些选择:

  1. beforeEach块中登录(以及afterEach块中的注销)
  2. 在每个beforeAll的{​​{1}}块中登录(并在每个describe的最后afterAll中注销)

    describe
  3. 在主 describe('APP', function () { describe('FEATURE 1', function () { beforeAll(function () { //sign in }); afterAll(function () { //sign out }); //... }); }); 的{​​{1}}内完成整个测试的登录一次

    beforeAll
  4. 数字1 是最慢的,数字2 更快,数字3 是最快的,但您需要有一个条目对你的测试跑步者来说 - 不理想。那么哪个更好,为什么?

1 个答案:

答案 0 :(得分:0)

这是一个不同的问题。

最佳做法是在每个测试用例之后关闭浏览器,这肯定是运行测试的最慢方式。但是你将获得最清晰,最公平的测试。当然,你可以使用硒网格并平行你的测试,这肯定不会超出你的期望。

有时你有一个应用程序,逻辑并不是那么依赖于彼此,你可能希望将UI测试运行到预提交钩子中,以防止任何事情进入分支。然后方法n.3将不会那么糟糕(你应该知道的唯一事情是每次测试后你应该在浏览器中删除cookie,会话变量和其他工件)。

无论如何,这取决于你,但是一个常见而且最好的做法是在每次测试时打开一个清晰的新浏览器。