最近因为在工做中须要经过Web端的功能进行一次大批量的操做,数据量大概在5000左右,若是手动处理,
完成一条数据的操做用时在20秒左右的话,大概须要4-5个人/天
的工做量(假设一天8小时的工做里除去休息时间,我能在6个小时里像机器人同样保证每20秒处理一条数据)。
显然,做为一个程序员,我是不可能让这样机械化的操做浪费我宝贵的生命的。第一反应是想到了若干年前被我用来作Web前端测试和写页游外挂的神器Selemium
(当时页游真的很火,我用本身写的脚本,在只花了不多钱的状况下,用了不到3周时间就已是大神排行榜前10了)。但在我印象中,Selemium
须要编写大量的代码来完成一个脚本,调试过程也较为繁琐,这么多年过去了,我在想会不会有更新更好用的工具出现呢?因而Google了一下以后,发现了Katalon
。前端
Katalon
是在Selemium
相同的内核上构建起来的一个自动化测试工具。官方给出的二者的对比文档:https://www.katalon.com/resources-center/blog/katalon-studio-vs-selenium-based-open-source-frameworks/。程序员
我综合本身这两天使用的状况,大概能够总结为以下几点:web
Katalon
的用户群体范围更广,用户甚至不须要任何编程基础,只须要知道本身想作什么便可,而Selemium
的用户群体是开发或者测试人员数据库
Katalon
是一个很是易用的图形化的工具,但它居然是免费的(官方说法是Completely free • Built with Heart
),而且是免安装版本,下载解压就能直接使用。而Selemium
须要安装运行环境、语言驱动等等较为繁琐的步骤编程
使用Selemium
的时候,可能须要常常查询API文档以找到本身想要实现的功能,而Katalon
大部分时候不须要(固然自己也是有很是完善的API文档的)浏览器
专业人员经过Selemium
能够完成各类复杂的功能,Katalon
也能够,Katalon
用的是Java
和Apache Groovy
做为其脚本开发语言less
性能方面,Katalon
比Selemium
差一点工具
Katalon
提供了Spy
和Record
两个让构建测试变得异常简单的神级
功能,以及不少内建的很是实用的功能(好比从文件、数据库等数据源获取数据填充到测试变量中)性能
为了更直观,我作了一张动图,完成了Spy的基本演示,其中包含了以下步骤:测试
打开百度搜索首页
定位搜索框,将其捕获(按组合键Shift + `
)
确认捕获的元素
将搜索框保存到对象仓库中
查看捕获的全部信息
Spy
的做用是能够在较为复杂的页面上或者当操做人员不会写代码的时候,须要操做元素时,用Spy
能够很是方便的作到。上述全部步骤的动图以下:
这个设计的步骤很简单:
打开百度首页
在输入框里输入katalon
确认搜索
展现搜索结果
过程动图以下(整个过程当中并无对Chrome作任何人工操做):
上面的方法,相对于初学者来讲,已是“复杂”的了,毕竟咱们先手动Spy
出咱们想操做的元素。其实,若是只是简单的经过百度搜索某个关键字这样的简单流程,彻底能够用Katalon
自带的Record Web
功能,详见以下动图:
Record Web
功能会把你对浏览器作的全部操做,全程录制并保存起来,固然若是有须要,也能够按本身的需求对录制好的步骤作一些调整。
若是你是个专业用户,你能够能够直接经过编辑脚原本写测试用例。好比在上述用例的基础上,我有以下需求变动:
我但愿用户点击搜索
按钮,而不是直接经过敲击回车
完成搜索
我但愿在搜索结果出来以后,自动打开搜索结果的第一项
过程如动图所示:
具体过程以下:
手动建立按钮对象btnSearch
替换searchByRecord
实验中的回车事件,将其变为点击btnSearch
点击一个搜索结果,可是此时我不知道第一个搜索结果的元素是什么,所以经过Spy
找到元素的XPath
值
用XPath
值建立搜索结果的连接对象
在脚本代码中加入WebUI.click
触发点击事件
Katalon
在使用上仍是很是简单的,效率也很是高,使人眼前一亮。本文中的例子仍是比较简单的,在实际场景中确定还要复杂的多。好比我在本文开头说的那个工做中的任务,我用脚本跑花了5-6个小时。在此过程当中,我只要时不时看一下进程是否是出现卡死或者异常的状况,其他时间彻底能够作本身的事(若是不想打开真实的浏览器运行代码,也能够直接使用Chrome(Headless)
或者Firefox(Headless)
菜单)。
关于一些高级和实用功能,我将在后续补充。