为了账号安全,请及时绑定邮箱和手机立即绑定

如何处理硒的会话超时

如何处理硒的会话超时

慕无忌1623718 2022-09-07 16:52:40
我看了类似问题的一些答案,但找不到满意的答案。我正在构建自动化框架,其中我运行了200个测试用例,需要大约60分钟才能完成。应用程序的会话时间超过 30 分钟,因此当我的测试用例运行时,它会在 30 分钟后注销,然后测试用例失败,因为它找不到所需的元素。登录 我正在考虑如何处理会话超时:在测试用例编号# X中再次调用登录方法,并检查是否注销然后再次登录,但这似乎不是一个好主意,好像明天的会话超时时间从30分钟更新到其他东西,我将不得不在其他一些测试用例中调用login method。2.如果,请检查系统是否注销,如果是,则再次登录。但是对于这个问题是相同的,就像我必须在每个方法或一些特定方法中调用它一样,以检查每次是否注销。Current time - Test start time >= 30 minute因此,我正在寻找一些解决方案,从我的自动化开始不断检查,如果找到注销窗口,则调用登录方法。注意:我正在使用硒webdriver,Java,TestNG,Maven和以下页面对象模式。
查看完整描述

1 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

因此,我假设您的登录页面的URL与实际应用程序中的任何页面的URL不同。如果您还没有 testng @BeforeTest则可以创建一个方法,并在新的或现有的测试前方法中包含以下内容:


if (driver.getCurrentUrl() == "whatever.yourLoginPageUrl.is") {

    //call login method or do whatever you have to do to login


    //If you want to rerun the previous test that probably failed, do that here

}

一种稍微光滑的方法(我认为)是实现IRetryAnalyzer接口并覆盖重试功能,例如


public class MyRetry implements IRetryAnalyzer {


@Override

public boolean retry(ITestResult result) {

    if (driver.getCurrentUrl() == "loginPageUrl") {

        //call login function or do whatever you need to to login 

        return true;

    }

    return false;

  }

}


查看完整回答
反对 回复 2022-09-07
  • 1 回答
  • 0 关注
  • 100 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号