前言 Web自动化测试工具从刚开始接触的QTP(UFT),到现在绝大多数公司或项目都在使用的Selenium,以及之后有很大发展前景的Cypress。可以看出自动化测试工具越来越丰富了,当然这里所提到的都是比较有代表性的,市面上的优秀工具远远不止这三个。
简介 Taiko是一个免费的开源Node.js库,带有一个简单的API来自动化基于Chromium的浏览器(Chrome、Microsoft Edge、Opera)和Firefox。
Taiko测试脚本是用Javascript或任何编译为Javascript的语言编写的,例如TypeScript。
Taiko的API是为测试人员设计的,与其他测试框架不同,Taiko将浏览器视为一个黑匣子,使用Taiko,您可以通过查看网页而不检查其源代码来编写脚本。
Taiko与Selenium的区别:
(1)Taiko与Selenium非常不同。Selenium使用W3C标准的WebDriver。Taiko使用Chrome DevTools协议。Taiko不需要驱动程序(如ChromeDriver)来连接和自动化浏览器。Taiko捆绑了最新版本的Chromium,但它可以自动化任何支持Chrome DevTools协议的浏览器。
(2)与可以用多种编程语言编写脚本的Selenium不同,Taiko将只支持Javascript和编译为Javascript的语言。
官方网址:https://taiko.dev/
安装 先确保已安装Node.js
之后打开命令行,输入安装命令
npm install - g taiko
注:如提示以下信息,为权限问题。
npm ERR! The operation was rejected by your operating system npm ERR! It is likely you do not have the permissions to access this file as the current user
解决方法:修改用户权限,之后再次执行安装命令即可。
sudo chown - R $( whoami) $( npm config get prefix) / { lib/ node_modules, bin, share}
安装完成后,可查看版本信息。
taiko -- version
记录测试 4.1、录制脚本
打开命令行输入命令
taiko
进入记录测试里,现在可以在此提示中使用Taiko的API作为命令。
例如:要启动Chrome浏览器实例,输入
openBrowser ( )
提示浏览器已打开
此时Chrome浏览器也自动打开
要查看所有可用的API,命令行输入
. api
要查看某个API方法的详细信息,命令行输入
. api API方法
例如:查看打开浏览器的API方法
. api openBrowser
显示打开浏览器的API方法
之后依次输入命令,完整命令:
openBrowser ( ) goto ( "https://www.cnblogs.com/alltests/" ) click ( "公众号:AllTests软件测试" ) goto ( "https://www.baidu.com/" ) write ( "taiko test automation" ) click ( "百度一下" ) closeBrowser ( )
根据所输入的命令,浏览器做出相应操作。
4.2、生成脚本
生成测试脚本,命令行输入
. code
自动将已输入的命令生成脚本
复制/修改此代码或使用,直接将其保存为js文件。
例如:
. code mytest. js
将代码保存到mytest.js文件里。
4.3、退出录制
完成录制,命令行输入
. exit
退出录制
运行测试 使用已录制并生成脚本的mytest.js文件
脚本代码:
const { openBrowser, goto , click, write, closeBrowser } = require ( 'taiko' ) ; ( async ( ) = > { try { await openBrowser ( ) ; await goto ( "https://www.cnblogs.com/alltests/" ) ; await click ( "公众号:AllTests软件测试" ) ; await goto ( "https://www.baidu.com/" ) ; await write ( "taiko test automation" ) ; await click ( "百度一下" ) ; } catch ( error) { console. error ( error) ; } finally { await closeBrowser ( ) ; } } ) ( ) ;
无头模式 无头模式运行测试
打开命令行,输入执行命令
taiko mytest. js
运行结果:
执行时不弹出浏览器
浏览模式 查看测试在浏览器窗口中的执行过程
打开命令行,输入执行命令
taiko mytest. js -- observe
运行结果:
与此同时弹出浏览器进行执行操作
仿真模拟 6.1、模拟设备
要模拟设备(使用浏览器的窗口),可以使用参数–emulate-device
打开命令行,输入执行命令
taiko -- emulate- device 'iPhone X'
将浏览器模拟为iPhone X模式
浏览器打开页面的视角为模拟iPhone X模式显示
查看更多可模拟的设备:
https://docs.taiko.dev/devices
6.2、模拟网络
要模拟网络,可以使用参数–emulate-network
打开命令行,输入执行命令
taiko -- emulate- network 'Regular4G'
设置网络为4G
模拟网络可用选项有GPRS、Regular2G、Good2G、Regular3G、Good3G、Regular4G、DSL、WiFi、Offline
与Gauge集成 Gauge是一个跨平台、并用于编写可读和可重用的自动化测试框架。属于BDD(Behavior Driven Development)行为驱动开发。
具有降低规范、数据驱动执行、并行执行和测试报告等功能。Gauge使测试维护变得更加容易,Gauge易于安装并与Taiko很好地集成,使用Gauge和Taiko,我们可以编写更可靠的自动化测试。
命令行输入安装命令
npm install - g @getgauge/ cli
创建文件夹(例如:taiko-demo),之后命令行路径跳转到此文件夹下,输入初始化项目命令
gauge init js
使用编辑器(Visual Studio Code)打开项目
Visual Studio Code下载地址:
https://code.visualstudio.com/
项目目录结构:
在日常的自动化脚本编写阶段,主要维护specs目录下的.spec文件和tests目录下的.js文件。
因属于BDD,采用.spec文件里的某某关键字对应.js文件里的相应js脚本代码。
1、创建my_demo.spec文件,负责填写测试行为
编写规则(支持Markdown语法):
# 代表测试项目 ## 代表测试用例* 代表测试步骤,步骤的名称对应js文件里的关键词
文件内容:
# my_demo项目 ## demo测试用例* 测试步骤1 : 打开博客* 测试步骤2 : 打开百度
2、编写step_implementation.js文件,在后面追加脚本
脚本内容:
step ( "测试步骤1:打开博客" , async function ( ) { await goto ( "https://www.cnblogs.com/alltests/" ) ; await click ( "公众号:AllTests软件测试" ) ; } ) ; step ( "测试步骤2:打开百度" , async function ( ) { await goto ( "https://www.baidu.com/" ) ; await write ( "taiko test automation" ) ; await click ( "百度一下" ) ; } ) ;
3、执行脚本
方式一:打开命令行输入执行命令
gauge run [ 你的spec的文件名]
例如1:执行specs文件下的所有文件用例(example.spec、my_demo.spec)
打开命令行,输入命令
gauge run specs
运行结果:
例如2:执行specs文件下某个文件用例(my_demo.spec)
打开命令行,输入命令
gauge run specs/ my_demo. spec
方式二:利用编辑器执行
打开.spec文件,打击执行即可,执行结果显示在控制台上。
4、测试报告
用例执行完成后,会在项目的reports/html-report/目录里生成测试报告,打开测试报告。 8、其他
API方法:
https://docs.taiko.dev/api/reference/
截图:
https://docs.taiko.dev/taking_screenshots/
断言:
https://docs.taiko.dev/assertions/
文件上传和下载:
https://docs.taiko.dev/file_upload_and_download/
使用元素列表:
https://docs.taiko.dev/working_with_element_lists/
插件:
https://docs.taiko.dev/plugins/
最后为方便大家学习测试,特意给大家准备了一份13G的超实用干货学习资源,涉及的内容非常全面。
包括,软件学习路线图,50多天的上课视频、16个突击实战项目,80余个软件测试用软件,37份测试文档,70个软件测试相关问题,40篇测试经验级文章,上千份测试真题分享,还有2021软件测试面试宝典,还有软件测试求职的各类精选简历,希望对大家有所帮助……
关注我公众号:【程序员二黑】即可获取这份资料了!
推荐阅读 高薪程序员也躲不过35岁这一关…当能力与年龄脱节,我们该如何自救
大学毕业开始销售…不甘于现状,转行测试的自救之路
从销冠到失业,最后选择软件测试,回头看看这段路,我很幸运!