如何处理硒的会话超时

我看了类似问题的一些答案,但找不到满意的答案。

我正在构建自动化框架,其中我运行了200个测试用例,需要大约60分钟才能完成。

应用程序的会话时间超过 30 分钟,因此当我的测试用例运行时,它会在 30 分钟后注销,然后测试用例失败,因为它找不到所需的元素。

登录 我正在考虑如何处理会话超时:

  1. 在测试用例编号# X中再次调用登录方法,并检查是否注销然后再次登录,但这似乎不是一个好主意,好像明天的会话超时时间从30分钟更新到其他东西,我将不得不在其他一些测试用例中调用login method。

2.如果,请检查系统是否注销,如果是,则再次登录。但是对于这个问题是相同的,就像我必须在每个方法或一些特定方法中调用它一样,以检查每次是否注销。Current time - Test start time >= 30 minute

因此,我正在寻找一些解决方案,从我的自动化开始不断检查,如果找到注销窗口,则调用登录方法。

注意:我正在使用硒webdriver,Java,TestNG,Maven和以下页面对象模式。


慕无忌1623718
浏览 101回答 1
1回答

白板的微信

因此,我假设您的登录页面的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 {@Overridepublic boolean retry(ITestResult result) {    if (driver.getCurrentUrl() == "loginPageUrl") {        //call login function or do whatever you need to to login         return true;    }    return false;  }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java