我有一个应用程序,我想登录。登录将成功(提供正确的用户ID和密码),只有成功登录后页面才会重定向到主页。但是在登录失败时,页面不会重定向到另一个页面,它只会说“请输入正确的详细信息”
我有一个excel表,其中包含正确的用户ID和密码,以及错误的用户ID和密码。
考虑以下顺序:
现在,如果我使用excel表执行我的程序,程序可以正常运行测试记录1 2,但是由于测试记录3不正确,所以程序停止执行,所有其余的3到50个测试记录都没有得到评估。
我想要的是一些机制,如果用户ID和密码不正确,测试记录将通过(表示TRUE NEGATIVE)。断言可以吗?
你使用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/
希望你能理解..
您必须将代码放在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
块它将被处理,它将不会停止你的代码,以防万一发生故障。