Javascript 基于量角器的e2e测试Google优化

Javascript 基于量角器的e2e测试Google优化,javascript,selenium,selenium-webdriver,protractor,e2e-testing,Javascript,Selenium,Selenium Webdriver,Protractor,E2e Testing,应实施登录优化,以加快所有e2e测试的执行时间。目前,每次测试完成后,Chrome浏览器将关闭,下次会话登录应再次完成,以便继续进行另一项测试。关于这件事,应该如何改变,应该做什么改变。有什么建议吗 不幸的是,没有关于应用程序工作原理的详细信息,我只能建议一些通用的东西: 通常应用程序在cookie中存储类似会话令牌的内容,您可以尝试获取它,并在重新加载浏览器后重新设置。确保在页面打开后尝试设置cookie。要阅读的文档: browser.manage().addCookie(…) 您可以尝

应实施登录优化,以加快所有e2e测试的执行时间。目前,每次测试完成后,Chrome浏览器将关闭,下次会话登录应再次完成,以便继续进行另一项测试。关于这件事,应该如何改变,应该做什么改变。有什么建议吗

不幸的是,没有关于应用程序工作原理的详细信息,我只能建议一些通用的东西:

  • 通常应用程序在cookie中存储类似会话令牌的内容,您可以尝试获取它,并在重新加载浏览器后重新设置。确保在页面打开后尝试设置cookie。要阅读的文档:
    browser.manage().addCookie(…)

  • 您可以尝试使用所需的凭据从页面发出HTTP请求,这样您将在响应中获得的cookie将被设置为页面。要做到这一点,您可以使用
    browser.executeScript(…)和fetch/XMLhttprequest


不幸的是,没有关于应用程序工作原理的详细信息,我只能提出一些一般性的建议:

  • 通常应用程序在cookie中存储类似会话令牌的内容,您可以尝试获取它,并在重新加载浏览器后重新设置。确保在页面打开后尝试设置cookie。要阅读的文档:
    browser.manage().addCookie(…)

  • 您可以尝试使用所需的凭据从页面发出HTTP请求,这样您将在响应中获得的cookie将被设置为页面。要做到这一点,您可以使用
    browser.executeScript(…)和fetch/XMLhttprequest


您可能会考虑使用不同的selenium节点运行selenium网格。如果在每个测试结束时不运行browser.quit或browser.close,则可以将浏览器实例配置为在selenium网格中无休止地运行。通过使用上述Xotabu4方法,您可以使用
browser.manage().addCookie(…)
设置浏览器cookie。如果需要,您还可以清理浏览器cookies

现在,您正在运行的浏览器实例将拥有用于您正在运行的测试的auth cookie,您将不再需要担心登录问题。如果您使用docker容器在selenium网格中运行它,这些测试会更好,因为您可以监视不同的chrome/firefox节点,以及它们是否死亡或重新启动。您必须以这样的方式配置chrome节点容器:每次重新启动节点时,您都会向浏览器中添加auth Cookie

我给您的另一个建议是在自动化测试环境中禁用身份验证检查,并在不同的环境中测试身份验证。我知道这个建议的质量会因你的申请而有所不同


每个需要登录的测试场景在每次运行任何其他测试之前都会运行登录函数。其中一个共同点是登录功能。如果您将该功能抽象出来并确保该功能正常工作,然后禁用该功能并测试所有其他功能。你会节省很多时间。这里唯一需要确定的是,登录功能以完全相同的方式与应用程序的其他移动部分集成

您可能会考虑使用不同的selenium节点运行selenium网格。如果在每个测试结束时不运行browser.quit或browser.close,则可以将浏览器实例配置为在selenium网格中无休止地运行。通过使用上述Xotabu4方法,您可以使用
browser.manage().addCookie(…)
设置浏览器cookie。如果需要,您还可以清理浏览器cookies

现在,您正在运行的浏览器实例将拥有用于您正在运行的测试的auth cookie,您将不再需要担心登录问题。如果您使用docker容器在selenium网格中运行它,这些测试会更好,因为您可以监视不同的chrome/firefox节点,以及它们是否死亡或重新启动。您必须以这样的方式配置chrome节点容器:每次重新启动节点时,您都会向浏览器中添加auth Cookie

我给您的另一个建议是在自动化测试环境中禁用身份验证检查,并在不同的环境中测试身份验证。我知道这个建议的质量会因你的申请而有所不同

每个需要登录的测试场景在每次运行任何其他测试之前都会运行登录函数。其中一个共同点是登录功能。如果您将该功能抽象出来并确保该功能正常工作,然后禁用该功能并测试所有其他功能。你会节省很多时间。这里唯一需要确定的是,登录功能以完全相同的方式与应用程序的其他移动部分集成