备注:配合免费视频教程,获取更佳的学习效果!课程连接: ke.qq.com/course/2815…node
如今经常使用的自动化测试框架有单元测试框架,关键字驱动框架,以及如今比较流行的行为驱动测试框架。本次教程,咱们采用行为驱动框架Cucumber.js + selenium-webdriver 来实现Web自动化测试。Cucumbergit
前提条件github
安装步骤web
安装CukeTestnpm
下载完成后,按照默认安装方式安装便可。浏览器
建立项目
安装完成后,打开CukeTest,新建项目,项目名称任意写,项目模板选择 Web ,项目路径选择本身本地一个目录。 点击 建立 按钮,完成建立。bash
编辑测试用例
项目建立完成后,工具默认会自动帮咱们生成Cucumber的代码样例。 简要介绍下默认项目目录结构架构
└─features Cucumber 运行默认从features目录遍历文件
├─step_definitions 定义自动化脚本
└─support 定义环境支持目录(好比定义运行超时、浏览器驱动)
复制代码
.feature 文件是Cucumber中的剧本文件,定义了测试用例。 CukeTest默认会以可视化编辑模式打开feature文件,以下图所示:框架
熟悉Cucumber的同窗会发现,使用CukeTest编辑feature文件很方便。在对应的文字输入部分,直接双击就能够进行编辑,不用担忧文件格式不符合剧本的语法。例如,咱们要写一个简单的百度搜索自动化测试样例。能够编辑feature文件为:async
对应的feature文本为:
# language: zh-CN
功能: 百度搜索功能
测试功能
场景: 百度搜索
假如浏览到搜索网站 "http://www.baidu.com"
当输入关键字"CukeTest",并的点击搜索按钮的时候
那么搜索结果中应该能够包含"CukeTest"
复制代码
能够在CukeTest中切换到 文本 视图 将上面文本复制进去。关于feature文件的编辑已经讲解,会在后续教程中专门讲解。
编辑自动化代码
打开 step_definitions\definitions.js 文件,点击feature文件中操做步骤上的灰色按钮,会自动在definitions.js中生成自动化样例代码。
const { Given, When, Then } = require('cucumber');
const assert = require('assert');
const { driver } = require('../support/web_driver');
Given(/^浏览到搜索网站 "([^"]*)"$/, async function(url) { await driver.get(url); }); When(/^输入关键字"([^"]*)",并的点击搜索按钮的时候$/, async function (arg1) {
return 'pending';
});
Then(/^搜索结果中应该能够包含"([^"]*)"$/, async function (arg1) { return 'pending'; }); 复制代码
根据以前学习的selenium-webdriver 语法完善代码,最终代码:
const { Given, When, Then } = require('cucumber');
const assert = require('assert');
const { driver } = require('../support/web_driver');
Given(/^浏览到搜索网站 "([^"]*)"$/, async function(url) { await driver.get(url) ;}) ;When(/^输入关键字"([^"]*)",并的点击搜索按钮的时候$/, async function (arg1) {
await driver.findElement({id:'kw'}).sendKeys(arg1);
await driver.findElement({id:'su'}).click();
});
Then(/^搜索结果中应该能够包含"([^"]*)"$/, async function (arg1) { await driver.sleep(3000) let allresult = await driver.findElement({id:'content_left'}).getText() return assert.ok(allresult.includes(arg1)); }); 复制代码
安装项目依赖
有两种方式安装依赖包:能够选择本身熟悉的方式进行安装:
点击 运行项目 按钮,便可进行项目运行,运行完成后,能够看到会自动生成测试报告。
获取更多信息,能够关注公众号,也能够加QQ群:707467292 进行node.js自动化相关技术交流。