WindowsApp⾃动化测试-WinAppDriver-Appium资料整理
最近负责项⽬组Windows App⾃动化测试框架搭建⼯作,在这⾥简单地把这个过程中参考的资料整理起来,仅仅是搬运⼯,感谢⼤⽜们分享的资料。同时也记下⾃⼰遇到的⼀些问题和解决办法。
Windows App ⾃动化⼯具选取
11种免费Window App⾃动化⼯具介绍(英⽂版):
9种
12 种
因为我所做项⽬测试的APP是部署在server端,需要在测试机上远程访问server,这⽅⾯对⼯具的选取有很⼤限制,所以我选了集成
在Appium⾥的WinAppDriver,因为可以⽤到Appium的远程访问功能。个⼈觉得如果⽤Microsoft UI automation会⽅便些,它⾥⾯定义了各种各样的控件(Button, TreetMenu等),基本上直接调⽤现成的接⼝就可以了,不需要花太多精⼒做⼆次开发,但它不能远程访问。
⽤WinAppDriver需要⼆次开发,⼤部控件都要⾃⼰定义,需要编码能⼒。我花了很多时间去调查是否可以Mirosoft UI automation和Appium 结合起来⽤,但是没有到⽅法,如果有朋友有到合适的⽅法,欢迎⼀起探讨。
Mirosoft UI automation
花了⼀些时间研究Mirosoft UI automation,这⾥顺带把之前参考资料列出来
1.      官⽹介绍:
2.      详细说明和例⼦
3.      简单明了的中⽂介绍:
WinAppDriver
官⽹介绍:
Winappdriver总体介绍,环境搭建,代码样本,注意事项:
环境安装
1.      安装Node.js 和Appium :
建议Appium的⾮GUI和GUI版都安装,我们⽤的⼀般是⾮GUI,但是有时候可以⽤GUI版本定位问题,⽐如通过Appium session定位元素。
2.      安装WinAppDriver (官⽹上WinAppDriver是集成在Appium,安装了Appium,是不需要再安装WinAppDriver,但是我安装了Appium 后,运⾏程序会提⽰WinAppDriver未安装,可能是版本问题)
参考:
基本步骤流程
1, 安装Nodejs
2. 安装Appium
3. 安装WinAPPDriver(虽然Appium官⽹说不⽤单独安装这个,但是我试了不安装会遇到问题)
4. 我是⽤C#, 在vs2015(2017)⾥新建⼀个⼯程,并把通过Nuget安装上Appium driver.
具体设置过程参考:
5. 启动Appium
6. 开启开发者模式
7.启动(这⼀步⼀般是不需要的,如果报WinAppDriver没起来或没安装可以试⼀试)
在C:\Program Files (x86)\Windows Application Driver,可以双击⾥⾯的⽂件
8. 环境好啦,开始写测试代码
定位元素-
官⽅介绍:
这⾥要注意:我发现有些朋友说装了SDK后没有到, 我猜是因为有⼏个版号,没有对⽂件夹,下图是我电脑上实际到的位置(版号最⼤的,没到的话,把这⼏个⽂件夹都看⼀下)
C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86
遇到的问题和解决办法
1.      安装完appium,执⾏代码,报以下错误:
An unknown server-side error occurred while processing the command. Original error: Could not verify WinAppDriver install; re-run install 解决办法:下载安装WinAppDriver
Appium官⽅⽂档是说Appium上有内置了WinAppDriver,不⽤单独安装。还有如果只装了GUI Appium,也会报这个错,最好装⾮GUI版本。
2.    Error:
Message: Test method Winformtest.CalculatorSession.TestMethod3 threw exception: OpenQA.Selenium.WebDriverException: Unexpected error. The URL '/session' did not map to a valid resourcer
原因:
url 错了
//private const string WindowsApplicationDriverUrl = "127.0.0.1:4723";
改成:  private const string WindowsApplicationDriverUrl = "127.0.0.1:4723/wd/hub";
3.  设置待测试APP的路径:
appOptions.AddAdditionalCapability("app", @"C:\Program Files(x86)\....... \****.exe");
报错:
OpenQA.Selenium.WebDriverException: An unknown server-side error occurred while processing the
command. Original error: The system cannot find the file specified
这个是我犯的低级错误,⽬录中的(x86)前⾯有⼀个空格,加上空格就好了,为了解决这个问题费了好多时间,⼀开始还以为⾃⼰的⽅法不对。像这样路径之类信息⼀定要复制,不能⼿动输⼊
4.      之前跑都可以的,可以执⾏点击或者双击,突然执⾏click()就报
An unknown error occurred in the remote end while processing the command
app接口测试工具
如果是Actions, 执⾏doubleclick() 就报Access Denied
Element 实际是有到的,因为代码都没改变,环境也没变
⽹上了有很多⼈遇到类似的问题,特别是远程的时候,如果测试本地没问题,看了解答的,都没有到根本原因,有时候莫名其妙就好了,有说重启电脑,切换语⾔的。
我的解决办法:同样的代码,换成在本地跑,是可以过的,于是⼜切换成server上,发现也好了,莫名其妙的,后⾯发现如果把待测APP所在server(我们⽤的是虚拟机)的窗⼝关闭或者最⼩化,就会报这个错,如果保打开状态,就没问题
所以我的解决办法是:保持待测试APP所在server(机器)窗⼝打开。
下⾯是⽹上⼀些办法,但是不能解决我的问题,也许能解决其他朋友的问题,列在这。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。