当前位置 博文首页 > davieyang:自动化测试框架[Cypress自定义测试报告详解]
- 已经熟练掌握了Cypress的基本知识,请参考自动化测试框架[Cypress概述]和自动化测试框架[各自动化测试框架比较]
- 已经熟练掌握Cypress环境配置,请参考自动化测试框架[Cypress环境搭建与配置详解]
和自动化测试框架[Cypress测试实例凸显其优势]
- 已经熟练掌握Cypress框架结构,请参考自动化测试框架[Cypress框架拆解]
和自动化测试框架[Cypress重试机制]
- 已经熟练掌握Cypress内置测试报告,请参考自动化测试框架[Cypress自定义测试报告详解]
Machawesome是与JavaScript测试框架Mocha一起使用的自定义报告,运行在Node.js8以上,并与mochawesome-report-generator结合使用从而生成独立的HTML/CSS报告
命令行执行npm install --save-dev@5.2.0
和npm install --save-dev mochawesome
C:\Users\Administrator>npm install --save-dev mocha@5.2.0
npm WARN deprecated mkdirp@0.5.1: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
npm WARN saveError ENOENT: no such file or directory, open 'C:\Users\Administrator\package.json'
npm WARN enoent ENOENT: no such file or directory, open 'C:\Users\Administrator\package.json'
npm WARN Administrator No description
npm WARN Administrator No repository field.
npm WARN Administrator No README data
npm WARN Administrator No license field.
+ mocha@5.2.0
added 13 packages from 435 contributors and audited 380 packages in 7.501s
12 packages are looking for funding
run `npm fund` for details
found 5 low severity vulnerabilities
run `npm audit fix` to fix them, or `npm audit` for details
C:\Users\Administrator>npm install --save-dev mochawesome
npm WARN saveError ENOENT: no such file or directory, open 'C:\Users\Administrator\package.json'
npm WARN enoent ENOENT: no such file or directory, open 'C:\Users\Administrator\package.json'
npm WARN mochawesome@6.2.1 requires a peer of mocha@>=7 but none is installed. You must install peer dependencies yourself.
npm WARN Administrator No description
npm WARN Administrator No repository field.
npm WARN Administrator No README data
npm WARN Administrator No license field.
+ mochawesome@6.2.1
added 61 packages from 29 contributors and audited 441 packages in 14.105s
13 packages are looking for funding
run `npm fund` for details
found 5 low severity vulnerabilities
run `npm audit fix` to fix them, or `npm audit` for details
首先在cypress.json文件中有如下配置
{
"reporter": "junit",
"reporterOptions": {
"mochaFile": "results/test_report_[hash].xml",
"toConsole": true
}
}
在命令函执行命令yarn cypress:run --reporter=mochawesome
D:\Cypress>yarn cypress:run --reporter=mochawesome
yarn run v1.22.10
$ cypress run --reporter=mochawesome
====================================================================================================
(Run Starting)
┌────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Cypress: 6.2.0 │
│ Browser: Electron 87 (headless) │
│ Specs: 1 found (examples\actions.spec.js) │
└────────────────────────────────────────────────────────────────────────────────────────────────┘
────────────────────────────────────────────────────────────────────────────────────────────────────
Running: examples\actions.spec.js (1 of 1)
Actions
√ .type() - type into a DOM element (27538ms)
√ .focus() - focus on a DOM element (20193ms)
√ .blur() - blur off a DOM element (853ms)
√ .clear() - clears an input or textarea element (1918ms)
√ .submit() - submit a form (684ms)
√ .click() - click on a DOM element (3405ms)
√ .dblclick() - double click on a DOM element (946ms)
√ .rightclick() - right click on a DOM element (472ms)
√ .check() - check a checkbox or radio element (1618ms)
√ .uncheck() - uncheck a checkbox element (1593ms)
√ .select() - select an option in a <select> element (1304ms)
√ .scrollIntoView() - scroll an element into view (1123ms)
√ .trigger() - trigger an event on a DOM element (452ms)
√ cy.scrollTo() - scroll the window or element to a position (2549ms)
14 passing (1m)
[mochawesome] Report JSON saved to D:\Cypress\mochawesome-report\mochawesome.json
[mochawesome] Report HTML saved to D:\Cypress\mochawesome-report\mochawesome.html
(Results)
┌────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Tests: 14 │
│ Passing: 14 │
│ Failing: 0 │
│ Pending: 0 │
│ Skipped: 0 │
│ Screenshots: 0 │
│ Video: true │
│ Duration: 1 minute, 8 seconds │
│ Spec Ran: examples\actions.spec.js │
└────────────────────────────────────────────────────────────────────────────────────────────────┘
(Video)
- Started processing: Compressing to 32 CRF
Compression progress: 63%
- Finished processing: D:\Cypress\cypress\videos\examples\actions.spec.js.mp4 (17 seconds)
====================================================================================================
(Run Finished)
Spec Tests Passing Failing Pending Skipped
┌────────────────────────────────────────────────────────────────────────────────────────────────┐
│ √ examples\actions.spec.js 01:08 14 14 - - - │
└────────────────────────────────────────────────────────────────────────────────────────────────┘
√ All specs passed! 01:08 14 14 - - -
Done in 106.32s.
执行结果中已经打印出[mochawesome] Report JSON saved to D:\Cypress\mochawesome-report\mochawesome.json
和[mochawesome] Report HTML saved to D:\Cypress\mochawesome-report\mochawesome.html
执行命令cypress run --reporter=mochawesome
,结果如下
C:\Users\Administrator\node_modules\.bin>cypress run --reporter=mochawesome
====================================================================================================
(Run Starting)
┌────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Cypress: 6.1.0 │
│ Browser: Electron 87 (headless) │
│ Specs: 20 found (examples\actions.spec.js, examples\aliasing.spec.js, examples\assertions │
│ .spec.js, examples\connectors.spec.js, examples\cookies.spec.js, examples\cypress_ │
│ api.spec.js, examples\files.spec.js, examples\local_storage.spec.js, examples\loca │
│ tion.spec.j...) │
└────────────────────────────────────────────────────────────────────────────────────────────────┘
────────────────────────────────────────────────────────────────────────────────────────────────────
Running: examples\actions.spec.js (1 of 20)
Actions
√ .type() - type into a DOM element (6374ms)
√ .focus() - focus on a DOM element (920ms)
√ .blur() - blur off a DOM element (706ms)
√ .clear() - clears an input or textarea element (901ms)
√ .submit() - submit a form (883ms)
√ .click() - click on a DOM element (2353ms)
√ .dblclick() - double click on a DOM element (628ms)
√ .rightclick() - right click on a DOM element (747ms)
√ .check() - check a checkbox or radio element (1422ms)
√ .uncheck() - uncheck a checkbox element (1473ms)
√ .select() - select an option in a <select> element (1144ms)
√ .scrollIntoView() - scroll an element into view (565ms)
√ .trigger() - trigger an event on a DOM element (513ms)
√ cy.scrollTo() - scroll the window or element to a position (2511ms)
14 passing (24s)
[mochawesome] Report JSON saved to C:\Users\Administrator\node_modules\.bin\mochawesome-report\mochawesome.json
[mochawesome] Report HTML saved to C:\Users\Administrator\node_modules\.bin\mochawesome-report\mochawesome.html
(Results)
┌────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Tests: 14 │
│ Passing: 14 │
│ Failing: 0 │
│ Pending: 0 │
│ Skipped: 0 │
│ Screenshots: 0 │
│ Video: true │
│ Duration: 24 seconds │
│ Spec Ran: examples\actions.spec.js │
└────────────────────────────────────────────────────────────────────────────────────────────────┘
(Video)
- Started processing: Compressing to 32 CRF
- Finished processing: C:\Users\Administrator\node_modules\.bin\cypress\videos\exa (5 seconds)
mples\actions.spec.js.mp4
────────────────────────────────────────────────────────────────────────────────────────────────────
Running: examples\aliasing.spec.js (2 of 20)
Aliasing
√ .as() - alias a DOM element for later use (1511ms)
√ .as() - alias a route for later use (1827ms)
2 passing (5s)
[mochawesome] Report JSON saved to C:\Users\Administrator\node_modules\.bin\mochawesome-report\mochawesome.json
[mochawesome] Report HTML saved to C:\Users\Administrator\node_modules\.bin\mochawesome-report\mochawesome.html
(Results)
┌────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Tests: 2 │
│ Passing: 2 │
│ Failing: 0 │
│ Pending: 0 │
│ Skipped: 0 │
│ Screenshots: 0 │
│ Video: