【问题标题】:Is it good practice to open a new browser for every test case? (Selenium, JUnit)为每个测试用例打开一个新浏览器是一种好习惯吗? (硒,JUnit)
【发布时间】:2019-01-23 08:41:30
【问题描述】:

我正在使用 Selenium 和 JUnit 进行测试。第一次做测试,所以我不确定最佳做法是什么。

对于每一个测试用例,我是否需要打开一个新的浏览器,或者我是否需要设置它以便一个测试用例可以从前一个测试用例停止的地方继续,并使用前一个测试用例的浏览器状态?对此有一些一般的经验法则吗?

最初我认为为每个测试用例打开一个新浏览器效率太低,所以我试图让测试用例一个接一个地运行,但是在 JUnit 中无法分配运行顺序。????所以现在我在想我需要让每个测试用例完全独立,并在每个测试用例的开头有一些“设置”的代码行,如果适用的话使用@Before

有什么好的方法吗?

  1. setUpBeforeClass(){} 创建浏览器
  2. 在每个测试用例的开头使用driver.get("specific url for test case");。但这在环境之间切换和更改 url 时会很糟糕.....

【问题讨论】:

    标签: java selenium junit


    【解决方案1】:

    您可以通过在测试之间删除 cookie 来节省时间:

    driver.manage().deleteAllCookies();
    

    【讨论】:

    • 这将允许我使用相同的浏览器,但是对于下一个测试用例,我仍然需要导航到正确/需要的网页?
    • 如果一个特定的测试用例在运行它的断言之前需要导航到一个特定的地方,是否可以使用这个测试用例中的其他测试用例来到达浏览器中的正确位置,并且然后检查测试用例的断言?这样代码就不会被重写。在网站中“深入”运行测试用例并且每个测试用例都设置为重新开始的情况下,处理这些情况的好方法是什么?
    • 这是一个不同的问题:)
    • @Alex 如果你想在另一个页面上添加一些内容后测试其他页面上的行为,你应该考虑在页面上导航 - 断言它是“正常的” - 通过代码保留一些东西 - 重新加载页面。 1 测试应该只测试 1 页。
    猜你喜欢
    • 2023-01-16
    • 2017-03-09
    • 2017-09-27
    • 2016-01-03
    • 1970-01-01
    • 2013-02-13
    • 1970-01-01
    • 2010-09-11
    • 2017-08-09
    相关资源
    最近更新 更多