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

断言失败时循环停止

凤高翰
2023-03-14

有一个excelsheet,其中所有URL(16)都列在一列中。现在,一旦页面加载,需要验证页面标题是否与excel中已存储的预期标题匹配。我可以使用for循环执行它。如果全部通过,它将运行所有URL,但如果失败,它将停止运行。我需要完整地运行它,并给出一份通过和失败的报告。我编写了以下代码。

        rowCount = suite_pageload_xls.getRowCount("LoadURL");

        for(i=2,j=2;i<=rowCount;i++,j++) {
            String urlData = suite_pageload_xls.getCellData("LoadURL", "URL", i);
            Thread.sleep(3000);
            long start = System.currentTimeMillis();
            APP_LOGS.debug(start);
            driver.navigate().to(urlData);
            String actualtitle = driver.getTitle();
            long finish = System.currentTimeMillis();
            APP_LOGS.debug(finish);
            APP_LOGS.debug(urlData+ "-----" +driver.getTitle());
            long totalTime = finish - start;
            APP_LOGS.debug("Total time taken is "+totalTime+" ms");

            String expectedtitle = suite_pageload_xls.getCellData("LoadURL", "Label", j);
            Assert.assertEquals(actualtitle, expectedtitle);

            if (actualtitle.equalsIgnoreCase(expectedtitle)) {
                APP_LOGS.debug("PAGE LABEL MATCHING....");
                String resultpass = "PASS";
                APP_LOGS.debug(resultpass);
                APP_LOGS.debug("***********************************************************");
            } else {
                APP_LOGS.debug("PAGE LABEL NOT MATCHING....");
                String resultfail = "FAIL";
                APP_LOGS.debug(resultfail);
                APP_LOGS.debug("***********************************************************");
            }
        }

请在这方面帮助我。

共有1个答案

锺离宸
2023-03-14

这是断言的正确行为,当断言错误时,它会抛出异常。

您可以将实际上的标题和期望的标题存储在数组中,并一次执行所有断言。

为了获得更好的断言,我建议您尝试AssertJ,您可以直接比较两个列表,实际列表和预期列表,它将返回完全不同的结果。

 类似资料:
  • 我在单元测试中使用groovy脚本。我有以下代码片段,我在单个测试脚本中使用多个断言。 第一个断言失败并停止执行。但我想继续进一步的代码片段。 与selenium中的软断言类似,我应该如何收集groovy中的所有失败异常。

  • 我是JMeter和断言概念的新手。当我试图执行一个JMX文件(包含JMeter中的断言)时,遇到了以下错误消息: 断言错误:错误断言失败:真断言失败消息:测试失败:变量(搜索结果)不相等/接收:找不到[[[]]]]比较:找不到[[[]]]]] 脚本的执行方式如下:$java-jar./apache-jmeter-2.10/bin/apachejmeter.jar-t./jmeter-master/

  • 我是新手,不会摆弄它。所以,请对我有耐心。 单击PopupMenuButton的特定菜单项时,将引发以下异常,但始终只能第二次: 'package:flutter/src/widgets/navigator.dart':失败断言:line 1846 pos 12:'!_debuglocked':不是true。 正如您所看到的,有私有变量用于保存WordPair对象,但也用于菜单选择。 _popup

  • 我在flutter上使用firebase做了一个简单的婴儿名字项目,在成功完成教程后,该应用程序出现了这样的错误:“package:firebase_demo/main.dart':Failed assertion:line 86 pos 16:'map['votes]!=null':is not true。” 同样的帮助。

  • 我已经在Netbeans上通过JS测试驱动程序设置了JavaScript单元测试。然而,与该教程中的结果不同,断言失败后不会执行更多测试。我怎样才能改变这种行为? 例如,给定此测试文件: 文件: 进度条显示50%,(2次测试),应该是33%。 文件: 我可以通过命令行运行所有测试。(在Windows PowerShell上)。按如下方式运行,失败后测试不会停止运行: java-jar$env: J

  • 编辑:该问题与fscanf的while循环没有直接关系,而是在用于包含使用fscanf加载的变量的结构的分配中出现了错误 我正在从文件中读取值,并使用它们在使用fscanf的结构中设置参数。我使用Eclipse作为编辑器,并将其调试和gcc作为编译器(从Eclipse内部)。 我下面介绍的由三部分组成:1)我从文件中读入变量的结构的声明。2)我正在读取的文件,以及3)实际从文件中读取的代码。 在所