当前位置: 首页 > 知识库问答 >
问题:

Selenium Java如何使用相同的浏览器实例登录一次并运行多个测试用例,而不是为每个测试打开/关闭浏览器

邓韬
2023-03-14

SeleniumJava-如何登录一次并使用相同的浏览器实例运行多个测试用例,而不是为每个测试打开/关闭浏览器。

有没有一种方法可以通过只打开浏览器的一个实例来运行所有的测试(回归),比如:登录一次,并在其余的测试用例中继续使用相同的实例。

我不想关闭每个测试用例的浏览器,然后重新打开新浏览器并再次登录以进行新测试。

共有1个答案

朱梓
2023-03-14

使用创建基类

1.BeforeSuite注释与1.1 selenium会话方法1.2登录方法

2.2.1关闭驱动程序2.2注销方法的后套件注释

3.无注释用于报告、等待、记录等的通用方法

4.TestClass扩展基类,需要测试和不同的注释。

public class BaseClass {

    Webdriver driver;
    @BeforeSuite
    public void setUp() {
        startSeleniumSession();
        // other initialization like reporting,logger and globals required
        loginApplication();
        logoutApplication();
    }

    public void startSeleniumSession(){
        driver=new ChromeDriver()
    }

    // Other generic methods
    public void loginApplication(){

    }

    // Other generic methods
    public void logoutApplication(){

    }

    @AfterSuite
    public void tearDown() {
        driver.close
        logout();
    }
}


public class TestClass1 extends BaseClass{

    @BeforeTest
    public void prerquisiteClass1(){
        // Run before every test in class
    }


    @Test
    public void class1Test1(){
        // functional test 1
    }

    @Test
    public void class1Test2(){
        // functional test 2
    }

    @AfterTest(){
        // take screenshot on failure for class 1 tests
        // this will run for all tests in class
    }



}


public class TestClass2 extends BaseClass{

    @BeforeTest
    public void prerquisiteClass2(){
        // test needs these things
    }


    @Test
    public void class2Test1(){
        // functional test 1
    }

    @Test
    public void class2Test1(){
        // functional test 2
    }

    @AfterTest(){
        // take screenshot on failure for class 2 tests
    }

}
 类似资料:
  • 问题内容: 我是硒测试的新手。我想针对Internet Explorer,Firefox,Opera和Chrome在多种浏览器上运行。我必须遵循什么方法。大家能否建议我这是最好的过程。 硒Web驱动程序是否支持多种浏览器??? 我们已经编写了登录脚本。它可以分别在Firefox,Chrome和Internet Explorer中成功运行。但我想按顺序为那些多个浏览器运行它。 问题答案: 在此之前,

  • 问题内容: 我正在将Selenium WebDriver与Java和TestNG框架一起使用。我想一次在一个代码中使用Firefox,IE,Chrome来进行跨浏览器测试。我只能将Firefox初始化为 但无法以相同方式初始化其他浏览器。例如: 给出错误 给出错误 如何初始化IE和Chrome并在所有所需的浏览器中执行测试? 问题答案: 对于C# 加 创建一个包含浏览器名称的配置文件。实现与配置文

  • 问题内容: 我正在尝试整理我的第一个数据驱动测试框架,该框架通过Selenium Grid / WebDriver在多个浏览器上运行测试。现在,我在自己的类中拥有每个测试用例,并且对浏览器进行了参数设置,因此它在每个浏览器中都运行一次每个测试用例。 在大型测试框架上常见吗?还是应该将每个测试用例复制并微调到其各自类中的每个浏览器?因此,如果我正在测试chrome,firefox和IE,是否应该为每

  • 我在我的UI自动化框架中使用QAF开源Java库,并希望在每个测试中打开和关闭浏览器。但是,不能用下面的代码完成,因此由testSuccessfulLogin()打开的浏览器保持打开状态,因此testFailedLogin()失败。

  • 我试图在浏览器堆栈上运行多个浏览器上的E2E测试,我参考了在量角器中的多个/并行浏览器上的E2E测试?和Internet Explorer Selenium量角器e2e测试 但每次我试着运行测试时都会犯错- 谁能告诉我什么是我做错了这里,而且我们使用gulp ti运行规范,但我的问题是它是说,甚至没有超出认证。

  • 问题内容: 我找不到有关如何进行设置的任何信息,但这似乎是一个非常基本的概念,所以我敢肯定有一个答案。 我知道如何通过在配置中设置对象的属性来在不同的浏览器上运行量角器。而且效果很好。我可以将其设置为or 或我需要的任何值,并且它可以按预期运行。但是,对多个浏览器运行单个测试套件的唯一方法(据我所知)是创建单独的配置文件,每个配置文件具有不同的配置文件,然后使用各自的配置运行每个浏览器。这行得通,