51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

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

[Robot] 看了精华区的计算器例子后,自己也写了一个类似的例子,有不足的地方请大虾指教.

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2005-1-5 11:45:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
'$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

有什么不足之处,希望大虾不吝赐教,大家彼此学习进步,谢谢。

[ Last edited by guirongb on 2005-1-7 at 10:06 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏

该用户从未签到

2#
发表于 2005-1-5 12:15:06 | 只看该作者
这么做是为了自动化而自动化!偏重技术实现,
其中没有涉及到软件自动化测试中测试自动化和测试流程 还有 用例方面的结合

建议写点如何转化用例为脚本方面的经验

个人建议!
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2005-1-5 12:58:41 | 只看该作者
PCL大虾,你说的很对,不过,我这么写只是为了这个例子,并不是一个项目或者产品的测试。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2005-1-19 16:59:29 | 只看该作者
我来顶一下
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2005-1-20 10:08:25 | 只看该作者
现在很强嘛,hoho
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

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

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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