【问题标题】:How to execute a test record (one row) of excel sheet without getting the test record failed in selenium(testng)如何执行excel表的测试记录(一行)而不使测试记录在selenium(testng)中失败
【发布时间】:2019-03-11 19:57:40
【问题描述】:

我有一个我想登录的应用程序。登录将成功(提供正确的用户 ID 和密码)并且页面将仅在成功登录时重定向到主页。 但是,在登录失败时,页面不会重定向到另一个页面,它只会说“请输入正确的详细信息”

我有一个带有正确用户名和密码以及不正确用户名和密码的 Excel 表。

考虑以下顺序:

  1. 正确的用户名和密码
  2. 正确的用户名和密码
  3. 用户名和密码不正确
  4. 正确的用户名和密码
  5. .....正确的用户名和密码 . . . 50...正确的用户名和密码

现在,如果我使用 excel 表执行我的程序,该程序对于测试记录 1 2 运行良好,但是由于测试记录 3 的详细信息不正确,因此程序停止执行并且所有其余 3 到 50 个测试记录都没有得到评估。

我想要的是某种机制,如果用户名和密码不正确,测试记录将通过(表示 TRUE NEGATIVE)。断言可以这样做吗?

【问题讨论】:

  • 提供目前尝试过的代码sn-ps?

标签: excel selenium automated-tests testng


【解决方案1】:

您为此使用TestNG 库,其中 xml 文件包含套件,它执行您在文件中提到的测试用例顺序,如下所示,它将执行“FirstTestCase”然后“SecondTestCase”同样...... 所以你可以做一件事维护一个文件调用testng.xml,其中包含这样的套件..

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
    <suite name="testng" preserve-order="true">

    <test name="FisrtTestCase_001">
        <parameter name="test-id" value="firsttestcase_001"/>
        <parameter name="test-config" value="LotEntryConfig"/>
        <parameter name="test-config-sheet" value="LotAdd"/>
        <classes>
            <class name="testDrivers.TestDriver"/>
        </classes>
    </test>
    <test name="SecondTestCase_002">
        <parameter name="test-id" value="secondtestcase_002"/>
        <parameter name="test-config" value="FarmerRegConfig"/>
        <parameter name="test-config-sheet" value="NewReg"/>
        <classes>
            <class name="testDrivers.TestDriver"/>
        </classes>
    </test>

 </suite> <!-- testng-->

同样,您可以插入更多的套件,因此优点是如果任何测试用例失败,则执行不会停止,但是您需要开发该逻辑,就像在我的情况下我有三个参数 test-id, config-file, sheet-name

以便测试用例以这样的方式执行,无论配置文件是否存在,如果存在,则工作表名称是否存在,如果存在,则 test-id 是否存在于列中,如果存在,则从该行中获取所有值并将其存储到一个数组中,以便您在我想要的任何时候明智地......

我已将链接分享给您以供参考..

https://www.guru99.com/all-about-testng-and-selenium.html

https://www.toolsqa.com/testng-tutorial/

希望你能理解..

【讨论】:

    【解决方案2】:

    您必须将您的代码放在try-catch 块中以避免程序终止。我假设您的代码中可能有以下代码结构:

    @Test
    public void validateCredentials(String username, String password)
    {
     //do login and check for credentials
     for (int i=0; i<array.lenth; i++)
     {
       try{
       if(successful go ahead){}
       else
         throw new Exception("Not valid credentials")
       } catch(Exception e){ e.printstacktrace();}
     }
    }
    

    在这种情况下,假设在 3 号,您的凭据无效,它会抛出异常,并在 catch 块中处理它,并且它不会在发生故障时停止您的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-07
      • 1970-01-01
      • 2018-11-09
      • 2017-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      相关资源
      最近更新 更多