深夜睡不着,正好过几天要做nightwatch分享,于是浅在csdn记录一下
一.原理
nightwatch可以通过GitHub上的nightwatch进行配置,或是csdn直接搜索配置就可以hh。nightwatch是e2e测试,即端对端的测试,是站在用户角度对系统进行各种功能各种交互的测试。对于前端主要是看dom结构,form表单,页面跳转ajax是否符合规范。nightwatch通过webdriver服务器例如chorme或者selenium driver服务器链接http api来进行工作的
二.基本语法
1.可以通过变量来定义一些全局变量进行引用方便更改
例如:
- nightwatch主要编写原则首先进行定位,然后进行交互。
例如测试一个系统首先需要去到该系统的url地址browser.url(''),然后进行进行登录,获取到账号密码输入框,进行输入,点击登录,可以通过useCSS()的格式或者是useXpath()格式。(这里重点说一下use和use我认为这个是我的入门语法usecss可以通过cssselec来进行元素的选择。例如.useCss().click('.app')点击class为app的元素,useXpath类似于路径,从body一层层向下查找可以看一下xpath用法感觉还是蛮简单的)
.sendKeys('input[type=text]', '账号')
.sendKeys('input[type=password]', '密码')
nightwatch api文档有说明Nightwatch.js | Node.js powered End-to-End testing framework
三.运行
打开两个终端一个用来启动项目,一个用来运行nightwatch测试用例
运行nightwatch测试用例的终端,需要先进入到nightwatch文件夹中执行npx nightwatch 测试用例所在文件的命令,例如: npx nightwatch ./cases/case.js
四、运行结果
常见的报错:
- 超时问题:该行出现问题你所期待的结果并没有出现,不在向下执行
- 路径问题:你要找的内容并不存在,一般是路径错误
- 运行问题:你没有运行启动项目就开始运行测试用例
- 定位问题:元素可见了但是没法定位可以截图查看一下是否有东西进行遮住
测试用例全部执行完在终端出现 ✨ PASSED印记。如果过程中出现红标Error但最后还是 ✨ PASSED,只是因为程序执行比测试用例慢而已还是成功的。
就这样明天再写睡觉