拼课, 也就是大家所说的拼团课程, 其相关的数字标识为三五千七百七十九。
:实现的移动端自动化测试框架
到底是指什么样的含义?
它是一个属于公开源代码的类型的, 能够同时在多个操作系统平台上进行移动应用自动化测试的工具和框架, 这个框架具备对iOS这一个平台, 以及其他各种平台的原生的应用程序、混合式的应用程序以及针对移动端网页进行的Web类型应用程序的支持能力, 在内部技术结构层面,它使用客户端连接到服务器端的方式进行运行和管理, 借助特定的通信协议来控制并且驱动各种不同的实体移动设备完成相关操作, 目前它在面向移动设备端应用的自动化测试工作这一整个市场领域里面, 已经被广泛地采用或者选择成为了处于主流地位并且被大家普遍认可的一种整体解决方案。
的核心特性
在跨平台这一个是支持着的, 然后呢, 就是使用那一套API, 是同时在iOS还有平台测试中都可以被使用的。
在技术层面, 它具备多语言方面的支持性能情况, 具体涵盖的内容有Java语言的支持, 还有Ruby语言等。
不依赖移动平台这个事情是不需要的, 那就是不需要去重新编译或者是修改被测应用。
它是完全免费的, 任何人都可以免费使用它, 并且它还拥有一个非常活跃的开发者社区, 大家平时都在里面交流互动。
它是和那个兼容的, 这个是基于协议来的, 是可以把里面的部分知识拿来重复使用的。
的工作原理
采用的是客户端, 还有服务器这两种东西架构在一起的方法。
在内部使用方面, 采用了各个平台所提供的那些自动化框架:
+环境搭建
在进行测试的期间, 是需要对相关的运行环境做好准备工作的:
基础环境:
你需要将相关的依赖安装包来进行安装。
bash
复制
pip --
平台相关工具:
:
编写测试脚本的时候, 它的整体框架是这么个样子。
一个比较常见的测试脚本, 它通常会由下面这些部分来构成:
需要先把那些必要的模块给导入进来。
复制
from mon.
配置 :
复制
= { '': '', '': '-5554', 'app': '/path/to/your/app.apk', '': ''}
初始化驱动:
复制
= .(':4723/wd/hub', )
编写测试用例:
复制
用ID这个属性, 找到这个元素, 然后对它执行点击。
清理资源:
复制
.quit()
元素定位策略
为用户提供了多种多样的定位元素的方式, 这一点是和那些类似的东西做对比的话, 它其实是进行了某种程度上的扩展的:
ID定位:
复制
.(.ID, '')
通过XPath来进行定位操作, 这种做法叫做。
复制
通过.XPATH, 也就是 '// 这种方式来做。
@text="OK"
')
ID定位:
复制
对那个带有描述信息的东西, 进行一下负向的处理。
类名定位:
复制
.(., '..')
这个是属于它独有的定位能力。
复制
.(.,'new ().text("OK")')
常用操作示例
请给出一句话作为例子。
复制
将.ID这个字符串和'com.:id/'这个字符串拼在一起, 接着把Hello!这个内容给弄上去。
进行点击这个动作。
复制
用ID这个属性, 找到这个元素, 然后对它执行点击。
滑动操作:
复制
.swipe(, , end_x, end_y, )
获取元素属性:
复制
text = . = .() = .()
等待机制:
复制
先从那个用户界面模块里获取东西, 然后用时间等到一个条件出现, 这个条件是找ID为空的东西。
高级特性
测试方面, 是混合应用的测试。
并行测试:
页面对象模式:
截图和录像:
性能监控:
最佳实践建议
采用明确等待的方式来处理。要避免使用像sleep这样比较生硬的硬性等待办法, 反而要去使用显式等待这一种做法。
合理地来把测试代码给组织好: 通过采用页面模式这种方式, 去把可维护性给提上来。
关于处理权限弹窗这个问题, 你需要提前做好充分的准备, 把应对系统发出的各种权限申请请求的策略都准备好。
在设备管理这一方面, 我们要做的就是去建立一个专门针对设备池的管理系统, 其核心目的就是要想办法把设备的利用率给提高上去。
进行详细的日志记录的配置工作, 这样做的目的是为了在出现问题的时侯能够方便地进行排查。
我们要做的是持续集成, 也就是要把测试这一件事, 给它整进那个叫作 CI/CD 的流程里面。
常见问题与解决方案
元素定位这回事,最后没弄成功。
应用无法启动:
性能问题:
跨平台兼容性:
学习资源与工具
官方文档:
这个可视化工具, 它是被用来进行元素定位的, 并且也是被用来进行测试录制的。
:平台元素查看工具
这个文档是关于在平台进行测试框架的一些内容的。
社区支持: 还有就是在一些平台上的活跃社区, 比如像Stack这样的。
总结
这种工具和那种工具结合在了一起。这样的组合是给移动应用的自动测试弄出了很强力也很方便的解决办法。因为它的语法很简单, 生态系统很多东西都齐全, 再加上它能跨越好多种平台去运行能力。
所以负责测试的那伙人就能够很快地把那些能稳定跑的自动测试套件搭起来。现在各种各样的移动应用长得特别快。所以学会搞自动化测试这一套东西。会变成一个保证质量的工作人员必须要掌握的重要本事。