任何人都知道這段代碼有什麼問題。 它通過我的測試,即使我有錯誤的憑據。 我在Eclipse中使用Java和Selenium WebDriver。登錄測試通過了錯誤的憑據
我不確定做錯了什麼,並且似乎無法在Google上找到答案。
public class LoginTest {
String url ="jdbc:sqlserver://CODESV3;databaseName=Codes;integratedSecurity=true";
String DBdriver ="com.microsoft.sqlserver.jdbc.SQLServerDriver";
Connection conn = null;
WebDriver driver = null;
PreparedStatement pstmt=null;
ResultSet rs=null;
@BeforeTest
public void establishConn()
{
driver = new FirefoxDriver();
driver.get("https://10.10.10.50/");
// establish connection
try{
Class.forName(DBdriver).newInstance();
conn = DriverManager.getConnection(url);
}catch(Exception e){
System.out.println("Database failed to connect ");
}
}
@Test
public void testLogin()
{
String forceID="1234";
String username="ayaslem";
String password="Delpiero10+";
boolean valueFound=false;
// Check the db
try{
pstmt=conn.prepareCall("select * from Login where ForceID=? and Username=? and Password=?");
pstmt.setString(2,forceID);
pstmt.setString(3,username);
pstmt.setString(4,password);
rs=pstmt.executeQuery();
valueFound =rs.next();
}catch(Exception e){
// report some error
}
// login into app
driver.findElement(By.xpath("//*[@id='LogonModel_OrganisationName']")).sendKeys(forceID);
driver.findElement(By.xpath("//*[@id='LogonModel_UserId']")).sendKeys(username);
driver.findElement(By.xpath("//*[@id='LogonModel_Password']")).sendKeys(password);
driver.findElement(By.xpath("//*[@id='maincontent']/form/div/fieldset/div[4]/div[2]/input")).click();
}
你不valueFound做什麼東西嗎? –
我期望用valueFound做什麼?設置爲false,valueFound = rs.next();應該返回false如果值不匹配數據庫和真如果匹配分貝 –
是的,但你沒有從我能看到的測試它?你只需通過rs.next()來設置它。 Theres沒有斷言或檢查它的真實與否。不管valueFound的值是什麼,您都只需從try塊中取出並登錄到應用程序。 –