我有一个要登录的应用程序。登录将成功(提供正确的用户ID和密码),并且该页面仅在成功登录时将页面重定向到主页。但是,在登录失败时,页面不会重定向到另一页,它只会说"请输入正确的详细信息"
我有一个带有正确用户ID和密码的Excel表,以及不正确的用户ID和密码。
考虑以下序列:
- 正确的用户ID和密码
- 正确的用户ID和密码
- 不正确的用户ID和密码
- 正确的用户ID和密码
- .....正确的用户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
块中,它将被处理,并且在失败发生的情况下不会停止您的代码。