繁体   English   中英

有没有办法处理并行 selenium 测试执行的应用程序 session 超时?

[英]Is there a way to handle application session timeout for parallel selenium test execution?

我有一个需要用户名密码登录的应用程序。 我目前正在使用 selenium 和 java 自动化其测试场景,并且需要这些测试并行运行。 我为自动化测试创建了一个用户 ID。 但是当我并行运行它们时,我得到一个随机测试的 session 超时错误并且执行失败。

我的 chromedriver 启动是线程安全的,所以这不是问题

与应用程序的开发人员交谈时,我了解到不允许同时登录同一用户,并且之前打开的 session 收到超时错误。 我什至尝试过以隐身方式打开它们,但这无济于事。 所以目前我认为,对于并行执行:创建我需要并行运行的用户数量,并为每个测试 class 提供其独立的用户 ID。

有没有其他方法可以处理这种情况? 我认为为自动化测试创建多个用户 ID 总是很麻烦。

您可以为所有 webdriver 实例使用一组 cookies。 为此,请创建将从所有线程访问的变量“Set cookies”。

例如,如果您使用超类继承所有测试类,请将 static 变量添加到超类。

在登录操作中,检查变量是否为 null。 如果为真 - 登录并从 webdirver 获取 cookies。 如果为 false,则将 cookies 设置为 webdriver 而无需登录操作。

Set<Cookie> cookies;
cookies =webDriver.manage().getCookies();
cookies.forEach( cookie -> webDriver.manage().addCookie( cookie ) );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM