题记:本文简述如何利用appium对Windows桌面应用程序进行UI自动化测试。

所谓UI自动化测试,就是模拟一个用户,对应用程序的UI进行操作,以完成特定场景的功能性集成测试。

要对Windows桌面应用程序进行UI自动化测试,目前可选的技术主要是两种:VS自带的CodedUI Test和Appium+WinAppDriver。但是,微软已经宣布VS2019将是带有CodedUI Test的最后一个版本,且在面对某些复杂场景的时候有点力不从心。而Appium作为移动应用主流的UI测试工具,已经被业界广泛采用,且相关的接口是标准化的,因此微软对其进行了扩展(即WinAppDriver),让Appium可以支持包括Universal Windows Platform (UWP), Windows Forms (WinForms), Windows Presentation Foundation (WPF), and Classic Windows (Win32)之内的Windows桌面应用。所以采用Appium来作为Windows桌面应用程序UI自动化测试的工具是最佳选择。

要完成UI自动化测试的大致步骤如下(你首先需要一台Windows 10的PC):

1,准备好待测试的Windows桌面应用程序。

2,到 https://github.com/Microsoft/WinAppDriver/releases 下载WinAppDriver的安装包,进行安装。并启用Windows 10的开发者模式。从安装目录(比如:C:\Program Files (x86)\Windows Application Driver)来启动WinAppDriver。

3,用你喜欢的测试框架创建UnitTest项目,在项目中引用Appium.WebDriver这个Nuget包。

4,编写测试用例,执行测试。

整个用例的编写也相对简单:

1,使用DesiredCapabilities来设定要测试的目标应用。

2,使用WindowsDriver来声明测试的会话。

3,通过测试会话查找对应的UI元素,对UI元素进行SendKeys(模拟填写内容)和Click(模拟点击)等操作,或者获取UI元素的相关Property和Attribute来进行验证。

4,编写测试最挑战的地方就是在于如何查找到UI元素,我们可以借用Windows SDK里面的inspect.exe这个工具来辅助我们查找。工具的位置在C:\Program Files (x86)\Windows Kits\10\bin里面的特定版文件夹中。用法是先启动应用程序并导航到待测试的界面,启动这个工具就会获得桌面上所有窗口的UI元素层级关系,并通过焦点等方式导航到要查找的UI元素上。查看相应的信息,并采用适合的查找方式。具体的查找方式可见:https://github.com/Microsoft/WinAppDriver#supported-locators-to-find-ui-elements。选择适合的查找方式有时候需要多尝试几种,有些UI元素只能用特定的方式来查找,比如html的input button只用FindElementByName

,而html的button就可以用FindElementByAccessibilityId

在我的这个示例当中,目标应用采用的是Hybrid方式运行(即通过WebBrowser来嵌入html,并用C#进行行为操作),考虑到这种应用程序可能是多个函数库组装在一起,所以测试项目理应也是多个项目组合的(即功能函数库对应一个测试项目),并且其他测试项目可以复用公共的测试步骤(比如:列表页面复用登录的测试步骤)。

python 桌面程序自动化测试_对Windows桌面应用程序进行UI自动化测试相关推荐

  1. C#【自动化测试】对Windows桌面应用程序进行UI自动化测试

    文章目录 1.文章一: 题记 UI自动化测试 参考 2.文章二: 3.重要资源[实例]: 1)已验证可用[非常好的例子,便于理解] 关键代码 2)未验证 1.文章一: 题记 本文简述如何利用appiu ...

  2. python代码桌面壁纸_Python实现设置windows桌面壁纸代码

    Python实现设置windows桌面壁纸代码 发布于 2015-04-07 16:59:42 | 122 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python 是一种面向对 ...

  3. 基于Ext的开发实例_模拟Windows桌面

    模拟Windows桌面 Ext介绍 Ext是一个强大的js类库,以前是基于雅虎UI,现在已经完全独立了. 主要包括data.widget.form.grid.dd.menu,其中最强大的应该算grid ...

  4. 在桌面建立快捷_用 ROX 桌面重温 Linux 历史 | Linux 中国

    这篇文章是 Linux 桌面 24 天特别系列的一部分.如果你想来一次有趣的时光之旅,ROX 桌面非常值得一试. -- Seth Kenlon(作者) ROX 桌面已经不再积极开发,而它的遗留问题至今 ...

  5. 桌面计算机性能监控系统,监视 Windows 桌面应用的使用情况和性能 - Azure Monitor | Microsoft Docs...

    您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn. 监视经典 Window ...

  6. rox桌面环境 安装_使用ROX桌面重现Linux历史

    rox桌面环境 安装 ROX桌面不再被积极开发,但它的传统在今天得到了回响,即使它处于活动状态,它还是Linux桌面的独特之处. 尽管其他桌面感觉与旧的Unix或Windows界面大致相似,但ROX牢 ...

  7. 宝塔定时任务执行php源码任务_在WINDOWS任务计划程序下执行PHP文件 PHP定时功能的实现...

    最近需要做一个定时任务功能,从网站找了很多相关的代码,windows实现方法综合起来大概就两种, 一.使用PHP ignore_user_abort 函数 即使关掉浏览器也能正常运行:(个人感觉PHP ...

  8. 建立桌面文件管理格子_腾讯桌面管理win7格子毛玻璃版下载V2.9.1051 独立版

    腾讯桌面管理win7格子毛玻璃版是腾讯官方从电脑管家中分离出的一个功能实用的电脑桌面整理软件.腾讯桌面管理软件的主要功能和360桌面助手差不多,都能够自动帮你整理杂乱的桌面,软件还内置了壁纸中心组件, ...

  9. 微信推出适用小程序编辑器_适用于Windows的最佳免费视频编辑应用程序

    微信推出适用小程序编辑器 With smartphone cameras becoming better every day, the gear you use to make videos is b ...

最新文章

  1. 计算机软件考试预测,2020年计算机软件水平考试信息技术处理员预测试题及参考答案...
  2. selenium+python headless 爬虫环境配置
  3. docker 端口被占用问题解决
  4. 联想手机android系统耗电,联想 K900 Android 4.2 手机续航能力实测
  5. Date、DateFormat、Calendar日期类
  6. java resultset 为空,ResultSet为空的有关问题
  7. java 圆形碰撞箱_你会使用“碰撞箱”吗?5种你不知道的玩法 甚至能定位死亡方位...
  8. [Windows Phone] 如何在 Windows Phone 应用程式制作市集搜寻
  9. Google协作平台中文版BUG两条
  10. SpringBoot学习(一)初识SpringBoot、第一个SpringBoot程序
  11. Axure RP 9 使用详解视频教程-真实操作步骤
  12. 快速排序(java实现)
  13. CentOS7图形界面启动报错unable to connect to X server
  14. String 类 ( 看了包会 )
  15. 在Composure去除掉对体积云和雾的捕获
  16. 把握SDN研发方向,展望未来发展趋势
  17. 域名备案和icp备案有哪些区别?
  18. 毕业不吼不快十首经典歌曲
  19. Camera HAL Service流程总结
  20. Ajax(jQuery封装),表单form提交(Ajax),art-template模板引擎,原生Ajax,XML和JSON,axios,跨域和JSONP,防抖和节流,HTTP协议

热门文章

  1. MybatisPlus QueryWrapper(简称 QW,MP 封装的一个查询条件构造器)的使用和简单认识
  2. 如果要你向别人推荐电影,你最先想到的是那些呢?
  3. 华为路由器:清除配置
  4. 有效处理Java异常三原则
  5. ImageNet预训练参数和随机初始化参数训练效果对比
  6. 华为大手机 m3 linux,华为平板 M3(青春版10.1英寸 全网通)手机完美获取root教程,最强root工具,亲测可用!...
  7. 用while语句显示1~10的平方。
  8. JS中终止函数执行的代码
  9. 角速度的相似变换定理的证明
  10. el-tree实现类似windows文件列表,并支持折叠、展开和重命名