设为首页 收藏本站
查看: 1788|回复: 1

[经验分享] windows gui测试工具:AutoIt

[复制链接]

尚未签到

发表于 2017-12-8 14:53:58 | 显示全部楼层 |阅读模式
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")
  抓取窗口信息
DSC0000.png

  图1 抓取窗口信息
  AutoIt脚本转化成可执行文件
DSC0001.png

  图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 1
If $CmdLine[0]<2 Then Exit EndIf ;if parmas num <2 ,then break
;$CmdLine[0] ;参数的数量
;$CmdLine[1] ;第一个参数 (脚本名称后面)
;$CmdLine[2] ;第二个参数
;都是从cmd传入参数
handleUpload($CmdLine[1],$CmdLine[2])
;定义上传函数,有两个参数,第一个是浏览器名字,第二参数是文件路径
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,"",4) Then ;等待弹出出现,最大等待时间是4秒
WinActivate($title)                  ;找到弹出窗口之后,激活当前窗口
ControlSetText($title,"","Edit1",$uploadfile)   ;把文件路径放入输入框
ControlClick($title,"","Button1")                ;点击保存或者打开或者上传按钮
Else
Return False
EndIf
EndFunc
  操作


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



"D:\TestUploadFileWithAutoit\uploadFile.exe" "ie" "D:\TestUploadFileWithAutoit\1.png"
DSC0002.png

  图3 点击‘浏览...’按钮,打开浏览桌面窗口 DSC0003.png
  图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();
}
}

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-422160-1-1.html 上篇帖子: 微信小程序的开发环境搭建(Windows版本) 下篇帖子: Zabbix-server自动发现,批量添加主机,并链接模板
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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