1.Selenium/Appium 自动化工具概述
实施自动化测试之前,我们总会调研哪些工具易用,免费,容易和其他工具或者框架集成。做 Web 自动化测试我们经常选择Selenium,因为它开源免费,支持不同的开发语言,还有录制功能,从一定程度上减少了测试人员开发脚本的成本;做App自动化测试我们通常选择 Appium,它也是开源免费,同时支持 Android 和 IOS 两大操作系统,支持不同的语言开发脚本,同时能测试原生和混合应用。但这两种工具需要结合其他的测试框架来管理我们的测试案例,比如Jnuit、unittes、NUnit 等,这就要求测试人员有较高的编码技能。
2. 关于Katalon Studio
2.1 Katalon 是什么
Katalon Studio 是一款免费的自动化测试工具,可以安装在windows、macOS、linux操作系统上,基于selenium 和 Appium 测试框架,并集成了这些框架的优点。这个工具支持不同层次技能的测试开发人员使用,有很少编码经验的测试人员也可以很快的上手一个自动化测试项目,编码经验丰富的测试人员可以基于该工具做扩展,灵活的实现所需功能。
2.2 Katalon 特色
Katalon Stuion 是一款可安装的测试工具,集成了 Eclipse 的部分功能,又支持界面化编码,无论是经验丰富的测试开发人员还是测试新手,都能以自己熟悉的方式完成测试脚本的开发。Katalon Stuidio 的特点主要体现在以下几个方面。
2.2.1 提供一个完整的自动化测试解决方案
Katalon Studio 支持Web,Mobile,API 类型的自动化测试,它同时可以管理页面元素、测试数据、测试案例、生成自动化测试报告,可以集成到 CI/CD 过程中,兼容流行的质量处理工具,包括qTest,JIRA等,只需要使用 Katalon Studio 一个测试工具,就可以完成整个自动化测试流程。
2.2.2 环境安装简单
下载Katalon Studio后,在 windows 或者 mac 系统上只需双击 katalon.exe 即可运行环境,输入用户名和密码注册或者登录之后就可以使用了;在linux操作系统上,安装openjdk后,直接解压下载的安装包,使用命令行即可运行案例。
2.2.3 支持录制脚本
对于 Web 和 Mobile, katalon 提供了录制的功能,不同于selenium 或者 Appium 的录制功能,katalon 录制的脚本可读性很强,一个操作动作会生成一条语句,由 WebUI/Mobile 关键字 页面元素构成,下图是一个录制的App登录脚本的Manual 模式:
下图是该脚本的 Script 模式:
2.2.4 可视化查找页面元素
除了支持录制脚本外,Katalon 还提供了 “Spy Web” 和 “Spy Mobile” 的功能,可以可视化的将页面元素存储在对象页面对象库中,方便写脚本时调用。
2.2.5 可视化案例管理
1.支持手动和脚本两种模式编写案例
2.提供丰富的关键字
对于Web、Mobile、API,katalon 提供了丰富的关键字,比如点击、获取焦点、输入文本、滑屏、解锁、等待页面元素出现等等,几乎覆盖了测试中用到的所有操作,在使用时直接调用即可,无需再次封装。另外还支持自定义关键字,实现特殊功能。关键字管理如下图。
3.页面对象管理库
Katalon Studio 提供了单独的页面对象管理库。
可以使用录制脚本自动生成页面对象,也可以使用页面对象探测器(Spy Web, Spy Mobile) 手动存储页面对象。页面对象和测试案例分开,便于后续测试脚本维护。
4.测试数据管理
Katalon Studio 提供了单独的数据管理模块。
数据源支持多种格式: Excel、csv、database等。脚本中的数据可以以参数的形式调用数据源中数据,便于脚本维护。
5.检查点管理
Katalon中检查点的来源同测试数据,可以是Excel、csv、 database 格式的数据,丰富的检查点校验功能可以帮助我们更准确的验证案例是否成功。
6.提供TestSuit 管理TestCase
TestSuit 中可以添加删除 TestCase,并选择TestCase的执行顺序。TestSuit中的案例执行完成后,可以在Reports中查看测试报告,也可以在Log Viewer 视图中查看执行日志。
2.2.6 支持扩展和自定义功能
Katalon 允许用户自定义Method,Test Listeners、KeyWord,也可以导入导入外部jar包以实现更复杂的功能。
2.2.7 版本更新快
Katalon Studio 几乎是一个月更新一次版本,使用过程中遇到的问题可以在官方论坛中提问: https://forum.katalon.com/
2.3 Katalon 帮我们解决了哪些难题
- 编码能力弱 无论使用Selenium 还是 Appium, 我们需要结合其他测试框架编写测试脚本,需要自定义脚本的管理模式,比如PageFactory 模式或者关键字驱动模式,还需要自己封装关键字并且需要处理测试过程中遇到的异常。这样会花费很多时间学习开发技能,并且复杂的脚本也不易于在项目中推广,而katalon支持录制脚本,对不能录制的脚本,我们也可以使用已经封装好的关键字,借助页面元素探测器编写脚本,并且katalon也提供了可视化的编程视图,只需一些编码基础,都可以很好的使用katalon。
- 安装环境困难 Selenium 和 Appium 安装时需要依赖一些其他的工具,特别是Appium,安装之前需要安装Java环境,需要安装Android Sdk,需要更新很多东西。在 安装Appium 的过程中,会遇到不少的坑,而Katalon Studio 只需双击运行 katalon.exe 即可运行,大大节省了安装时间。
- 定位元素困难 测试App的时候定位元素需要使用uiautomatorviewer 或者Chrome的扩展功能,在使用使用Chrome的扩展功能时需要访问外国网站,这在一定程度上增加了查找元素的复杂性。使用Katalon 的 Spy Mobile 功能基本能获取 App 的所有元素,而且使用此方式查找元素比较稳定。
- 其他工具录制脚本可读性差 使用 Selenium 或者 Appium 录制的脚本可读性非常差,特别是 Appium,录下的脚本可用的信息特别少,而Katalon 录制的脚本非常简洁,可读性也很好。
4. Katalon 存在的不足
- 相关中文文档少 目前国内 Katalon 的用户非常少,相关的使用文档也很少,但官方的文档还是很详细的,遇到问提可以查阅用户手册: https://docs.katalon.com/display/KD/Getting Started
- 不支持中文 Katalon 目前不支持使用中文命名文件夹、页面对象、案例名称等,测试报告也不支持中文。
- 灵活性欠佳 相对于Appium 或者 Selenium,katalon 的使用门槛降低不少,但是可视化的工作方式使其在处理一些复杂的工作流上不够灵活,这时需要我们自定义keywords 或者 method 来实现相关功能。
5. TODO
- 使用命令行运行 katalon 案例
- katalon 和 jenkins的集成
6. 参考文档
katalon 官网及下载地址 https://www.katalon.com/
官网用户手册 https://docs.katalon.com/display/KD/Getting Started
官网视频教程 https://docs.katalon.com/katalon-studio/videos/index.html
官网快速入门 https://docs.katalon.com/katalon-studio/tutorials/quick_start.html