前言
最近由于在工作中需要通过Web端的功能进行一次大批量的操作,数据量大概在5000左右,如果手动处理,
完成一条数据的操作用时在20秒左右的话,大概需要4-5个人/天
的工作量(假设一天8小时的工作里除去休息时间,我能在6个小时里像机器人一样保证每20秒处理一条数据)。
显然,作为一个程序员,我是不可能让这样机械化的操作浪费我宝贵的生命的。第一反应是想到了若干年前被我用来做Web前端测试和写页游外挂的神器Selemium
(当时页游真的很火,我用自己写的脚本,在只花了很少钱的情况下,用了不到3周时间就已经是大神排行榜前10了)。但在我印象中,Selemium
需要编写大量的代码来完成一个脚本,调试过程也较为繁琐,这么多年过去了,我在想会不会有更新更好用的工具出现呢?于是Google了一下之后,发现了Katalon
。
Katalon VS Selemium
Katalon
是在Selemium
相同的内核上构建起来的一个自动化测试工具。官方给出的两者的对比文档:https://www.katalon.com/resources-center/blog/katalon-studio-vs-selenium-based-open-source-frameworks/。
我综合自己这两天使用的情况,大概可以总结为如下几点:
Katalon
的用户群体范围更广,用户甚至不需要任何编程基础,只需要知道自己想做什么即可,而Selemium
的用户群体是开发或者测试人员Katalon
是一个非常易用的图形化的工具,但它竟然是免费的(官方说法是Completely free • Built with Heart
),并且是免安装版本,下载解压就能直接使用。而Selemium
需要安装运行环境、语言驱动等等较为繁琐的步骤使用
Selemium
的时候,可能需要经常查询API文档以找到自己想要实现的功能,而Katalon
大部分时候不需要(当然本身也是有非常完善的API文档的)专业人员通过
Selemium
可以完成各种复杂的功能,Katalon
也可以,Katalon
用的是Java
和Apache Groovy
作为其脚本开发语言性能方面,
Katalon
比Selemium
差一点Katalon
提供了Spy
和Record
两个让构建测试变得异常简单的神级
功能,以及很多内建的非常实用的功能(比如从文件、数据库等数据源获取数据填充到测试变量中)
基础用法
新建项目
方法1:Spy
用Spy Web功能添加对象到对象仓库中
为了更直观,我做了一张动图,完成了Spy的基本演示,其中包含了如下步骤:
打开百度搜索首页
定位搜索框,将其捕获(按组合键
Shift + `
)确认捕获的元素
将搜索框保存到对象仓库中
查看捕获的所有信息
Spy
的作用是可以在较为复杂的页面上或者当操作人员不会写代码的时候,需要操作元素时,用Spy
可以非常方便的做到。上述所有步骤的动图如下:
新建Test Case
这个设计的步骤很简单:
打开百度首页
在输入框里输入katalon
确认搜索
展示搜索结果
过程动图如下(整个过程中并没有对Chrome做任何人工操作):
方法2:Record
上面的方法,相对于初学者来说,已经是“复杂”的了,毕竟我们先手动Spy
出我们想操作的元素。其实,如果只是简单的通过百度搜索某个关键字这样的简单流程,完全可以用Katalon
自带的Record Web
功能,详见如下动图:
Record Web
功能会把你对浏览器做的所有操作,全程录制并保存起来,当然如果有需要,也可以按自己的需求对录制好的步骤做一些调整。
编辑脚本
如果你是个专业用户,你可以可以直接通过编辑脚本来写测试用例。比如在上述用例的基础上,我有如下需求变更:
我希望用户点击
搜索
按钮,而不是直接通过敲击回车
完成搜索我希望在搜索结果出来之后,自动打开搜索结果的第一项
过程如动图所示:
具体过程如下:
手动创建按钮对象
btnSearch
替换
searchByRecord
实验中的回车事件,将其变为点击btnSearch
点击一个搜索结果,但是此时我不知道第一个搜索结果的元素是什么,因此通过
Spy
找到元素的XPath
值用
XPath
值创建搜索结果的链接对象在脚本代码中加入
WebUI.click
触发点击事件
后话
Katalon
在使用上还是非常简单的,效率也非常高,令人眼前一亮。本文中的例子还是比较简单的,在实际场景中肯定还要复杂的多。比如我在本文开头说的那个工作中的任务,我用脚本跑花了5-6个小时。在此过程中,我只要时不时看一下进程是不是出现卡死或者异常的情况,其余时间完全可以做自己的事(当然,有个缺点是浏览器在执行的时候,不太好用电脑,因为焦点会频繁的被抢走)。
关于一些高级和实用功能,我将在后续补充。
本文在我的博客园和我的个人博客上同步发布,作者保留版权,转载请注明来源。
前端自动化测试神器-Katalon的基础用法的更多相关文章
-
前端自动化测试神器-Katalon进阶用法
前言 上一篇介绍了Katalon的基础用法,本篇继续介绍一些进阶的用法. Keyword 和 Method Call Statement Keyword Keyword就是自定义方法,该方法在当前项目 ...
-
前端自动化测试工具doh学习总结(二)
一.robot简介 robot是dojo框架中用来进行前端自动化测试的工具,doh主要目的在于单元测试,而robot可以用来模仿用户操作来测试UI.总所周知,Selenium也是一款比较流行的前端自动 ...
-
Vue组件基础用法
前面的话 组件(Component)是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己所需, ...
-
Vue组件的基础用法(火柴)
前面的话 组件(component)是Vue最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码,根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己的需要,使用 ...
-
【Python爬虫】selenium基础用法
selenium 基础用法 阅读目录 初识selenium 基本使用 查找元素 元素互交操作 执行JavaScript 获取元素信息 等待 前进后退 Cookies 选项卡管理 异常处理 初识sele ...
-
学习web前端之神器sublime text 3
第一次在博客园写博客,以前都是看别人写的技术在自己慢慢的学习.现在想自己把每天学习的东西理解并记录下来,加深下印象以后可以做个回顾.不知道自己能否坚持每周至少写2篇博文. 古话说的好:工欲善其事,必先 ...
-
易优CMS:channel的基础用法
[基础用法] 名称:channel 功能:易优常用标记,可以循环嵌套标签.通常用于网站导航以获取站点栏目信息,方便网站会员分类浏览整站信息 语法: {eyou:channel type='top' r ...
-
易优CMS:type的基础用法
[基础用法] 名称:type 功能:获取指定栏目信息 语法: {eyou:type typeid='栏目ID' empty='暂时没有数据'} <a href="{$field.typ ...
-
JavaScript在HTML中的基础用法总结
网页主要由三部分组成,分别为html.CSS和Javascript.如果说HTML是肉身,CSS是皮相,那Javascript就是灵魂.因此,三者的联系与融合则至关重要.本文就来为大家讲解一下Java ...
随机推荐
-
Openlayers简介
OpenLayers 是由MetaCarta公司开发的,用于WebGIS客户端的 JavaScript包,目前的最高版本是2.5 V,通过BSD License 发行.它实现访问地理空间数据的方法都符 ...
-
https协议了解,以及相关协议的解析
HTTPS简介 HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版. ...
-
使用dbms_system追踪其它session
dbms_system是内部包,建议在官方指导下使用该包. SQL> desc dbms_system PROCEDURE ADD_PARAMETER_VALUE Argument Name T ...
-
javascript之css常用属性
1. position : 属性值有absolute .fixed.relative absolute:生成绝对定位的元素,相对第一父元素进行定位: fixed : 生成绝对定位的元素,相对于浏览 ...
-
asp.net 真正实现完全跨域单点登录
单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. asp.ne ...
-
求逆序对[树状数组] jdoj
求逆序对 题目大意:给你一个序列,求逆序对个数. 注释:n<=$10^5$. 此题显然可以跑暴力.想枚举1到n,再求在i的后缀中有多少比i小的,统计答案即可.这显然是$n^2$的.这...显然过 ...
-
虚拟机安装CentOS7(一)
软件环境 虚拟机:VMware Workstation Linux:CentOS-7-x86_64-DVD-1708.iso镜像文件 虚拟机所在电脑系统:win7 安装步骤 安装VMware 下载Li ...
-
python接口自动化-post请求1
一.查看官方文档 1. 学习一个新的模块,直接用 help 函数就能查看相关注释或案例内容,例如 具体信息如下,可查看 python 发送 ge t和 post 请求的案例: F:\test-req- ...
-
Scrapy快速上手
超详细官方教程解析 https://blog.csdn.net/fly_yr/article/details/51540269 实战过程: 创建一个Scrapy项目 定义提取的Item 编写爬取网站的 ...
-
C++中find_if
总结:find_if针对查找的对象中包含指针需要进行比较 find则更偏向于普通的数值或者字符比较 两者都可以应用于自定义的类,只需在类中重载==运载符 函数调用符()说白了其实就是代替函数指针,调用 ...