推荐一款自动化测试工具——Taiko

Posted 程序员二黑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了推荐一款自动化测试工具——Taiko相关的知识,希望对你有一定的参考价值。

前言

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岁这一关…当能力与年龄脱节,我们该如何自救

大学毕业开始销售…不甘于现状,转行测试的自救之路

从销冠到失业,最后选择软件测试,回头看看这段路,我很幸运!

以上是关于推荐一款自动化测试工具——Taiko的主要内容,如果未能解决你的问题,请参考以下文章

新一代支持BDD的自动化测试工具Gauge+Taiko

推荐一款自动化测试神器,不会写代码也能做!建议收藏

推荐一款华为最新的自动化代码检查工具

推荐一款华为最新的自动化代码检查工具

面试通过了,只因为我会这个自动化测试工具...

零代码工具15 款企业级零代码开发平台推荐,总有一款是你心仪的