gpt4 book ai didi

selenium-webdriver - TestNG:哪种方法更好?登录一次并运行所有测试 (@BeforeSuite) 或每次测试前登录 (@BeforeTest)

转载 作者:行者123 更新时间:2023-12-04 07:53:44 25 4
gpt4 key购买 nike

方法#1:每次测试前登录:

优点:

  • 每个测试都是不同的 session ,如果一个测试导致浏览器崩溃,只有该测试失败,不会影响其他测试。
  • 可以并行测试。

  • 缺点:
  • 如果登录失败(因为 AUT 已关闭或登录功能有错误),我们仍会在每次测试之前调用它。但这是一个小问题,因为这可以通过创建一个测试登录功能的测试来解决,如果失败,可以中止整个套件。

  • APRROACH#2:登录一次并运行所有测试:

    优点:
  • 您不必处理这么多浏览器窗口,因为您只需打开一个窗口

  • 缺点:
  • 如果一个测试导致浏览器崩溃,我们可以在下一个测试开始之前恢复吗?
  • 我们可以并行运行 1 个以上的测试吗?

  • 尽管这两种方法都有其优点和缺点,但我仍然不确定哪种方法是最好的。在每次测试之前作为单独的 session 登录真的很浪费资源吗?不涉及数据库连接。我在 APPROACH#1 中看到的唯一潜在问题是,由于每个测试都是一个 Java 进程,因此有可能会因太多同时发生的 Java 进程而使系统过载。

    最佳答案

    答案是,你决定。

    但是,这是我的意见:

    @BeforeSuite 太冒险且不现实,因为 UI 测试是测试世界中最脆弱的。登录过程失败的原因有数千种。特别是如果您从 CI 服务器或通过其他一些自动化过程自动运行这些测试,您的完整测试套件将不会执行。

    @BeforeTest 我相信即使有时您只需要刷新环境并返回到已知状态,这也太多余了。除了那些场景,我也不会这样做。

    到目前为止,据我所知 @BeforeClass 是最好的方法。因为,这将在每个测试类中运行一次,并登录一次并执行所有测试。您可以使用 @BeforeTest 与此结合只是将环境重置为已知状态,以便其他测试知道从哪里开始

    关于selenium-webdriver - TestNG:哪种方法更好?登录一次并运行所有测试 (@BeforeSuite) 或每次测试前登录 (@BeforeTest),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29526795/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com