windows gui测试工具:AutoIt

2017-01-09

目录

1 简介
2 示例1 记事本自动化操作
3 示例2 上传文件

1 简介


返回

AutoIt v3 是用以编写并生成具有 BASIC 语言风格的脚本程序的免费软件, 它被设计用来在Windows GUI(用户界面)中进行自动操作。AutoIt 最初是为PC(个人电脑)的"批量处理"而设计, 用于对数千台PC进行(同样的)配置. 现在,autoit是一个支持复杂表达式,自定义函数,循环等的强大脚本软件。

  • AutoIt3.chm:帮助文档
  • AutoIt:窗口信息工具
  • SciTE.exe:脚本编辑器,可编辑、编译运行脚本
  • AutoIt3.exe:脚本运行器,是一个非常小并且独立的应用程序,完全不依赖像 .net 或者 vb 使用的厚重的运行库. 所有您需要运行的脚本都能使用主程序执行
  • Aut2Exe:脚本编译器,进行编码后转化成独立的可执行文件

2 示例1 记事本自动化操作


返回

自动化操作代码'OperateNotepad.au3':

Run("notepad.exe")
WinWaitActive("无标题 - 记事本")
Send("This is some text.")
WinClose("无标题 - 记事本")
WinWaitActive("记事本", "保存(&S)")
;WinWaitActive("Notepad", "Do you want to save") ; When running under Windows XP
Send("!n")

抓取窗口信息

图1 抓取窗口信息

AutoIt脚本转化成可执行文件

图2 AutoIt脚本转化成可执行文件

3 示例2 上传文件


返回

当上传控件不是input元素,而是桌面窗口,这个时候利用Selenium的sendkeys方法是行不通的。可以用autoIt来操作。

被测网页代码'upload.html':

<body>
<input type="file" id="fileControl" value="选择文件"/>
</body>

自动化操作代码'uploadFile.au3':

;first make sure the number of arguments passed into the scripts is more than
If $CmdLine[]< Then Exit EndIf ;if parmas num < ,then break
;$CmdLine[] ;参数的数量
;$CmdLine[] ;第一个参数 (脚本名称后面)
;$CmdLine[] ;第二个参数
;都是从cmd传入参数
handleUpload($CmdLine[],$CmdLine[]) ;定义上传函数,有两个参数,第一个是浏览器名字,第二参数是文件路径
Func handleUpload($browser, $uploadfile)
Dim $title ;定义一个title变量
;根据弹窗的title来判断是什么浏览器
If $browser="ie" Then ; 代表IE浏览器
$title="选择要加载的文件"
ElseIf $browser="chrome" Then ; 代表谷歌浏览器
$title="打开"
ElseIf $browser="firefox" Then ; 代表火狐浏览器
$title="文件上传"
EndIf if WinWait($title,"",) Then ;等待弹出出现,最大等待时间是4秒
WinActivate($title) ;找到弹出窗口之后,激活当前窗口
ControlSetText($title,"","Edit1",$uploadfile) ;把文件路径放入输入框
ControlClick($title,"","Button1") ;点击保存或者打开或者上传按钮
Else
Return False
EndIf
EndFunc

操作

  1. 把'uploadFile.au3'转化成'uploadFile.exe''
  2. 用ie打开被测网页代码'upload.html',并点击'浏览'元素,系统自动打开桌面浏览窗口,如下图3所示
  3. 打开cmd.exe窗口,输入以下命令,按回车执行,结果如下图所示
"D:\TestUploadFileWithAutoit\uploadFile.exe" "ie" "D:\TestUploadFileWithAutoit\1.png"

图3 点击‘浏览...’按钮,打开浏览桌面窗口 

图4 上传后结果

Java调用Upload.exe代码:

public void handleUpload(String browser, File file) {
String filePath= file.getAbsolutePath();
String executeFile= "D:\\TestUploadFileWithAutoit\\UploadFile.exe";
String cmd= "\""+ executeFile+ "\""+ " "+ "\""+ browser+ "\""+ " "+ "\""+ filePath+ "\"";
try{
Process p= Runtime.getRuntime().exec(cmd);
p.waitFor();
} catch(Exception e) {
e.printStackTrace();
}
}

windows gui测试工具:AutoIt的更多相关文章

  1. 转载:开发者眼中最好的 22 款 GUI 测试工具

    对于很多同学来说gui程序的测试是一个难点,所以我从网上转载了一篇关于gui测试的一篇文章,里面罗列的很多工具,大家可以尝试一下学习学习. 英文原文:22 best GUI testing tools ...

  2. 开发者眼中最好的 22 款 GUI 测试工具

    1.Abbot - Java GUI 测试框架 Abbot是一个基于GUI的简单的Java测试框架,它能够帮助开发者测试Java用户界面. 它提供事件自动生成和验证Java GUI组件,使您能够轻松地 ...

  3. GUI测试要点

    本人测试知识还不完整,所以下面的文字总结自网络上的文章,红色字体为我平时的测试经验,如有雷同之处,还请见谅,仅自己学习之用. 转载请说明来自博客园--邦邦酱好. ------------------- ...

  4. 【嵌入式硬件Esp32】MQTT链接测试工具

    1.Eclipse Paho MQTT Utility GUI测试工具 下载地址: 链接:https://pan.baidu.com/s/1ivxk3DWJkod-jBsowlcoBA 提取码:0lp ...

  5. AutoIt操作Windows GUI实现文件上传

    AutoIt 一个使用类似BASIC脚本语言的免费软件,用于Windows GUI(图形用户界面)中进行自动化操作.它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务. 官方网站: htt ...

  6. 开源自己用python封装的一个Windows GUI(UI Automation)自动化工具,支持MFC,Windows Forms,WPF,Metro,Qt

    首先,大家可以看下这个链接 Windows GUI自动化测试技术的比较和展望 . 这篇文章介绍了Windows中GUI自动化的三种技术:Windows API, MSAA - Microsoft Ac ...

  7. Windows 平台下局域网劫持测试工具 – EvilFoca

    简介 安全测试工具可能含有攻击性,请谨慎适用于安全教学及学习用途,禁止非法利用! EvilFoca是Windows环境下基于.NET FrameWork的一款轻量级的劫持测试工具.与BackTrack ...

  8. Windows如何使用Apache的ab工具进行网站性能测试(Apache服务器自带了ab压力测试工具,可以用来测试网站性能,使用简单方便)

    打开Apache服务器的安装路径,在bin目录中有一个ab.exe的可执行程序,就是我们要介绍的压力测试工具. 在Windows系统的命令行下,进入ab.exe程序所在目录,执行ab.exe程序.注意 ...

  9. Windows开源Web服务器性能和压力测试工具

    linux有很多开源工具用来测试服务器负载,而windows上非常少,几乎没有除了几个复杂的JMeter WET等 将两个好用的工具是Linux版本通过Cygwin移植过来,方便广大windows人员 ...

随机推荐

  1. 使用PyInstaller打包Python程序

    本文转载自: http://www.pycoding.com/2015/04/23/pyinstaller.html

  2. 【弱省胡策】Round #6 String 解题报告

    感觉这个题好神啊. 首先我们只管 $a = b$ 的情况,那么我们自然就可以把这个串对 $a$ 取模,然后用 KMP 求出能弄出几个其他的 B 串. 具体就是把串先倍长,然后倒过来,然后求 $Next ...

  3. 执行config文件时,config.log中报错xcrun: error: active developer path ("/Applications/Xcode.app/Contents/Developer") does not exist, use xcode-select to change

    执行 sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer 即可解决.

  4. FastCGI中文规范

    http://fuzhong1983.blog.163.com/blog/static/1684705201051002951763/ . 介绍 FastCGI是对CGI的开放的扩展,它为所有因特网应 ...

  5. MySql从服务器延迟解决方案

    在从服务器上执行show slave status;可以查看到很多同步的参数,我们需要特别注意的参数如下:Master_Log_File:                      SLAVE中的I/ ...

  6. KMP的next[]数组

    KMP是众多字符串问题的基础 理解next数组尤为重要 next又称前缀数组 是 它所处位置的前一个位置的元素 与 该链 链首开始 几个元素相匹配(即相同) 举个实例来说明: next对应的是该位置的 ...

  7. Ci框架整合smarty模板引擎

    Ci框架整合smarty模板引擎 备注:下载smarty时,最好选择2.6版本,其他测试有坑,ci可以是2.2或其他 大体思路:将smarty封装成ci框架的一个类,然后重新配置一下smarty,这样 ...

  8. java1.8的几大新特性(二)

    七.Date APIJava 8 在包java.time下包含了一组全新的时间日期API.新的日期API和开源的Joda-Time库差不多,但又不完全一样,下面的例子展示了这组新API里最重要的一些部 ...

  9. 精通phthon的条件

    1. 熟知主流硬件体系(x86, x64)2. 熟知 CPython 的具体实现,如若可能至少通读源码三遍以上3. 熟知每条 Python bytecode 如何被解释执行4. 熟知每条 Python ...

  10. C#常用的命名规范

    C#常用的命名规则 Pascal 规则 每个单词开头的字母大写(如 TestCounter). Camel 规则 除了第一个单词外的其他单词的开头字母大写. 如. testCounter. Upper ...