自动化测试工具-Taiko

2022-07-26 14:10:06 浏览数 (1)

自动化测试工具-Taiko

目录

  • 1、前言
  • 2、简介
  • 3、安装
  • 4、记录测试
    • 4.1、录制脚本
    • 4.2、生成脚本
    • 4.3、退出录制
  • 5、运行测试
    • 5.1、无头模式
    • 5.2、浏览模式
  • 6、仿真模拟
    • 6.1、模拟设备
    • 6.2、模拟网络
  • 7、与Gauge集成
  • 8、其他

1、前言

Web自动化测试工具从刚开始接触的QTP(UFT),到现在绝大多数公司或项目都在使用的Selenium,以及之后有很大发展前景的Cypress。可以看出自动化测试工具越来越丰富了,当然这里所提到的都是比较有代表性的,市面上的优秀工具远远不止这三个。

2、简介

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/

3、安装

先确保已安装Node.js

之后打开命令行,输入安装命令

代码语言:javascript复制
npm install -g taiko

注:如提示以下信息,为权限问题。

代码语言:javascript复制
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

解决方法:修改用户权限,之后再次执行安装命令即可。

代码语言:javascript复制
sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

安装完成后,可查看版本信息。

代码语言:javascript复制
taiko --version

4、记录测试

4.1、录制脚本

打开命令行输入命令

代码语言:javascript复制
taiko

进入记录测试里,现在可以在此提示中使用Taiko的API作为命令。

例如:要启动Chrome浏览器实例,输入

代码语言:javascript复制
openBrowser()

提示浏览器已打开

此时Chrome浏览器也自动打开

要查看所有可用的API,命令行输入

代码语言:javascript复制
.api

显示所有可用API方法

要查看某个API方法的详细信息,命令行输入

代码语言:javascript复制
.api API方法

例如:查看打开浏览器的API方法

代码语言:javascript复制
.api openBrowser

显示打开浏览器的API方法

之后依次输入命令,完整命令:

代码语言:javascript复制
openBrowser()
goto("https://www.cnblogs.com/alltests/")
click("公众号:AllTests软件测试")
goto("https://www.baidu.com/")
write("taiko test automation")
click("百度一下")
closeBrowser()

根据所输入的命令,浏览器做出相应操作。

4.2、生成脚本

生成测试脚本,命令行输入

代码语言:javascript复制
.code

自动将已输入的命令生成脚本

复制/修改此代码或使用,直接将其保存为js文件。

例如:

代码语言:javascript复制
.code mytest.js

将代码保存到mytest.js文件里。

4.3、退出录制

完成录制,命令行输入

代码语言:javascript复制
.exit

退出录制

5、运行测试

使用已录制并生成脚本的mytest.js文件

脚本代码:

代码语言:javascript复制
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();
    }
})();

5.1、无头模式

无头模式运行测试

打开命令行,输入执行命令

代码语言:javascript复制
taiko mytest.js

运行结果:

执行时不弹出浏览器

5.2、浏览模式

查看测试在浏览器窗口中的执行过程

打开命令行,输入执行命令

代码语言:javascript复制
taiko mytest.js --observe

运行结果:

与此同时弹出浏览器进行执行操作

6、仿真模拟

6.1、模拟设备

要模拟设备(使用浏览器的窗口),可以使用参数--emulate-device

打开命令行,输入执行命令

代码语言:javascript复制
taiko --emulate-device 'iPhone X'

将浏览器模拟为iPhone X模式

浏览器打开页面的视角为模拟iPhone X模式显示

查看更多可模拟的设备:

https://docs.taiko.dev/devices

6.2、模拟网络

要模拟网络,可以使用参数--emulate-network

打开命令行,输入执行命令

代码语言:javascript复制
taiko --emulate-network 'Regular4G'

设置网络为4G

模拟网络可用选项有GPRS、Regular2G、Good2G、Regular3G、Good3G、Regular4G、DSL、WiFi、Offline

7、与Gauge集成

Gauge是一个跨平台、并用于编写可读和可重用的自动化测试框架。属于BDD(Behavior Driven Development)行为驱动开发。

具有降低规范、数据驱动执行、并行执行和测试报告等功能。Gauge使测试维护变得更加容易,Gauge易于安装并与Taiko很好地集成,使用Gauge和Taiko,我们可以编写更可靠的自动化测试。

命令行输入安装命令

代码语言:javascript复制
npm install -g @getgauge/cli

创建文件夹(例如:taiko-demo),之后命令行路径跳转到此文件夹下,输入初始化项目命令

代码语言:javascript复制
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语法):

代码语言:javascript复制
# 代表测试项目
## 代表测试用例
* 代表测试步骤,步骤的名称对应js文件里的关键词

文件内容:

代码语言:javascript复制
# my_demo项目
## demo测试用例
* 测试步骤1:打开博客
* 测试步骤2:打开百度

2、编写step_implementation.js文件,在后面追加脚本

脚本内容:

代码语言:javascript复制
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、执行脚本

方式一:打开命令行输入执行命令

代码语言:javascript复制
gauge run [你的spec的文件名]

例如1:执行specs文件下的所有文件用例(example.spec、my_demo.spec)

打开命令行,输入命令

代码语言:javascript复制
gauge run specs

运行结果:

例如2:执行specs文件下某个文件用例(my_demo.spec)

打开命令行,输入命令

代码语言:javascript复制
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/

0 人点赞