ui自动化测试数据复原遇到的坑——1、hibernate输出完整sql

2022-12-27,,,,

公司老项目使用SSH+informix+weblogic+IE开发,我们要做ui自动化测试,其中的测试数据复原,我打算通过hibernate输出sql,然后把插入、更新的sql改为delete或update(大部分用delete就行,具体看sql),然后在每次自动化测试任务开始前执行这些sql。部署好项目到本地后,修改配置,但发现hibernate输出的只有预编译sql和对应的参数,这样大大增加了修改sql的难度。

查看代码,发现项目中使用p6spy框架拦截sql语句,但默认只能在spy.properties配置下图的红圈部分,而且不能自定义(我不需要输出select语句和resultset)。

 

在spy.properties如上图添加一个自定义的类,该类实现P6logger接口,实现logSQL方法

    @Override
public void logSQL(int connectionId, String now, long elapsed, String category,
String prepared, String sql) {
if (!"resultset".equals(category)){
// 按指定模式在字符串查找
String regex = "^update.*|^insert.*|^delete.*";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(sql);
if (matcher.find()) {
System.out.println("【SQL】" + sql);
}
}
}


ui自动化测试数据复原遇到的坑——1、hibernate输出完整sql的相关教程结束。

《ui自动化测试数据复原遇到的坑——1、hibernate输出完整sql.doc》

下载本文的Word格式文档,以方便收藏与打印。