• AutoIT测试实例


     AutoIT是一款非常强大的免费功能自动化测试工具,使用它可以轻松实现web和winform的自动化测试。其脚本语言AU3语法类似于VB语言和vbs脚本语言,对于经常使用QTP的童鞋来说,非常容易上手。以下是一个使用autoit测试web登录的一个实例。
       首先先介绍一下待测网站。待测网站是一个彩铃制作网站,用户可通过首页进行登录,点击首页登录链接之后页面会弹出登录框。用户输入登录信息并点击登录按钮之后,登录框消失,网站首页右上角显示用户已登录。
       下面贴出脚本:
    #Include <IE.au3>
    #Include<ScreenCapture.au3>
    #Include<BaseOp.au3>
    Global $hBmp
    Global $test
    Global $result
    Global $isobj=False
    Global $timer=1
    Global $OIE = _IECreate("http://192.168.85.36/web",0,1,1,0)
    Global $Tester="13200000001"
    Global $TesterPWD="123456"
    _IELoadWait($OIE)
    Sleep(2000)
    Local $Login=_IELinkClickByText($OIE,"登录")
    _IELoadWait($OIE)
    While Not $isobj
       If $timer>=3 Then
          SetError("2")
       ExitLoop
       EndIf
       $timer+=1
       Local $Inputname = _IEGetObjByName($OIE,"txtPhoneNum")
       Local $Inputpassword = _IEGetObjByName($OIE,"txtPassword")
       If Not IsObj($Inputname)Or Not IsObj($Inputpassword) Then
       Sleep(2000)
       Else
       $isobj=True
       $Inputname.value=$Tester
       $Inputpassword.value=$TesterPWD
       EndIf
       WEnd
    Local $Inputcheck= _IEGetObjByName($OIE,"txtRadomPicCode")
    If Not IsObj($Inputcheck) Then
    $test= CaptureScreen("C:Documents and Settingsaslandhu桌面autoit3","CheckCodeError")
    $spans=_IETagNameGetCollection($OIE,"span")
    if $spans(0).innertext==("用户"&$Tester) Then   ;务必要注意这里span属性innertext的访问方式
       SetError("5")
    Else
       SetError("4")
       EndIf
    Else
    $checkCode=InputBox("提示","请输入验证码:")
    $Inputcheck.value=$checkCode
    Local $btn= _IEGetObjByName($OIE,"btnSubmitLogin")
    _IEAction($btn,"Click")
    _IELoadWait($OIE)
    Local $Loginwrap = _IEGetObjById($OIE,"Loginwrap")
    _IELoadWait($OIE)
    If Not IsObj($Loginwrap) Then
       SetError("3")
    Else
       SetError("1")
    EndIf
    EndIf
    Switch @error
       Case 1
       $result="成功"
       Case 2
       $result="登录框上的按钮不见啦"
       Case 3
       $result="抱歉,登录失败"
       Case 4
       $result="登录时,验证码输入框不存在"
       Case 5
       $result="用户已经登录了"
       Case Else
       $result="未定义的错误"
    EndSwitch
    MsgBox(1,"测试结果",$result)
     
    现在对脚本中几个关键的地方做一些解释。
    (1)在自动化测试中,因为某些原因,一些控件不能马上展现,所以在测试脚本中我们往往会加入一些等待功能,确保这些控件可以被操作,不会出现对象不存在至错的情况。这段脚本中在识别登录框中用户账号密码输入框时,增加了检查功能,当输入框不存在的时候就等待两秒,两秒后再尝试。同时设置了尝试次数3次。
     
       If $timer>=3 Then
          SetError("2")
       ExitLoop
       EndIf
     
    (2)在QTP中截屏功能比较实用,在AutoIt中同样提供了截屏的API。
     
    $test= CaptureScreen("C:Documents and Settingsaslandhu桌面autoit3","CheckCodeError")
     
    (3)在AutoIT的web自动化中,以下函数非常常见:
    _IELoadWait:等待页面加载完成
    _IEGetObjByName:通过名称获取对象,与此对应的还有_IEGetObjByID:通过ID获取对象
    _IETagNameGetCollection:获取所有的Tagname为传入值的对象
  • 相关阅读:
    Finite Difference Method with Mathematica
    评论
    The Woman in Red Is Seen as a Threat by Other Wom
    Why Does Everyone Else Appear to Be Succeeding?
    The Sorrows of Young Werther
    【洛谷P5607】无力回天 NOI2017
    【YbtOJ#532】往事之树
    【YbtOJ#582】大收藏家
    【牛客Wannafly挑战赛23 F】计数
    【YbtOJ#573】后缀表达
  • 原文地址:https://www.cnblogs.com/jaww/p/9544969.html
Copyright © 2020-2023  润新知