QTP高人笔记:无参数化数据库查询与收文测试

需积分: 0 2 下载量 72 浏览量 更新于2024-09-17 收藏 63KB DOC 举报
在QTP(Quick Test Professional)的编程实践中,这位高人分享了一段关于如何连接数据库并进行无参数化查询的例子。首先,他演示了如何执行一个查询来检查"收文操作"的记录数量,这通常用于验证数据的完整性或测试流程中的某个预期状态。 1. **连接数据库与查询操作**: - 使用`adodb`对象模型,创建`ADODB.Recordset`和`ADODB.Command`对象,用于执行SQL查询。这里的关键代码是`Cmd.CommandText = "select count(*) from oa_receivebumf where BUMFNAME like '%收文测试%'"`,这表明查询的是名为"oa_receivebumf"表中BUMFNAME字段包含"收文测试"关键词的记录总数。 2. **无参数化查询**: - 注意到SQL语句中没有使用变量`nn`,这表示查询是静态的,没有使用参数化查询,这意味着如果需要处理不同条件,可能需要对代码进行修改以避免SQL注入风险。 3. **比较记录数**: - 在查询后,将返回的记录数与预先设定的目标值(如`mm`)进行比较。如果两者相等,则认为测试通过(`Reporter.ReportEvent micPass`),否则报告失败(`Reporter.ReportEvent micfail`)。 4. **利用DataTable**: - 代码中提到`DataTable.GlobalSheet.GetParameter("mainFrameOutput_Text_out").Value`,这表明可能存在一个全局的数据表格(DataTable),用于存储测试参数或预期结果。`mm=DataTable("mainFrameOutput_Text_out", dtGlobalSheet)`用来读取这个DataTable中的特定值。 5. **错误处理与消息框**: - 通过`MsgBox`函数展示查询结果,如`res(0)`,并且在比较结果时使用`Cstr()`函数转换为字符串类型,确保了数据类型的兼容性。 总结来说,这段代码展示了如何在QTP中进行基本的数据库交互,包括连接、执行SQL查询和处理查询结果。它强调了参数化查询的重要性以及在测试过程中数据验证的实践,这对于保证测试准确性和代码健壮性至关重要。同时,它还提到了使用DataTable作为测试数据管理工具的实践,有助于保持测试脚本的整洁和可维护性。