Java 中带有 if else 逻辑的自动化测试流程

在游戏中自动传递关卡时,我有几个用户组,它们都使用一种方法登录游戏,该方法接受用户名和密码的输入,但会收到不同数量的解锁关卡,具体取决于用户组(每个用户在游戏中都有不同的可用级别)。


在测试所有关卡通过的过程中,我想在每个关卡结束的测试过程中确定用户是否解锁了下一个关卡,是继续测试还是成功完成。我已经阅读了 selenium 的 if else 实现,我目前正在使用这样的方法:


    public boolean isElementExisting(WebElement element){

    try {

        wait.until(ExpectedConditions.elementToBeClickable(element));

    } catch (Exception e) {

        return false;

    }

    return true;

    }

并在测试中使用和 if 逻辑:


    if (isElementExisting(level3Button) == false) {

    driver.quit();

    }


    - rest of the tests follow here.

使用时driver.quit();测试自动失败。我正在寻找的期望行为是让测试通过 if 语句(可以使用什么来代替driver.quit();方法)?


我可以将所有代码用于在单独的嵌套 if/else 语句中测试进一步的级别,但这会很麻烦,目前正在寻找更实用的解决方案,比如在某个点成功测试。


宝慕林4294392
浏览 147回答 2
2回答

胡说叔叔

测试应该是静态的,因为它应该有一个已知的结果。因此,测试的结构和编写方式应该遵循这个逻辑。鉴于上述内容,我会编写一个类似这样的测试:login.asUser(username,password);// additional logic in hereassertTrue(page.userHasLevelUnlocked("level3"));然后方法public boolean userHasLevelUnlocked(String level){    switch(level)        case "level3":            if(isElementExisting(level3button){            return true;            } else {            return false            }}或类似的规定

小唯快跑啊

我理解静态测试的概念,此外,测试不应该有“已知”的结果,而更多的是它应该有一个“预期的”结果,应该匹配,因为它测试了要验证的东西它的功能。switch case 是一个有效的场景,坦率地说,我看不到在发布的示例中断言失败后会发生什么(测试也会失败)。我实施的解决方案是使用类似于以下的方法确定用户是否在上一个级别的末尾解锁了下一个级别:    public void isElementExistingAlternateResult(WebElement element) {    boolean isElementFound = true;    try {        wait.until(ExpectedConditions.elementToBeClickable(element));    } catch (Exception e) {        isElementFound = false;    }    if (isElementFound == true) {        System.out.println("test is continued...");    } else {        Reporter.getCurrentTestResult().setStatus(ITestResult.SUCCESS);        System.out.println("next level not unlocked.");    }这样,只有在没有找到下一个可用级别时,测试才会确定这个实时时间,它会在这个确切的点停止并通过。请注意,这是将失败的测试用例的结果与 TestNG Reporter 类交替出现在:Reporter.getCurrentTestResult().setStatus(ITestResult.SUCCESS);不利的一面 - 这使得测试无法测试为不同用户解锁不同数量的关卡的功能,因为无论解锁的关卡数量如何,它都会测试并通过,但最好不要自动化。好处 - 它超级简单,非常适合大约 500 个步骤的测试用例(使其中只有少数是“动态的”)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java