Java 如何使用Selenium测试通过web应用程序的注册页面输入的数据是否存储到数据库中?
我是硒的新手。我正在测试一个用户注册表单,在该表单中我必须验证数据是否插入到数据库中。我使用下面的代码来检查。还有比这更好的选择吗?我首先检查是否插入了注册ID,然后检查其他详细信息Java 如何使用Selenium测试通过web应用程序的注册页面输入的数据是否存储到数据库中?,java,selenium,testing,automated-tests,Java,Selenium,Testing,Automated Tests,我是硒的新手。我正在测试一个用户注册表单,在该表单中我必须验证数据是否插入到数据库中。我使用下面的代码来检查。还有比这更好的选择吗?我首先检查是否插入了注册ID,然后检查其他详细信息 @Test public void testVerifyListOfRecords() throws InterruptedException { String query = "SELECT ID FROM usermaster WHERE RegistrationNumber = '" + REGNO +
@Test
public void testVerifyListOfRecords() throws InterruptedException {
String query = "SELECT ID FROM usermaster WHERE RegistrationNumber = '" + REGNO + "' ";
String ID = DatabaseConnector.executeSQLQuery("QA", query);
if(ID == ""){
STATUS = "FALSE";
System.out.println("REGISTRATION NUMBER IS NOT INSERTED..!! TEST FAILED..!!");
} else STATUS = "TRUE";
String sqlQuery = "SELECT FirstName,LastName,SpecialityCode,QualificationCode FROM usermaster WHERE ID = '" + ID + "' ";
List<String> listOfDBValues = new ArrayList<String>();
listOfDBValues = DatabaseConnector.executeSQLQuery_List("QA", sqlQuery);
List<String> Branch = new ArrayList<>();
Branch.add(listOfDBValues.get(0));
List<String> list1 = new ArrayList<>(Arrays.asList("testfirstname testlastname ORP DM"));
Assert.assertEquals(STATUS, "TRUE");
System.out.println("STATUS IS " + STATUS);
Assert.assertEquals(Branch, list1);
}
@测试
public void testVerifyListOfRecords()引发InterruptedException{
String query=“从usermaster中选择ID,其中RegistrationNumber=”+REGNO+”;
字符串ID=DatabaseConnector.executeSQLQuery(“QA”,查询);
如果(ID==“”){
STATUS=“FALSE”;
System.out.println(“未插入注册号..!!测试失败..!!”;
}else STATUS=“TRUE”;
String sqlQuery=“从usermaster中选择FirstName、LastName、SpecialityCode、QualificationCode,其中ID=”+ID+“”;
List listOfDBValues=new ArrayList();
listOfDBValues=DatabaseConnector.executeSQLQuery_列表(“QA”,sqlQuery);
列表分支=新的ArrayList();
add(listOfDBValues.get(0));
List list1=newarraylist(Arrays.asList(“testfirstname testlastname ORP DM”);
Assert.assertEquals(状态为“TRUE”);
System.out.println(“状态为”+状态);
Assert.assertEquals(分支,列表1);
}
这不是一个真正的硒问题。。。这更像是一个自动化和/或数据库问题。Selenium只与浏览器交互。如果您没有其他方法来验证用户是否已注册并且这是一项要求,那么查询数据库似乎是验证它的最直接的方法
为了使该功能更好/更高效,我将改变以下几点
状态
,注册号
。这通常不是一个好的做法。传递函数所需的内容布尔值时,您正在字符串中存储“TRUE”/“FALSE”。不要创建列表
,只添加一项。。。只需使用字符串
变量即可
STATUS
的值,但在前几行代码中,您知道STATUS
的值,然后点击数据库。当您让STATUS
尽快通过测试并避免额外点击数据库、额外代码等时,您应该正确地断言它的值STATUS
的值正好位于断言之后,则无需对其进行sysout,如果断言不是“TRUE”
,则断言将失败@Test
public void testVerifyListOfRecords(String regNo) throws InterruptedException
{
String query = "SELECT ID FROM usermaster WHERE RegistrationNumber = '" + regNo + "' ";
String ID = DatabaseConnector.executeSQLQuery("QA", query);
Assert.assertFalse(ID == "", "Verify ID is not empty");
String sqlQuery = "SELECT FirstName,LastName,SpecialityCode,QualificationCode FROM usermaster WHERE ID = '" + ID + "' ";
List<String> listOfDBValues = DatabaseConnector.executeSQLQuery_List("QA", sqlQuery);
List<String> list1 = new ArrayList<>(Arrays.asList("testfirstname testlastname ORP DM"));
Assert.assertEquals(listOfDBValues.get(0), list1, "Verify user registration data is correct");
}
@测试
public void testVerifyListOfRecords(字符串regNo)抛出InterruptedException
{
String query=“从usermaster中选择ID,其中RegistrationNumber=”+regNo+”;
字符串ID=DatabaseConnector.executeSQLQuery(“QA”,查询);
Assert.assertFalse(ID==“”,“验证ID不为空”);
String sqlQuery=“从usermaster中选择FirstName、LastName、SpecialityCode、QualificationCode,其中ID=”+ID+“”;
List listOfDBValues=DatabaseConnector.executeSQLQuery_列表(“QA”,sqlQuery);
List list1=newarraylist(Arrays.asList(“testfirstname testlastname ORP DM”);
Assert.assertEquals(listOfDBValues.get(0),list1,“验证用户注册数据是否正确”);
}
这不是一个真正的硒问题。。。这更像是一个自动化和/或数据库问题。Selenium只与浏览器交互。如果您没有其他方法来验证用户是否已注册并且这是一项要求,那么查询数据库似乎是验证它的最直接的方法
为了使该功能更好/更高效,我将改变以下几点
状态
,注册号
。这通常不是一个好的做法。传递函数所需的内容布尔值时,您正在字符串中存储“TRUE”/“FALSE”。不要创建列表
,只添加一项。。。只需使用字符串
变量即可
STATUS
的值,但在前几行代码中,您知道STATUS
的值,然后点击数据库。你应该断言