如何执行Excel表的测试记录(一行)而不获得测试记录在硒中失败(testng)



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

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

考虑以下序列:

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

现在,如果我使用Excel表执行程序,则该程序在测试记录1 2中正常工作,因为测试记录3以来的详细信息都不正确,因此程序停止执行,并且所有休息的3至50测试记录都无法评估。

我想要的是某种机制,即如果用户ID和密码不正确,则测试记录应通过(表明真为负)。断言可以这样做吗?

您使用 TestNG库为此,其中XML文件包含套件,它执行测试案例订单,如您在文件中所述,请参见下面的文件,它将执行" firstTestcase",然后执行" 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

以使测试案例执行以使得配置文件是否存在的任何方式,如果存在,则表格名称是否存在,如果存在,则该列中的ID是否存在于列中,是否存在如果存在,请从该行中获取所有值并将其存储到一个数组中,以便您随时随地明智。

我已经与您共享链接以供参考。

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

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

希望您能理解..

您必须将代码放入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块中,它将被处理,并且在失败发生的情况下不会停止您的代码。

最新更新