playwright生成excel报告

文章介绍了如何通过Jest的自定义reporter功能与ExcelJS库结合,实现测试结果的Excel报告生成。开发者可以创建一个继承自DefaultReporter的类,重写相关方法,将测试结果存储并在测试完成后写入Excel文件,从而实现报告与业务逻辑的解耦。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果您不希望代码与业务逻辑耦合,并且要生成 Excel 报告,您可以使用 Jest 的自定义 reporter 功能结合 ExcelJS 库来实现。

 

以下是一个示例,展示了如何使用 Jest 的自定义 reporter 和 ExcelJS 生成 Excel 报告:

 

确保您已经安装了必需的依赖项。在命令行中运行以下命令:

 

npm install jest exceljs

 

创建一个名为 excel-reporter.js 的新文件,并将以下示例代码复制到文件中:

 

const { DefaultReporter } = require('@jest/reporters');

const { Workbook, Worksheet } = require('exceljs');

 

class ExcelReporter extends DefaultReporter {

constructor(...args) {

super(...args);

this.results = [];

}

 

onRunComplete(contexts, results) {

super.onRunComplete(contexts, results);

this.generateExcelReport();

}

generateExcelReport() {

const workbook = new Workbook();

const worksheet = workbook.addWorksheet('测试报告');

worksheet.columns = [

{ header: '测试名称', key: 'name', width: 30 },

{ header: '测试状态', key: 'status', width: 20 },

];

 

for (const result of this.results) {

const row = worksheet.addRow(result);

row.commit();

}

 

workbook.xlsx.writeFile('test-report.xlsx');

}

 

onTestResult(test, testResult, aggregatedResult) {

super.onTestResult(test, testResult, aggregatedResult);

const result = {

name: testResult.testResults[0].title,

status: testResult.testResults[0].status,

};

this.results.push(result);

}

}

 

module.exports = ExcelReporter;

 

在这个示例中,我们创建了一个名为 ExcelReporter 的自定义 reporter 类。它继承了 Jest 的 DefaultReporter,并重写了 onRunComplete 和 onTestResult 方法。

 

在 onRunComplete 方法中,我们调用 generateExcelReport 函数来生成 Excel 报告。在 generateExcelReport 函数中,我们创建了 Excel 工作簿和工作表,并将测试结果写入 Excel 表格。

 

在 onTestResult 方法中,我们从测试结果中提取测试名称和状态,并将其添加到 results 数组中。

 

创建一个名为 jest.config.js 的新文件,并将以下示例代码复制到文件中:

 

module.exports = {

reporters: [

['<rootDir>/excel-reporter.js', {}]

]

};

 

在这个示例中,我们将自定义 reporter 文件的路径指定为 <rootDir>/excel-reporter.js,并将其添加到 Jest 的 reporters 配置中。

 

创建一个名为 example.test.js 的测试文件,并编写您的测试用例。

 

在命令行中运行以下命令来执行测试并生成 Excel 报告:

 

npx jest --config=jest.config.js

执行完毕后,您将在当前目录下找到名为 test-report.xlsx 的 Excel 报告文件。

 

通过使用自定义 reporter,我们将报告生成逻辑与业务代码解耦,确保了更好的可维护性和灵活性。您可以根据需要自定义 Excel 报告的格式和内容,并将其应用于任何 Jest 测试套件。

 

如果您想使用 Playwright 和 Python 进行测试并获取信息,可以使用 Pytest 进行测试框架。以下是一些步骤: 1. 安装 Pytest 和 Playwright-python ``` pip install pytest pip install playwright pip install pytest-playwright ``` 2. 编写测试用例 可以使用 Playwright 的 API 进行浏览器操作,例如打开一个网页,填写表单,点击按钮等等。在测试用例中,您可以使用 assert 语句来检查页面上的信息是否正确。 ```python import pytest from playwright.sync_api import Playwright, Page @pytest.fixture(scope="module") def playwright() -> Playwright: with Playwright() as playwright: yield playwright @pytest.fixture(scope="module") def browser(playwright): browser = playwright.chromium.launch() yield browser browser.close() @pytest.fixture(scope="module") def page(browser): page = browser.new_page() yield page page.close() def test_fill_form(page: Page): page.goto("https://www.example.com") page.fill("#username", "testuser") page.fill("#password", "testpass") page.click("#submit") assert page.url == "https://www.example.com/dashboard" assert page.title() == "Dashboard" assert page.query_selector("#welcome-message").inner_text() == "Welcome, testuser!" ``` 3. 运行测试用例并存储信息 运行 pytest 命令来运行测试用例,并使用 pytest 的报告功能来存储测试结果。您可以使用 `-r` 参数来指定报告格式,例如 `-r junit` 将生成 JUnit XML 报告。您还可以使用 `-o` 参数来指定报告文件的路径和名称。 ``` pytest -r junit -o results.xml ``` 除了存储测试结果,您还可以使用 Python 的文件操作功能来将测试结果写入 CSV 或 Excel 文件。 希望这可以帮助您开始使用 Playwright 和 Python 进行测试和信息获取!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值