学习方法
1.加上详细注释解释代码从三个方向,每个方法的含义,方法中每一段代码的含义,每一段中每一句话的含义
2.学习英语单词,能加速能快的了解代码含义
3.文件目录结构也很重要,要学会目录结构
4.所用技术也很重要,与代码结合明白技术如何使用
5.多问为什么,并记录问题
e2e
是什么
端对端测试(End-to-End Testing,简称 E2E 测试)是一种软件测试方法,旨在测试整个应用程序的流程,从用户界面到后端服务的端到端功能。在前端开发中,E2E 测试通常通过模拟用户在应用程序中的交互来确保应用程序按预期工作。
在这段代码中,通过 Nightwatch 自定义命令实现了一个 E2E 测试的步骤,用于在页面上添加一个笔记。该测试会模拟用户的操作,包括点击按钮、填写文本、提交表单等,以验证添加笔记功能是否正常工作。通过这种方式,可以确保应用程序的不同部分(前端界面、后端服务等)协同工作正常,从而提高应用程序的质量和稳定性。
nightwatch
Nightwatch.js 是一个基于 Node.js 和 WebDriver 的端到端测试框架,用于自动化 Web 应用程序的功能测试。Nightwatch.js 提供了一套简单且易于使用的 API,使得编写和运行端到端测试变得非常容易。
在 Nightwatch.js 中,你可以使用类似于 jQuery 的选择器来定位页面元素,并执行各种操作和断言。Nightwatch.js 也支持并行测试执行、持续集成以及针对不同浏览器的测试。
介绍
Nightwatch.js 是一个功能强大的端到端测试框架,它基于 Node.js 和 WebDriver 协议,可以用于自动化测试 Web 应用程序。下面是一个简单的示例代码,展示了 Nightwatch.js 的主要功能和如何使用:
module.exports = {
src_folders: ['tests'], // 测试文件夹路径
webdriver: {
start_process: true, // 是否启动浏览器驱动程序
server_path: 'node_modules/.bin/chromedriver', // 浏览器驱动程序路径(这里使用的是 ChromeDriver)
port: 9515 // WebDriver 端口号
},
test_settings: {
default: {
desiredCapabilities: {
browserName: 'chrome' // 浏览器类型
}
}
}
};
上面是 Nightwatch.js 的配置文件示例。其中指定了测试文件夹的路径以及浏览器驱动程序的路径(这里使用的是 ChromeDriver)。接下来是一个简单的测试文件示例:
module.exports = {
'Demo test Google': function (browser) {
browser
.url('http://www.google.com') // 打开 Google 网站
.waitForElementVisible('body', 1000) // 等待 body 元素可见
.assert.title('Google') // 验证页面标题是否为 "Google"
.assert.visible('input[type=text]') // 验证搜索输入框是否可见
.setValue('input[type=text]', 'nightwatch') // 在搜索输入框中输入关键词 "nightwatch"
.waitForElementVisible('input[name=btnK]', 1000) // 等待搜索按钮可见
.click('input[name=btnK]') // 点击搜索按钮
.pause(1000) // 暂停 1 秒
.assert.containsText('#main', 'Nightwatch.js') // 验证页面内容中是否包含 "Nightwatch.js"
.end(); // 结束测试
}
};
在上面的测试文件中,我们访问 Google 网站,搜索关键词“nightwatch”,然后验证页面是否包含“Nightwatch.js”文本。
要运行以上测试,可以执行以下命令:
npx nightwatch tests/exampleTest.js
这将启动 Nightwatch.js 运行测试,并输出测试结果。
Nightwatch.js 的主要功能包括:
1. 支持多种断言和验证机制,方便验证页面元素和内容。
2. 可以通过选择器或 XPath 定位页面元素,执行点击、输入、滚动等操作。
3. 提供丰富的 API 和钩子函数,方便编写灵活的测试逻辑。
4. 支持并行测试执行,提高测试效率。
总之,Nightwatch.js 是一个强大且易于使用的端到端测试框架,适合用于自动化测试各种 Web 应用程序。