Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在测试自动化中设置保存点并回滚到它所遵循的最佳实践_Java_Web Services_Oracle11g_Savepoints - Fatal编程技术网

Java 在测试自动化中设置保存点并回滚到它所遵循的最佳实践

Java 在测试自动化中设置保存点并回滚到它所遵循的最佳实践,java,web-services,oracle11g,savepoints,Java,Web Services,Oracle11g,Savepoints,我是webservices的新手,我正在考虑在使用webservices的测试自动化中使用保存点机制。下面是一段代码片段 Connection con = DriverManager.getConnection("jdbc:derby://localhost:1527/testDb", "name","pass"); con.setAutoCommit(false); Savepoint spt1 = con.setSa

我是webservices的新手,我正在考虑在使用webservices的测试自动化中使用保存点机制。下面是一段代码片段

Connection con = 
    DriverManager.getConnection("jdbc:derby://localhost:1527/testDb", 
                                "name","pass");
con.setAutoCommit(false);
Savepoint spt1 = con.setSavepoint("svpt1");
WebService.Post() method for various CRUD operations.....
con.rollback(spt1);
con.commit();

设置保存点和回滚到保存点之间的操作是使用webServices的各种CRUD操作,因此当回滚保存点时,应清除自动化过程中创建的脏数据。我很想知道在这里使用保存点机制是否是一种好的做法,如果可以使用,那么创建并回滚保存点的平均时间是多少?

除非我误解了这个问题,否则您不能回滚在另一个事务中已完成的操作。所以你在这里做的没有多大意义


保存点和回滚可用于回滚自您回滚的连接的保存点之后完成的操作。其他一切都与保存点无关,无法撤消

听起来像是一个完美的用例-它可以在每次测试执行之前重新创建整个数据库。

忘了提到数据库是Oracle 11g R2Hi JB。谢谢你的回复。SetSavepoint方法和回滚中的保存点名称不同。非常抱歉,那是个打字错误。所以我可以创建一个保存点ABC并回滚到ABC,其间发生的任何操作都将撤消?所以数据库将返回到一个干净的状态环境,以与测试用例执行之前的环境相匹配?不,正如我所说的。保存点不是整个数据库的某个快照。它只能用于回滚或撤消,如果您喜欢使用回滚的连接执行的所有操作。如果另一个连接(即web服务使用的连接)已使用其自己的不同连接插入、更新或删除行,则无法回滚这些操作。一旦提交,它们就在数据库中。事务彼此独立运行。