前言
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、测试报告
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岁这一关…当能力与年龄脱节,我们该如何自救
大学毕业开始销售…不甘于现状,转行测试的自救之路
从销冠到失业,最后选择软件测试,回头看看这段路,我很幸运!
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/204167.html原文链接:https://javaforall.net
