介绍
Puppeteer是 Google 出品的一个 Node.js 库,用于控制浏览器, 作为自动化测试、爬虫等的工具而广泛应用。在自动化测试领域,Puppeteer 可以与 Mocha、Jest 等测试框架配合使用来进行自动化测试。
本文将通过一个简单的示例介绍如何使用 Node.js 和 Puppeteer 进行自动化测试。
环境准备
首先需要安装 Node.js 和 Puppeteer,可以通过以下命令进行安装:
# 安装 Node.js sudo apt-get install nodejs # 安装 Puppeteer npm install puppeteer
示例代码
下面我们以一个输入框验证为例,介绍如何使用 Puppeteer 进行自动化测试。首先在 HTML 文件中添加表单和相关的 JavaScript 代码:
// javascriptcn.com 代码示例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>自动化测试示例</title> </head> <body> <form action=""> <label for="input">请输入用户名:</label> <input type="text" id="input" name="input"> <button type="submit" id="submitBtn">提交</button> </form> <script> const submitBtn = document.querySelector('#submitBtn'); const input = document.querySelector('#input'); submitBtn.addEventListener('click', () => { if (input.value.trim() === '') { alert('请输入用户名'); } }); </script> </body> </html>
这个页面上有一个表单,其中要求用户输入用户名,如果用户名为空时,将会弹出提示框。
下面是我们的测试代码:
// javascriptcn.com 代码示例 const puppeteer = require('puppeteer'); describe('输入框测试', () => { let browser; let page; beforeAll(async () => { browser = await puppeteer.launch(); page = await browser.newPage(); await page.goto('http://localhost:8000/'); }); afterAll(() => { browser.close(); }); test('页面加载测试', async () => { const title = await page.title(); expect(title).toBe('自动化测试示例'); }); test('验证输入框为空时是否提示', async () => { await page.type('#input',''); await page.click('#submitBtn'); await page.waitForSelector('.alert'); const alert = await page.$eval('.alert', el => el.textContent); expect(alert).toBe('请输入用户名'); }); });
beforeAll
: 在所有测试用例运行之前启动 Puppeteer 浏览器,并打开测试页面afterAll
: 所有测试用例运行后关闭 Puppeteer 浏览器test
: 测试用例,包含两个测试:页面加载和验证输入框为空时是否提示await page.type('#input', '')
: 用于获取指定的输入框,清空其中的内容await page.click('#submitBtn')
: 点击提交按钮await page.waitForSelector('.alert')
: 等待提示框出现const alert = await page.$eval('.alert', el => el.textContent)
: 获取提示框中的文本内容expect(alert).toBe('请输入用户名')
: 断言提示框中的文本内容是否为 “请输入用户名”
执行测试
上面提到的测试依赖于 HTML 文件,我们需要把这个 HTML 文件启动一个服务才可以运行我们的测试代码。可以使用以下方式来启动服务器:
npx http-server -c-1
这个命令会把当前目录下的所有文件展示在一个默认端口(8000)上的一个本地服务器中。访问 http://localhost:8000/
可以看到上述 HTML 文件。
执行以下命令来运行测试:
npx jest
浏览器将启动,测试用例会自动运行,并打印出测试结果。
总结
使用 Node.js 和 Puppeteer 进行自动化测试可以有效地提高自动化测试的工作效率。本文介绍了 Puppeteer 的一些基本用法,并以一个简单的示例展示了如何使用 Puppeteer 进行自动化测试。
最后,需要注意一点的是,Puppeteer 是一个非常强大的工具,更多高级的使用需自己学习和尝试。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6530a51a7d4982a6eb237a10