执行测试用例
全局运行: 若使用-g选项安装了Nightwatch,则可在任意位置执行:
nightwatch [source] [options]
指定项目: 若在指定项目安装nightwatch依赖,则可使用node_modules/.bin 或使用npx命令:
npx nightwatch [source] [options]
Linux和MaxOS:
./node_modules/.bin/nightwatch [source] [options]
Windows:
创建nightwatch.js,执行
require('nightwatch/bin/runner.js');
然后运行命令:
node nightwatch.js [source] [options]
测试源文件(source): 选项source
可以时一个或多个文件或一整个文件夹。可与配置文件的src_folders
无关:
单个测试
nightwatch tests/one/firstTest.js
多个单独测试
nightwatch tests/one/firstTest.js tests/secondTest.js
单个测试和一个文件夹
nightwatch tests/one/test.js tests/utils
命令行参数
可使用nightwatch --help
查看全部参数项
使用测试环境
default环境是必须的,所有其他环境均继承自default,且根据需要覆盖设置。以下示例中集成基础配置并覆盖了所有default定义的配置。
{
...
"test_settings" : {
"default" : {
"launch_url" : "http://localhost",
"globals" : {
"myGlobalVar" : "some value",
"otherGlobal" : "some other value"
}
},
"integration" : {
"launch_url" : "http://staging.host",
"globals" : {
"myGlobalVar" : "other value"
}
}
}
}
配置后必须使用–env参数来使用具体的环境,如下:
nightwatch --env integration
使用测试组
nightwatch可以组织测试脚本为一组并执行。将测试放在同一子文件夹下即可,组名即为文件夹名:
如下示例:
lib/
├── selenium-server-standalone.jar
custom-commands/
├── loginUser.js
├── attachPicture.js
tests/
├── logingroup
| ├── login_test.js
| └── otherlogin_test.js
├── addressbook
| ├── addressbook_test.js
| └── contact_test.js
├── chat
| ├── chatwindow_test.js
| ├── chatmessage_test.js
| └── otherchat_test.js
└── smoketests
├── smoke_test.js
└── othersmoke_test.js
只执行smoketests组:
nightwatch --group smoketests
跳过smoketests组:
nightwatch --skipgroup smoketests
跳过多个组:
nightwatch --skipgroup addressbook,chat
使用测试标签
你可指定测试的标签,一个测试可拥有多个标签。如:login测试输入login测试套件,也属于sanity套件。
使用测试模块,通过@tags属性添加标签:
module.exports = {
'@tags': ['login', 'sanity'],
'demo login test': function (browser) {
// test code
}
};
使用describe接口:
describe('testsuite', function() {
this.tags = ['login', 'sanity'];
it('demo login test', function(browser) {
});
});
选择运行的标签:
nightwatch --tag login
指定多个标签:
nightwatch --tag login --tag something_else
跳过指定标签:
nightwatch --skiptags login
跳过多个标签,使用,分隔:
nightwatch --skiptags login,something_else
同时运行
1. 通过测试workers
当此配置开启,测试执行器会开启多个子进程,然后同时运行载入的测试。设置test_workers以开启:
{
"test_workers": {
"enabled": true,
"workers": "auto"
}
}
或
{"test_workers": true}
workers选项配置同时运行的子进程数
- auto - 确定CPU数,如4 CPUs表示 4个workers
- {number} - 指定具体的workers
另一种方法是–parallel 开关:
nightwatch --parallel
2. 通过同时在多个环境中运行
nightwatch -e firefox,chrome
以上将在firefox和chrome中并行运行。
3. workers + 多环境
nightwatch -e firefox,chrome --parallel