惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
Microsoft Security Blog
Microsoft Security Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 叶小钗
博客园 - 三生石上(FineUI控件)
爱范儿
爱范儿
T
Tailwind CSS Blog
F
Fortinet All Blogs
Blog — PlanetScale
Blog — PlanetScale
WordPress大学
WordPress大学
H
Help Net Security
Apple Machine Learning Research
Apple Machine Learning Research
Y
Y Combinator Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
GbyAI
GbyAI
Martin Fowler
Martin Fowler
有赞技术团队
有赞技术团队
腾讯CDC
V
V2EX
Jina AI
Jina AI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
B
Blog
M
MIT News - Artificial intelligence
宝玉的分享
宝玉的分享

博客园 - winterson

常见的内存错误及对策 共享一个完美的WR wordfile,让你的Script在UE中更方便阅读 - winterson - 博客园 侃侃男人的品位:Boy to Man to Real Man!!! - winterson 一首好动情的歌,我喜欢 软件测试相关的63个国外站点 (原创)关于WR获取文件大小的解决方法 测试需求定义(参考RUP测试实践) 最全的DOS命令 - winterson - 博客园 国内部分高校FTP站点 美国杂志300强及其网址 (转自51testing BBS)成功或失败前 请先全力以赴 (转载)跨越软件测试术语“拦路虎” 测试用例设计的误区 (转载)软件测试效率(test efficiency) TestDirector数据库移植到SQL Server后出现的问题及解决(一) 舒伯的生涯发展理论(转贴) QuickTest Professional 8 Tutorial 中文版 二篇自動化測試的文章 ( 來自 IBM ) 自動化 Windows Forms ( 來自微軟 )
(原创)WinRunner数据库检查解决方案(一) - winterson - 博客园
winterson · 2006-05-22 · via 博客园 - winterson

论坛上看到许多测友提到数据库验证的方法,如"我想通过数据驱动方式在系统中插入记录,没插入一条就和数据库进行比较,看插入操作后数据库中是否存在,这个怎么实现啊,我通过设运行时数据库检查点老报错",我想了几个解决方案,希望对大家有用;

基本思路:

一.在ODBC中配置数据源
二.使用WR的db_connect建立数据库连接
三.使用WR的db_excuate_query函数执行SQL语句,查询出要查询的内容
四.比较读取的值与预期的值,得出结果

我写了一个去数据库最后一条信息的函数:

public function db_get_last_row(in ConnectStr,in SQL,in column,out fieldnum,out header_arr[])
{
 auto rc,res=0,val,record_num,Row_Content;

 rc=db_connect("query1",ConnectStr,30);
 if (rc!=E_OK){pause("Database connect fail");res=1;return(res);}
 val=db_execute_query("query1",SQL,record_num);
 if (val!=0){pause("SQL string is invaild");res=1;return(res);}
db_get_headers("query1",fieldnum,headers);
split (headers, header_arr, "\t");
 Row_Content=db_get_field_value("query1","#"&(record_num-1),column); 
 return(Row_Content);
}

其中column可以使用#+列号获取相应列的值,这样我们可以用一个for循环分别获取从第1列到最后一列的信息,并比较,这里又有个新问题:如何获取一个表的列数,WR提供db_get_headers函数获取列数。

在比较时写以下代码:
db_get_last_row("数据库连接语句","select top 1 * from 数据库表 order by ID(或一个能表示最新值的字段)","",fieldnum,header_arr);  //至于升序还是降序则需要根据具体软件了
for(i=0;i<fieldnum;i++)
{
   Row_content=db_get_last_row("数据库连接语句","select * from 数据库表",#i,fieldnum);
   if (Row_content!="预期结果值")
   {
          report_msg("数据库内容与预期结果不一致"&"实际结果:"header_arr[i]&"="&Row_content);
         continue;
   }
}

这样,在数据驱动中加入我写的这个函数可以不断比较添加的值与数据库中的值的问题了!
以上这种方法是使用函数对数据库操作,我觉得还有其他方式,比如使用WR的数据库检查点,后面我会把这些方法都总结写到这里来,希望大家一起来探讨一下;