51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2575|回复: 4
打印 上一主题 下一主题

[Robot] 我贴个计算器的例子,大家来捧捧场好哇?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2005-4-27 09:57:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
看了精华区的计算器例子后,自己也写了一个类似的例子,有不足的地方请大虾指教.

'$include "SQAUTIL.SBH"

Declare function Randomlong(min as long,max as long) as long

Function Randomlong(min as long,max as long) as long
dim i,j,k as integer
dim m,tmp as long
m=rnd*25551/139
j=fix(log(min))+1
k=fix(log(max))+1
i=fix((j+k)/5)+3
do while(tmp<min or tmp>max)
randomize timer()+m
tmp=clng(rnd*(10^i))
loop
randomlong=tmp
end function


Sub Main
    Dim Result As variant
    dim Push_Num(1 to 9) as integer
    dim oper (1 to 4) as integer
   
    dim Push_object as string
    dim i,j,k as long  
    dim cal_rec as variant
   
    dim m as integer
    'Initially Recorded: 2005-1-5  9:45:35
    'Script Name: calu
    '描述: 随机的进行运算,然后将结果比较后,在Console显示出来
    StartApplication "C:\WINNT\system32\calc.exe"
    '将数字PushButton 转换成 ObjectIndex 识别
    Push_Num(1)= 7
    Push_Num(2)= 11
    Push_Num(3)= 15
    Push_Num(4)= 6
    Push_Num(5)= 10
    Push_Num(6)= 14
    Push_Num(7)= 5
    Push_Num(8)= 9
    Push_Num(9)= 13
   
    '将操作符号 转换成 ObjectIndex 识别
    oper(1) = 20 '+
    oper(2) = 19 '-
    oper(3) = 18 '*
    oper(4) = 17 '/
    for m = 1 to 6 ‘自己决定进行多少次运算

    Window SetContext, "Caption=计算器", ""
    '随机产生第一个PushBotton加数(或者其他)
    i=Randomlong(1,9)
    Push_object = "ObjectIndex=" & cstr(Push_Num(i))   
    PushButton Click, Push_object
    '随机产生一个操作符(+ - * /)
    j=Randomlong(1,4)
    Push_object = "ObjectIndex=" & cstr(oper(j))
    PushButton Click, Push_object

    '随机产生第二个PushBotton加数(或者其他)
    k=Randomlong(1,9)
    Push_object = "ObjectIndex=" & cstr(Push_Num(k))
   PushButton Click, Push_object
   
    '按=号
    PushButton Click, "ObjectIndex=21"
   
    '验证结果
    sqaconsolewrite "计算器执行的操作是:"  & cstr(i)

    select case j
     case 1
        sqaconsolewrite "+"
        result= i + k
     case 2
        sqaconsolewrite "-"
        result = i - k
     case 3
        sqaconsolewrite "*"
        result = i * k

     case 4
        sqaconsolewrite "/"
        result = i / k

     end select
    sqaconsolewrite  cstr(k)
    sqaconsolewrite  "正确结果应该是:" & cstr(result)   

  
    Window SetContext, "Caption=计算器", ""
    Label Click, "objectindex=1"
    result =sqagetproperty("Type=Label;ObjectIndex=1","Text",cal_rec)
    if result = sqaSuccess then
       sqaconsolewrite "计算器的结果是" & cal_rec
    else
       sqaconsolewrite "Failed !! "
    end if
next m
End Sub


这个例子比原来帖子上的更加深了一些,在Win2000上调试通过。
如果在XP上可能通不过,将Lable的地方改成EditBox就行了,路径也改一下,改成自己存放calc.exe的地方。

下面是运行结果:

计算器执行的操作是:9
-
9
正确结果应该是:0
计算器的结果是0.
计算器执行的操作是:7
-
8
正确结果应该是:-1
计算器的结果是-1.
计算器执行的操作是:7
/
9
正确结果应该是:.777777777777778
计算器的结果是0.77777777777777777777777777777778

有什么不足之处,希望大虾不吝赐教,大家彼此学习进步,谢谢。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
  • TA的每日心情
    奋斗
    11 小时前
  • 签到天数: 3653 天

    连续签到: 105 天

    [LV.Master]测试大本营

    2#
    发表于 2005-4-27 10:06:03 | 只看该作者
    计算器的例子,感觉IBM站上那个比较好。
    Choosing a test automation framework:http://www-106.ibm.com/developerworks/rational/library/591.html
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2005-4-27 10:25:27 | 只看该作者
    谢谢楼主的热心!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    11 小时前
  • 签到天数: 3653 天

    连续签到: 105 天

    [LV.Master]测试大本营

    4#
    发表于 2005-4-27 10:52:28 | 只看该作者
    自己决定进行多少次运算前面的符号不对。
    calc.exe最好自动判断,而不是要大家修改。
    另外 Randomlong做什么用的,感觉不是很明了,最好能说明一下。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2005-4-27 11:13:23 | 只看该作者
    那个函数在一开始说明了阿?
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-26 20:37 , Processed in 0.072908 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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