51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3055|回复: 3
打印 上一主题 下一主题

[原创] 测试计算器的脚本

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-5-11 18:00:37 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
'#############程序说明开始###########################
'被测对象:windows自带的计算器
'功能:
'1.随机产生数
'2.生成日志文件   
'作者:小强

'更多视频作品请关注www.boobooke.com/bbs,小强作品
'多多在线看视频,适量点击视频左侧广告就是对我们的支持

'我的blog:http://blog.sina.com.cn/xqtesting
'############程序说明结束##################################

Option Explicit '强制声明变量
Environment.Value("RunTimes") =3' 执行测试次数

'主函数'开始

'让QTP运行时保持最小化
Dim objQTPWin
Set objQTPWin = GetObject("" , "QuickTest.Application")
objQTPWin.WindowState = "Minimized"

'获取当前日期和时间
Dim currentTime,currentDate
currentDate = Date
currentTime = Time

'写入测试报告
Dim fileSystemObj,fileSpec,logFile
Set fileSystemObj = CreateObject("Scripting.FileSystemObject")
fileSpec ="C:\" &"计算器测试报告-小强"& ".txt"
Set logFile = fileSystemObj.OpenTextFile(fileSpec, 8, true)
logFile.WriteLine ("##############################################")
logFile.WriteLine ("######被测对象:windows自带的计算器#########")
logFile.WriteLine ("######作者:小强    blog:http://blog.sina.com.cn/xqtesting ########")
logFile.WriteLine ("##### 测试日期:" + cstr(currentDate) + cstr(currentTime) +  " ####")
logFile.WriteLine("#####更多小强作品:www.boobooke.com/bbs ########")
logFile.WriteLine ("##############################################")
logFile.WriteLine ("")

Dim i,op1,op2,operator

For i =1 to Environment.Value("RunTimes") '要循环的次数

SystemUtil.Run "C:\WINDOWS\system32\calc.exe","","","open"

Set op1=description.Create()
Set op2=description.Create()

op1("text").value=randomnumber(0,9)
op2("text").value=randomnumber(0,9)

Window("计算器").Activate
Window("计算器").WinButton(op1).Click

Window("计算器").Activate
operator = GetOperation()

Window("计算器").Activate
Window("计算器").WinButton(op2).Click

Window("计算器").Activate
Window("计算器").WinButton("=").Click

'获取实际结果
    Dim RealValue
    RealValue = Window("计算器").WinEdit("Edit").GetROProperty("text")

        Dim express '测试表达式
    Select Case operator
        Case 0  express = cstr(op1("text").value) + "+" + cstr(op2("text").value) + "= ?"
        Case 1  express = cstr(op1("text").value) + "-" + cstr(op2("text").value) + "= ?"
        Case 2  express = cstr(op1("text").value) + "*" + cstr(op2("text").value) + "= ?"
        Case 3  express = cstr(op1("text").value) + "/" + cstr(op2("text").value) + "= ?"
    End Select

    logFile.WriteLine ("测试表达式:" + express)
    logFile.WriteLine ("计算结果为:" + trim(cstr(RealValue)))
    logFile.WriteLine ("" )

    Window("计算器").Close
Next

'关闭文件
logFile.Close
Set logFile = Nothing

'恢复QTP窗口
objQTPWin.WindowState = "Restored"
Set objQTPWin = Nothing

'随机生成操作符
Function GetOperation()
    Dim oper
    oper =randomnumber.Value(0,3)
    Window("计算器").Activate
    Select Case oper
        Case 0  Window("计算器").WinButton("+").Click
        Case 1  Window("计算器").WinButton("-").Click
        Case 2  Window("计算器").WinButton("*").Click
        Case 3  Window("计算器").WinButton("/").Click
        Case Else
    End Select
    GetOperation = oper
End Function
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

4#
发表于 2010-5-12 09:52:06 | 只看该作者
研究QTP语法尚可,但是没有太多实际测试意义
1、随机数生成范围太小,仅0-9,而且没有考虑小数、负数等情况;
2、自动执行但无自动判断,和猴子测试一样,自动化测试困难的不在自动执行,而在自动检查;
回复 支持 反对

使用道具 举报

  • TA的每日心情
    擦汗
    2017-5-23 20:24
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]测试连长

    3#
    发表于 2010-5-12 09:10:53 | 只看该作者
    坐下来慢慢研究,谢谢楼主的脚本
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2#
    发表于 2010-5-11 22:51:58 | 只看该作者
    学习了,有时间好好研究一下,对QTP还没有到能分析脚本的地步
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-11 16:19 , Processed in 0.070697 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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