我知道我们可以使用TestNG和Selenium Grid在多个浏览器中运行测试。但是,我面临的问题是第二个浏览器正在使用第一个浏览器的登录会话。
我的意思是,我需要登录到一个Web应用程序并执行一些功能流程自动化。代码已准备好并且独立运行良好。但在两个Firefox或Chrome实例中执行时出现问题。Firefox1首先登录,Firefox2在登录步骤之前也获取了会话。如果Firefox2注销,则Firefox1在到达注销步骤之前也注销了。
我知道我们可以使用TestNG和Selenium Grid在多个浏览器中运行测试。但是,我面临的问题是第二个浏览器正在使用第一个浏览器的登录会话。
我的意思是,我需要登录到一个Web应用程序并执行一些功能流程自动化。代码已准备好并且独立运行良好。但在两个Firefox或Chrome实例中执行时出现问题。Firefox1首先登录,Firefox2在登录步骤之前也获取了会话。如果Firefox2注销,则Firefox1在到达注销步骤之前也注销了。
默认情况下,新的Selenium WebDriver实例使用空配置文件,除非您另有指定。
听起来您正在为两次测试运行使用相同的用户。当用户注销或登录时,它会得到与所有其他位置相同的会话状态。因此,它再次处于同一页或已注销状态。我建议您向开发人员询问应用程序的会话管理方式。
测试隔离:
您需要为每个并行运行隔离测试数据和/或测试环境。您可以在开始测试之前为测试创建一个新用户。
请参见此答案以获取更多隔离测试的想法:https://sqa.stackexchange.com/a/25623/3201
其他阅读材料:
很可能当您登录您的Web应用程序时,会将会话存储在永久Cookie中。您可以尝试在加载网站的URL后删除这些Cookie。
webDriver.Manage().Cookies.DeleteAllCookies();