博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
E2E测试神器nightwatch.js使用
阅读量:4599 次
发布时间:2019-06-09

本文共 2219 字,大约阅读时间需要 7 分钟。

由于测试资源紧张,以及人工测试覆盖率有限。为了规避因改动代码而产生新的bug,最近项目要加自动化测试。经过组内有经验的大哥介绍。推荐了今天的主角。

官网是这么介绍的:

  Nightwatch.js is an automated testing framework for web applications and websites, written in Node.js and using the W3C WebDriver API (formerly Selenium WebDriver).

It is a complete End-to-End testing solution which aims to simplify writing automated tests and setting up Continuous Integration. Nightwatch can also be used for writing Node.js unit and integration tests.

大概意思是:Nightwatch.js是一个用于Web应用程序和网站的自动化测试框架,使用Node.js编写并使用W3C WebDriver API(以前称为Selenium WebDriver)。

它是一个完整的浏览器(端到端)测试解决方案,旨在简化设置持续集成和编写自动化测试的过程。 Nightwatch也可用于编写Node.js单元测试。

首先要安装相关依赖

npm install nightwatch -D
npm install chromedriver -D
npm install selenium-server -D  (目前我没有用到)
项目目录如下

 

新建nightwatch.conf.js 配置设置信息
自己按照官网通过nightwatch.json设置时,在windows上总是提示找不到server_path文件路径,故改写。
相关配置根据自己需求对照官网配置信息配置即可。这里chromeOptions.args若设置--headless是不会打开浏览器的。(我这里多了ss是可以打开的)
const chromedriverPath = require('chromedriver').pathmodule.exports = {  "src_folders" : ["test/e2e/specs"],  "webdriver" : {    "start_process": true,    "server_path": chromedriverPath,    "port": 9515,    "log_path" : "test/e2e/reports"  },  "test_settings" : {    "default" : {      "desiredCapabilities": {        "browserName": "chrome",        "chromeOptions": {          "args": [            "--headlessss"          ]        }      }    }  }}

测试代码test/e2e/specs目录下的***_specs.js。可支持多种的断言风格。从 Nightwatch0.7 版本开始, 引入了新的 BDD风格的断言库,大大提升了灵活性和代码的可读性。 

expect 断言是 chai 框架 expect api 的子集,在此对元素类型也能使用。我仅仅用百度首页做个测试例子。

const testUrl = 'https://www.baidu.com/'module.exports = {  'test for baidu' : function (browser) {    browser      .url(testUrl)      .waitForElementVisible('body', 3000)      .setValue('input[id=kw]', 'nightwatch')      .waitForElementVisible('input[type=submit]', 1000)      .click('input[type=submit]')      .pause(1000)      .waitForElementVisible('div[class=s_tab_inner]', 3000)      .assert.containsText('.s_tab_inner', '网页')      .end();  }};

启动测试 packae.json

"scripts": {    "test": "nightwatch -c  test/e2e/nightwatch.conf.js",    "build": "node build/build.js"  },

 在项目根目录下执行npm test即可。它会模拟界面操作,打开浏览器执行。控制台信息如下。

 源码git地址:

 

 

转载于:https://www.cnblogs.com/shichangchun/p/10553275.html

你可能感兴趣的文章
Red Gate 破解
查看>>
JVM 调优工具
查看>>
SCTF 2014 pwn题目分析
查看>>
集合以及特殊集合
查看>>
USACO 2.2 Runaround Numbers
查看>>
利用 force index优化sql语句性能
查看>>
Matlab画图-非常具体,非常全面
查看>>
365. Water and Jug Problem
查看>>
SQL数据库数据检索top和distinct
查看>>
平衡搜索树--红黑树 RBTree
查看>>
sqlite驱动下载
查看>>
让IE6/IE7/IE8浏览器支持CSS3属性
查看>>
队列实现霍夫曼树
查看>>
【Java】图片高质量缩放类
查看>>
Python :类中设置默认属性并修改
查看>>
磁盘管理综合测试
查看>>
Unity3d Shader开发(三)Pass(Pass Tags,Name,BindChannels )
查看>>
UMLet
查看>>
从父控件移除控件
查看>>
calc()制作自适应布局
查看>>