保持量角器浏览器会话有效

问题描述 投票:10回答:2

我到处都看过,但看来我只是一个问这个的人。

如何使量角器中的浏览器会话保持活动状态,而不必每次运行测试时都必须登录。我已将登录逻辑放在onPrepare中,以避免记录每个测试功能

onPrepare: function() {
    var mymodule = require("./e2e/mymodule");
    mymodule.login();
    mymodule.switchToProject("someproject");
}

但是每次我要跳过量角器时,仍然要登录需要3-4秒。有什么主意吗?

我更喜欢chromeOnly: true设置的解决方案,但单独的硒服务器的解决方案也很好

session selenium browser login protractor
2个回答
8
投票

量角器每次运行时都会创建一个全新的Chrome配置文件。在弄乱这一点之前,您需要知道这可以为您的测试提供可靠性:由于它们是从空白表盘开始的,因此每次都将以相同的方式运行。如果您决定使用已经登录的持久性概要文件,那么一旦登录过期,概要文件被删除,或者尝试在另一台计算机上运行它们,您的量角器测试就会开始失败。

就是说,有一种方法可以要求Chrome重新为每次量角器测试重复使用相同的配置文件(包括cookie和所有设置)。在protractor.conf.js中,您将执行以下操作:

capabilities: {
    'browserName': 'chrome',
    'chromeOptions': {
        'args': ['--user-data-dir=/a/random/path']
    }
}

这里的'args'是有效部分。它使您可以在启动Protractor的Chrome版本时将命令行参数传递给它(例如,您可以传入'--start-maximized'以在启动时最大化Chrome)。

用系统上的任何文件路径(从root开始)替换/a/random/path。只需确保您要引用的文件夹已创建。您不需要使用自己的Chrome配置文件路径,这只是不必要的麻烦。在某处创建一个文件夹并使用它。

[Protractor启动Chrome时,它的配置文件将位于您指定的位置,只要您的路径保持不变,它将继续使用它。

请记住,这是浏览器操作,与Selenium或Protractor所做的完全无关。我不知道是否可以使用Firefox或其他浏览器来执行此操作,因为每个人表面上都有自己的存储用户配置文件的方式。


0
投票

如何使量角器中的浏览器会话保持活动状态,而不必每次运行测试时都必须登录。我已将登录逻辑放在onPrepare中,以避免记录每个测试功能]

最佳选择是自行启动Chrome浏览器会话,然后将会话ID提供给量角器。

有多种执行方法

  1. 使用脚本启动浏览器-例如webdriver-reuse-session我创建的内容,我将对其进行扩展以更好地支持这个问题。
  2. 在以下位置使用Selenium Standalone Web界面

让我知道这是否可以解决您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.