51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 7370|回复: 44
打印 上一主题 下一主题

[原创] QTP录制时选择的日期如何自动设置为服务器日期

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-1-11 14:29:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我昨天录制的脚本运行时没有问题,但今天运行时报错,原因是录制时Tax Date选择的日期是10 Aug 2006(服务器日期),而Completed-By的日期是11 Aug 2006(当前服务器日期),造成检查点通不过,请问我应该怎么设置Tax Date为当前的服务器日期?

我是新手,还不会在专家视图里面写脚本,请多指教,谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-1-11 15:31:08 | 只看该作者
把检查点参数化一下吧,参数化方法可以看一下帮助
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-1-11 16:15:54 | 只看该作者
十分谢谢xiaonan的答复。

我现在的测试环境比较麻烦,本机是当前日期,而服务器是2006年8月,所以Tax Date录制时选择的日期是10 Aug 2006,Completed-By的日期是11 Aug 2006,检查点是设置的提示信息检查点:Tax Date not be earlier than Completed Date of the last Completed-By entry in the Job Details!
我想你说的检查点参数化是否是指Tax Date参数化?日历控件怎么参数化?现将相关脚本贴在下面,请问能否提供修改脚本?谢谢!

Browser("Service Management System").Page("Service Management System_2").Frame("mainFrame_9").Check CheckPoint("Tax Date not be earlier")
Browser("Service Management System").Page("Service Management System_2").Frame("mainFrame_11").Image("calendar").Click
Browser("Calendar").Page("Calendar_2").Link("10").Click

附件是相关截屏

[ 本帖最后由 madeleine 于 2007-1-17 14:37 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-1-11 16:38:49 | 只看该作者
对于检查点参数化,可以在关键字视图里找到该检查点,在值的地方,参数化
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2007-1-11 17:10:47 | 只看该作者
下面截图中的Tax Date的日期10是否就是该检查点的值呢?如是,请问又怎么参数化呢?这个日期每月、每天都会变的,我的意思是想设置为服务器当前日期,这样才不会报错,请问应该怎么设置呢?

[ 本帖最后由 madeleine 于 2007-1-17 14:47 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-1-11 17:15:51 | 只看该作者
获得系统的当前日期比较简单,只要date函数就可以.
Dim MyDate
MyDate = Date ()
但说实话,你的问题,我还没太直观的理解.呵呵
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2007-1-11 17:40:02 | 只看该作者
谢谢,我就是不知道应该怎么使用各种函数,能否将常用的函数提供一下呢?非常感谢!
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2007-1-11 17:42:18 | 只看该作者
就是vbscript的函数拉,找这方面的资料,看看吧
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2007-1-11 17:54:48 | 只看该作者
谢谢指教!学习中......
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2007-1-16 15:29:56 | 只看该作者
首先要连上数据库,Tax Date变量取数据库时间;
例:set rs = conn.Execute("select SYSDATE()")
      Tax Date = rs("SYSDATE()").Value
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2007-1-17 12:23:47 | 只看该作者
谢谢netsky_It!
我感觉实际操作起来还是有点困难,因为我对编程不熟悉。比如我按xiaonan介绍的方法获得系统的当前日期:
Dim MyDate
MyDate = Date ()
但并没有获取到当前日期,运行时日期为空

并按风过无息的指教:
当前日期用date,大于当前日期就date+1,小于就date-1
我综合了一下,用下面方法
Dim MyDate
MyDate = Date ()
MyDate = Date +1
MyDate = Date -1
也没有获取到日期,请问一下是哪里写错了吗?下面是我录制的脚本:

Browser("Service Management System").Page("Service Management System_2").Frame("mainFrame_6").Image("calendar").Click
Browser("Calendar").Page("Calendar").Link("<").Click
Browser("Calendar").Page("Calendar").WebList("cpMonth").Select "August"
Browser("Calendar").Page("Calendar").Link("3").Click

我修改为:
Browser("Service Management System").Page("Service Management System_2").Frame("mainFrame_6").Image("calendar").Click
Dim MyDate
MyDate = Date ()

下面还需要什么语句吗?谢谢指教!
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2007-1-17 12:26:41 | 只看该作者
Dim MyDate
MyDate = Date
MyDate = Date +1
MyDate = Date -1
把括号去掉。
回复 支持 反对

使用道具 举报

该用户从未签到

13#
 楼主| 发表于 2007-1-17 12:56:40 | 只看该作者
十分感谢风过无息。但把括号去掉运行时仍然没有获取到日期,是怎么回事呢?
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2007-1-17 13:08:25 | 只看该作者
'取当前系统时间
MyDate = Date
'取当前系统时间的后一天
MyDate1 = Date +1
'取当前系统时间的前一天
MyDate2= Date -1
回复 支持 反对

使用道具 举报

该用户从未签到

15#
 楼主| 发表于 2007-1-17 14:15:48 | 只看该作者
我试过了,还是没取到日期,只取当前日期都不行,还是为空sdlkfj9
请问下面脚本哪里错了呢?谢谢
Browser("Service Management System").Page("Service Management System").WebEdit("username").Set "sysadmin"
Browser("Service Management System").Page("Service Management System").WebEdit("passwordx").SetSecure "45ab447bffb3a2335313be25c00a9b755faea1659802"
Browser("Service Management System").Page("Service Management System").Image("BtnOK").Click
Browser("Service Management System").Page("Service Management System_2").Frame("mainFrame").Link("Guarantee").Click
Browser("Service Management System").Page("Service Management System_2").Frame("mainFrame_2").Image("calendar").Click
Dim MyDate
MyDate = Date
Browser("Service Management System").Page("Service Management System_2").Frame("mainFrame_2").Link("Logout").Click
Browser("Service Management System").Page("Service Management System_2").Frame("mainFrame_3").Link("here").Click
Browser("Service Management System").Page("Service Management System_2").Sync
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2007-1-17 14:24:16 | 只看该作者
now()
不是date
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2007-1-17 14:34:31 | 只看该作者
不好意思,没有看清楚你需求,其实你要的是往一个日期输入域里输入当前日期。
最好你不要点calendar了,直接用Set方法吧。
另外now方法是把时间包括小时和分取出来,我觉得不应该是你要的日期。
回复 支持 反对

使用道具 举报

该用户从未签到

18#
 楼主| 发表于 2007-1-17 15:00:11 | 只看该作者
我就是想在一个日期栏输入当前日期,怎么用Set方法呢?我用帮助里面的
SetDate Date
报错:Type mismatch:'SetDate'

Browser("Service Management System").Page("Service Management System_2").Frame("mainFrame_2").Image("calendar").Click
SetDate Date
回复 支持 反对

使用道具 举报

该用户从未签到

19#
 楼主| 发表于 2007-1-17 16:16:29 | 只看该作者
我上面的语句哪里出错了呢?请帮帮忙吧,谢谢了
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    20#
    发表于 2007-1-18 09:20:11 | 只看该作者

    请参考下面的代码

    'The following is the dscript  to get the date of today, such as 06-1-4
    Dim  CurrentDate
    CurrentDate = FormatDateTime(Date, 2)
    ' GetCurrentDate  =  2006-1-4   
    Dim ExpectedDate
    'ExpectedDate = Mid( GetCurrentDate,3)
    ' ExpectedDate =  06-1-4  

    Select  Case Len(CurrentDate)
           
    ' CurrentDate  =  2006-1-5(for instance)      ' ExpectedDate  =  1/5/06 (for instance)            
         Case  8
        ExpectedDate = Cstr( Mid(CurrentDate,6,1))  & "/"  & Cstr( Right(CurrentDate,1)) & "/"  & Cstr( Mid(CurrentDate,3,2))
       
         Case 9
         Rem    <<<<<<<<<<<Isnumeric(Mid(CurrentDate,6,2))  is the statement of the month of  the date
           ' CurrentDate  =  2006-10-5(for instance)         ' ExpectedDate  =  10/5/06 (for instance)            
           If  Isnumeric(Mid(CurrentDate,6,2))  Then
        ExpectedDate = Cstr( Mid(CurrentDate,6,2))  & "/"  & Cstr( Right(CurrentDate,1)) & "/"  & Cstr( Mid(CurrentDate,3,2))

            ' CurrentDate  =  2006-1-25(for instance)          ' ExpectedDate  =  1/25/06 (for instance)            
            Else   ExpectedDate = Cstr( Mid(CurrentDate,6,1))  & "/"  & Cstr( Right(CurrentDate,2)) & "/"  & Cstr( Mid(CurrentDate,3,2))
           End If
       
       Case 10
         'CurrentDate  =  2006-10-15(for instance)          ' ExpectedDate  =  10/15/06 (for instance)               
        ExpectedDate = Cstr( Mid(CurrentDate,6,2))  & "/"  & Cstr( Right(CurrentDate,2)) & "/"  & Cstr( Mid(CurrentDate,3,2))
             
        End Select

      ' Msgbox(Cstr(ExpectedDate))
       Dim checkedDate
       checkedDate = Cstr(ExpectedDate)
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-23 07:03 , Processed in 0.085759 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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