硒;如何运行多个实例并维护不同的会话
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();
【讨论】:
以上是关于硒;如何运行多个实例并维护不同的会话的主要内容,如果未能解决你的问题,请参考以下文章