Python中文网

一个关于 编程问题的解答网站.

有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

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

在与应用程序的开发人员交谈时,我了解到,不允许同一用户同时登录,之前打开的会话收到超时错误。我甚至试着以匿名的方式打开它们,但那没用。所以目前我认为,对于并行执行: 创建并行运行所需的用户数量,并为每个测试类提供独立的用户ID

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


共 (1) 个答案

  1. # 1 楼答案

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

    例如,如果您使用一个超类来继承所有测试类,那么将静态变量添加到该超类中

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

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