51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 7021|回复: 14
打印 上一主题 下一主题

[原创] 怎么取到没有显示在表单中的某个字段的值?(较高深)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-8-19 14:00:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
场景1:在录制和写QTP脚本时,需要设置一个检查点,既判断某个资源预定结束时间是否是预定开始时间+3个工作日(精确到时分秒),但预定开始时间并没有显示在页面的表单中(注:这些字段存在一个表中),请问大家,怎么写脚本实现这个检查点的功能?

场景2:当取到预定开始时间和预定结束时间后,怎么写脚本实现,根据两值比较大小的不同,去检查在页面上抛出不同的信息提示,而这些信息是我期望的?

场景3:当在页面上,取消某个资源的预定记录,code会根据当前记录的预定投放周期后,有否另外预定记录,若有,成功取消,反之则抛出期望的信息提示。
此检查点又怎么实现呢?

场景4:对于某个用户登陆到系统后,他能够看到或操作哪些字段(权限的控制,是存在表中的),怎么关联这些表的记录和username 来决定其操作权限是否合法,怎么用QTP 脚本的检查点来实现?

我的初步想法,可能需要QTP去和数据库交互去验证,但很难找到这方面的实例,所以到这里来和高手探讨,向大家学习呀。。。

提示:对于回答的人来说,如果我的问题让你,不是有耐心的,具体的回答,也请建议我:在提问的问题上有哪些疏忽,谢谢。

[ 本帖最后由 applebugs 于 2006-8-19 14:30 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2006-8-19 22:48:03 | 只看该作者
场景1:"我的初步想法,可能需要QTP去和数据库交互去验证,但很难找到这方面的实例,所以到这里来和高手探讨,向大家学习呀。。。"
的确可以通过QTP直接去连数据库来取值.其实也就是用vbscript与数据库通过ado来连接.如果楼主不清楚代码怎么写,可以搜一下帖子,这方面的太多了,怎么会找不到呢?这里先给你一段.
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="selec t * from 表 where name=username"
Cmd.CommandText = sql
Set res = Cmd.Execute()
Set res = nothing
Set cmd.ActiveConnection = nothing
Set Cmd= nothing

场景2:取到两个时间后,你用if语句来判断一下就行了,然后加Reporter.ReportEvent 就会把结果打到结果记录里去了.
if 预定开始时间=预定结束时间 then
  Reporter.ReportEvent 0, "验证正确"," pass"
else
  Reporter.ReportEvent 1, "验证错误"," failed"
end if

场景3:你可以判断期望的信息提示是否被抛出来判断.
场景4:你也可以直接通过从数据库取值来判断

[ 本帖最后由 xiaonan 于 2006-8-19 22:49 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2006-8-21 18:47:15 | 只看该作者
我的数据库是用oracle 9i的,我在研究研究,搞定后大家再分享分享,大家先讨论讨论
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2006-8-22 08:34:55 | 只看该作者
进来拜高手
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2006-8-22 09:51:00 | 只看该作者
oracle 的一样可以啊,只是数据源设置有所不同而已
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2006-8-22 11:30:11 | 只看该作者
可以参考一下以下代码:
Oracle格式:(本地需要安装Oracle ODBC DRIVER)
connectionstring(连接字符串):
1.本地没有创建数据源的方式
DRIVER={Oracle in OraHome92};SERVER=数据库服务名;UID=用户名;PWD=密码;DBQ=数据库名;DBA=W;APA=T;EXC=F;XSM= Default;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=Lo;BAM=IfAllSuccessful;MTS=F;MDI=Me;CSR=F;FWC=F;PFC=10;TLO=O;

实例:
DRIVER={Oracle in OraHome92};SERVER=DCWORK;UID=DCWORK;PWD=DCWORK;DBQ=DCWORK;DBA=W;APA=T;EXC=F;XSM=Default;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=Lo;BAM=IfAllSuccessful;MTS=F;MDI=Me;CSR=F;FWC=F;PFC=10;TLO=O;



2.本地已创建数据源的方式
DSN=数据源名称;UID=用户名;PWD=密码;DBQ=数据库名;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10; FDL=10;LOB=T;RST=T;GDE=F;FRL=F;BAM=IfAllSuccessful;MTS=F;MDI=F;CSR=F;FWC=F;PFC=10;TLO=0;

实例:
DSN=dcworkoracle;UID=DCWORK;DBQ=DCWORK;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=F;BAM=IfAllSuccessful;MTS=F;MDI=F;CSR=F;FWC=F;PFC=10;TLO=0;

3.SQL语句实例
source:SQL语句
SELECT HR_LANGUAGE_TYPE.LANGUAGE_NAME  FROM DCWORK.HR_LANGUAGE_TYPE HR_LANGUAGE_TYPE  WHERE (HR_LANGUAGE_TYPE.LANGUAGE_NAME='中文')  ORDER BY HR_LANGUAGE_TYPE.LANGUAGE_NAME
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2006-8-23 10:29:59 | 只看该作者

经整理后QTP与oracle连接

Dim Cnn
Dim Rst
Dim strCnn
Dim TestNumberOne
Dim TestNumberTwo
strCnn = "Provider=MSDAORA.1;Data Source=yourtnsname;Password=yourpassword;User ID=youruserid;Persist Security Info=True"
Set Cnn = CreateObject("ADODB.Connection")

Cnn.Open strCnn

Set Rst =CreateObject("ADODB.Recordset")
Rst.open "select *From table_name where id in (300041, 300040)", Cnn
Rst.MoveFirst
Do while Rst.EOF <> True
        TestNumberOne = Trim(Rst.Fields(8))
        TestNumberTwo = Trim(Rst.Fields(9))

         msgbox  TestNumberOne
         msgbox  TestNumberTwo

         
        If TestNumberOne < TestNumberTwo Then

            Reporter.ReportEvent micPass, "testing", "开始时间小于结束时间"       
        else
          Reporter.ReportEvent micFail, "testing",   "开始时间大于等于结束时间"
        End If

        Rst.MoveNext
       
Loop
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2006-8-23 10:33:24 | 只看该作者

怎么取到WEB server(linux)系统的当前时间?

原帖由 applebugs 于 2006-8-19 14:00 发表
场景1:在录制和写QTP脚本时,需要设置一个检查点,既判断某个资源预定结束时间是否是预定开始时间+3个工作日(精确到时分秒),但预定开始时间并没有显示在页面的表单中(注:这些字段存在一个表中),请问大家, ...



对于场景1的case,预定的开始时间,要大于当前的系统时间(linux web server),请问怎么取到该值呀?
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2006-8-23 13:31:51 | 只看该作者

自顶一个

自顶一个
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2006-12-7 15:52:38 | 只看该作者
系统时间就不知了,数据库时间可以吗?
例:set rs1 = conn.Execute("select SYSDATE()")
      time1 = rs1("SYSDATE()").Value
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2007-12-5 12:51:23 | 只看该作者
杂看不懂哟,要学习一下
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2007-12-5 15:52:43 | 只看该作者
试试看这个。。
Set myCmd = CreateObject("WScript.Shell")
myCmd.Run "cmd /c net time \\ip >> C:\test.txt"
set myCmd = nothing
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2007-12-6 10:55:58 | 只看该作者
果然有高手
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2009-1-15 15:54:10 | 只看该作者
学习学习呀
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2010-9-26 15:52:07 | 只看该作者
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-14 23:30 , Processed in 0.087639 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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