硒;如何运行多个实例并维护不同的会话

Posted

技术标签:

【中文标题】硒;如何运行多个实例并维护不同的会话【英文标题】:Selenium; How to run multiple instances and maintain different session 【发布时间】:2017-07-13 21:23:09 【问题描述】:

我知道我们可以使用 testng 和 selenium 网格在多个浏览器中运行测试。但是,我面临的问题是,第二个浏览器正在使用第一个浏览器的登录会话。

我的意思是,我需要登录一个 Web 应用程序并执行一些功能流自动化。代码已准备好并且可以独立运行。在 Firefox 或 chrome 的两个实例中执行时面临的问题。 Firefox1 首先登录,Firefox2 也在登录步骤之前进行会话。如果 Firefox2 注销,Firefox1 在到达注销步骤之前也会注销。

【问题讨论】:

创建新驱动程序会话的代码是什么? 【参考方案1】:

开箱即用的新 Selenium WebDriver 实例使用空配置文件,除非您另外指定。

听起来您在两次测试运行中都使用同一个用户。当用户注销或登录时,会话状态与所有其他位置相同。因此它再次在同一页面上或注销。我会请开发人员解释会话管理如何为您的应用程序工作。

测试日晒:

您需要为每个并行运行隔离测试数据和/或测试环境。您可以在开始测试之前先为您的测试创建一个新用户。

请参阅this answer 了解更多关于如何将测试相互隔离的想法:https://sqa.stackexchange.com/a/25623/3201

其他读法:

不在隔离反模式中测试:https://sqa.stackexchange.com/questions/8508/what-are-anti-patterns-in-test-automation/8516#8516

【讨论】:

如果我使用相同的配置文件,是否仍然可以更改每个实例的用户代理字符串?? @Anthony 对我来说听起来像是一个新问题。 哦,我一定把他的问题误读为“......并保持会话”。我正在搜索来自谷歌的一堆差异问题【参考方案2】:

很可能当您登录 Web 应用程序时,会将会话存储在永久 cookie 中。您可以在加载网站的 URL 后尝试删除这些 cookie。

webDriver.Manage().Cookies.DeleteAllCookies();

【讨论】:

以上是关于硒;如何运行多个实例并维护不同的会话的主要内容,如果未能解决你的问题,请参考以下文章

在 Elastic Beanstalk 中维护会话

历元 - 并行执行(网格)

如何跨同一个 Web 应用程序的多个实例存储会话信息? [复制]

如何在 Windows 上运行多个 Tor 浏览器实例?

如何使用多个独立实例管理 WildFly/JBoss

如何在同一台机器上运行多个硒测试套件