一、Nightwatch
Nightwatch是一个使用selenium或者webdriver或者phantomjs的nodejs编写的E2E自动测试框架,可以很方便的写出测试用例来模仿用户的操作来自动验证功能的实现。
二、selenium
Selenium是一个强大的浏览器测试平台,支持Firefox、Chrome、edge等浏览器的模拟测试,其原理是打开浏览器,把自己的JavaScript文件嵌入网页中。然后selenium的网页通过frame嵌入目标网页。这样就可以使用selenium的JavaScript对象来控制目标网页。
三、Nightwatch安装
通过npm安装nightwatch。
$ npm install [-g] nightwatch
根据需要安装Selenium-server或者其他Webdriver。安装哪些Webdriver取决于你想要测试哪些浏览器,如果只测试Chrome甚至可以不装Selenium-server。
$ npm install selenium-server
$ npm install chromedriver
四、Nightwatch配置
nightwatch的使用很方便,一个nightwatch.json或者nightwatch.config.js(后者优先级高)配置文件,使用runner会自动找同级的这两个文件来获取配置信息。也可以手动使用–config来制定配置文件的相对路径。json配置文件,分为基本配置、selenium配置和测试配置三个部分。基本配置依次为测试用例源文件路径、输出路径、基础指令路径、全局配置路径等。selenium设置包括是否开启、路径、端口等,cli_args指定将要运行的webdriver。test_settings制定测试时各个环境的设置,默认是default,通过–env加环境名可以指定配置的任意环境。只要把测试用例放在对应的文件夹使用module.exports暴露一个对象,其中key是测试名,value是一个接受browser实例的函数,在函数中进行断言,nightwatch会自动依次调用文件夹中的测试用例。
一个简易的Chrome headless模式的nightwatch.conf.js配置如下: