51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3035|回复: 9
打印 上一主题 下一主题

[原创] 如何对查寻出来的显示结果根据数据库的查询sql进行检查

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-7-6 11:34:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有一个查询界面 , 查询结果中有一个总记录条数的显示: 第1页 共3页 共21条. 想做以下检查
用sql 在数据库中查询到该查询结果的条数,然后再用它跟显示中的"21"进行比较。

怎样写这样的脚本呢?以前有例子吗?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2006-7-6 12:46:14 | 只看该作者
你这就是一个连接数据库的问题,已经有很多帖子讲到了.参考一下这段代码
Dim res,cmd,sql
Set Res=createobject("adodb.recordset")
Set Cmd=createobject("adodb.command")
Cmd.activeconnection="Provider=SQLOLEDB.1;Password=111111;Persist Security Info=True;User ID=sa;Initial Catalog=xhq;Data Source=192.168.191.142"
Cmd.CommandType = 1
sql="select name from company where (id=1)"
Cmd.CommandText = sql
Set res = Cmd.Execute()
Set res = nothing
Set cmd.ActiveConnection = nothing
Set Cmd= nothing
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2006-7-6 14:27:52 | 只看该作者
可能是我没表达清楚, 连接数据库的方法已经在论坛里找到了,也已经调试通过了.
但是我不知道怎样在expert view中,把" 第1页 共3页 共21条" 这个界面显示的对象提出来.录制后的脚本是这样的:
Browser("查询页面").Page("查询页面1").WebEdit("WebEdit").Set "2006-05-06 00:00:00"
Browser("查询页面").Page("查询页面1").WebEdit("WebEdit_2").Set "2006-07-06 10:30:30"
Browser("查询页面").Page("查询页面1").WebButton("查 询").Click
Browser("查询页面").Page("查询页面1").Sync
在active screen中,有显示     第1页 共3页 共21条。 建附件图

我想用脚本把这个“21” 跟数据库中的sql查询出来的结果做比较,数据库的查询连接等脚本已经ok了,但是怎样在脚本中把这个"21" 的对象表示出来?
Dim res, cmd, sql,num
Set res = CreateObject("adodb.recordset")
Set cmd = CreateObject("adodb.command")
Set conn = CreateObject("ADODB.Connection")
conn.Open "lnkfdev", "kf", "kf"
cmd.ActiveConnection = conn
cmd.CommandType = 1
sql = "select count(seat_id) from fm_seat "
cmd.CommandText = sql
Set res = cmd.Execute(sql)
num=Cint(res.fields(0))
if ....

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2006-7-6 17:26:45 | 只看该作者
用GetROProperty方法,找到该对象的相应属性给取出来啊.
列如:a=Window("Flight Reservation").WinEdit("Order No:").GetROProperty("Text")
还有稍微提一句,你可以直接把图片放在附件里上传上来,别人也容易看.你放在一个文档里打开麻烦
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2006-7-6 21:07:30 | 只看该作者
var_GetROProperty = Browser("查询页面").Page("查询页面").WebElement("共 21 条").GetROProperty("Text")
msgbox var_GetROProperty

这一句为什么总返回是  空 呢? var_GetROProperty 总是为空, 我希望返回的是 WebElement中的  "共 21 条". 在object reporsitory 中看到 了这个object 了. 帮忙点拨一下.
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2006-7-7 09:05:40 | 只看该作者
你用object spy看一下这个对象的属性,看看描述这个值的是哪个属性名,不一定是text的,
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2006-7-7 14:25:17 | 只看该作者
调试通过了,下面是完整脚本.谢谢xiaonan. 但是还有一个问题请教, WebElement("共 21 条") 这个"21"是变化的, 怎样去定义呢?

Browser("系统").Page("系统").Frame("FrameMain").Image("03_tsyjy_2").FireEvent "onmouseover"
Browser("系统").Page("系统").Frame("FrameMain").Image("03_tsyjy_2").Click
Browser("系统").Page("系统").Frame("FrameMain").WebElement("查询").Click
Browser("查询页面").Page("查询页面").WebEdit("WebEdit").Set "2006-05-06 00:00:00"
Browser("查询页面").Page("查询页面").WebEdit("WebEdit_2").Set "2006-07-06 10:30:30"
Browser("查询页面").Page("查询页面").WebButton("查 询").Click
Browser("查询页面").Page("查询页面").Sync

Public var_GetROProperty
var_GetROProperty = Browser("查询页面").Page("查询页面").WebElement("共 21 条").GetROProperty("innerText")
str1=Instr(var_GetROProperty," ")

''**********替代字串函数
Function ReplaceTest(patrn, replStr)
   Dim regEx                 ' Create variables.
   Set regEx = New RegExp            ' Create regular expression.
          regEx.Pattern = patrn            ' Set pattern.
          regEx.IgnoreCase = True            ' Make case insensitive.
          ReplaceTest = regEx.Replace(var_GetROProperty, replStr)   ' Make replacement.
End Function

'*********剔除获取变量字符串的空格,并去掉第一个及最后一个字符
Dim str1,str2,str3
Do while str1<>0
    str1=Instr(var_GetROProperty," ")
        str2=ReplaceTest(" ","")  
        var_GetROProperty=str2
        Msgbox str1
        Msgbox str2
Loop

str3=Right(var_GetRoProperty, Len(var_GetRoProperty)-1) '向右移一个字符显示
var_GetRoProperty=Left(str3,Len(str3)-1) '向左移一个字符显示


'*********与数据库内容比较
Dim res, cmd, sql,num
Set res = CreateObject("adodb.recordset")
Set cmd = CreateObject("adodb.command")
Set conn = CreateObject("ADODB.Connection")
conn.Open "lnkfsc", "kf", "kf123"
cmd.ActiveConnection = conn
cmd.CommandType = 1
sql = "select count(*) from as_work_accept where accept_date >= to_date('2006-05-06 00:00:00','yyyy-mm-dd hh24:mi:ss') and accept_date <=to_date('2006-07-06 10:30:30','yyyy-mm-dd hh24:mi:ss')"
cmd.CommandText = sql
Set res = cmd.Execute(sql)
num=Cint(res.fields(0))
If num= var_GetROProperty-1 Then
   Reporter.ReportEvent micpass, "test", "output"
Else
   Reporter.ReportEvent micfail, "testl", "fail"
End If
conn.Close
Set res = Nothing
Set cmd = Nothing
Set conn = Nothing
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2006-7-7 17:59:23 | 只看该作者

你这样编码如何适应变化

var_GetROProperty = Browser("查询页面").Page("查询页面").WebElement("共 21 条").GetROProperty("innerText")

WebElement("共 21 条")  "共 21 条" 应该用正则表达式,名字怎么叫都可以,只要对上就可以了
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2006-7-12 11:56:41 | 只看该作者
“共 21 条” 中的“21” ,可以在录制时设置为输出值检查点吗?然后再赋值给一个变量,再作比较/
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2006-7-13 21:11:53 | 只看该作者
没有对上面的脚本做任何修改,当实际运行时,数据库内只有17条,并且显示也是"共17条" , 运行后,结果为本passed. 只是result报告中给了以下warning. 这样的结果已经是我需要的了.多谢各位 .


Object  Details  Result  Time  
   
"共 21 条"- Smart Identification The smart identification mechanism was invoked.

Reason: object not found.

Original description:
micclass=WebElement
innertext=共 21 条
html tag=LABEL

Smart Identification Alternative Description:

Base filter properties (20 objects found)
micclass=WebElement
html tag=LABEL

Optional filter properties
html id=FootTable_SearchAppealResultTable_RowCount (Used, 1 matches)
class= (Ignored)
innertext=共 21 条 (Ignored)
visible=-1 (Ignored)
Done 2006-7-13 - 20:48:47
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-26 03:35 , Processed in 0.074030 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表