அல்லூர் அறிக்கையாளர்
A WebdriverIO reporter plugin to create Allure Test Reports.
நிறுவல்
@wdio/allure-reporter
ஐ உங்கள் package.json
இல் devDependency ஆக சேர்ப்பதே எளிதான வழி.
{
"devDependencies": {
"@wdio/allure-reporter": "^7.0.0"
}
}
நீங்கள் இதனை எளிதாக செய்யலாம்:
npm install @wdio/allure-reporter --save-dev
கட்டமைப்பு
உங்கள் wdio.conf.js கோப்பில் வெளியீட்டு அடைவை கட்டமைக்கவும்:
export const config = {
// ...
reporters: [['allure', {
outputDir: 'allure-results',
disableWebdriverStepsReporting: true,
disableWebdriverScreenshotsReporting: true,
}]],
// ...
}
outputDir
இயல்பாக./allure-results
என அமைக்கப்பட்டுள்ளது. சோதனை ஓட்டம் முடிந்த பிறகு, இந்த அடைவில் ஒவ்வொரு ஸ்பெக்கிற்கும்.xml
கோப்பு மற்றும் பல.txt
மற்றும்.png
கோப்புகள் மற்றும் இணைப்புகள் உருவாக்கப்பட்டிருப்பதைக் காணலாம்.disableWebdriverStepsReporting
- விருப்ப அளவுருவாகும் (இயல்பாகfalse
), அறிக்கையாளருக்கு தனிப்பயன் படிகளை மட்டும் பதிவுசெய்ய.issueLinkTemplate
- விருப்ப அளவுரு, சிக்கல் இணைப்பு முறையை குறிப்பிட. அறிக்கையாளர்addIssue(value)
அழைப்பு அளவுருவில் குறிப்பிடப்பட்ட மதிப்புடன்{}
இடத்தை மாற்றுவார். Cucumber பயன்படுத்தப்பட்டு,issue
குறிச்சொல் எந்த நிலையிலும் அமைக்கப்பட்டிருந்தால் அதே தர்க்கம் பயன்படுத்தப்படும், அது அறிக்கையில் இணைப்பாக மாற்றப்படும். அளவுரு மதிப்பு உதாரணம்:https://example.org/issue/{}
tmsLinkTemplate
- விருப்ப அளவுரு, TMS (சோதனை மேலாண்மை அமைப்பு) இணைப்பு முறையை குறிப்பிட. அறிக்கையாளர்addTestId(value)
அழைப்பு அளவுருவில் குறிப்பிடப்பட்ட மதிப்புடன்{}
இடத்தை மாற்றுவார். Cucumber பயன்படுத்தப்பட்டு,testId
குறிச்சொல் எந்த நிலையிலும் அமைக்கப்பட்டிருந்தால் அதே தர்க்கம் பயன்படுத்தப்படும், அது அறிக்கையில் இணைப்பாக மாற்றப்படும். அளவுரு மதிப்பு உதாரணம்:https://example.org/tms/{}
disableWebdriverScreenshotsReporting
- விருப்ப அளவுரு (இயல்பாகfalse
), திரைப்பிடிப்புகளை அறிக்கையாளருக்கு இணைக்காமல் இருக்க.useCucumberStepReporter
- விருப்ப அளவுரு (இயல்பாகfalse
), cucumber பயன்படுத்தும்போது அறிக்கை படிநிலை அமைப்பை மாற்ற true என அமைக்கவும். உங்களுக்காக முயற்சித்து பாருங்கள்.disableMochaHooks
- விருப்ப அளவுரு (இயல்பாகfalse
),before/after
ஸ்டாக்ட்ரேஸ்/திரைப்பிடிப்பு/முடிவு கொக்குகளை அல்லூர் அறிக்கையாளரில் பெறாமல் இருக்க true என அமைக்கவும்.addConsoleLogs
- விருப்ப அளவுரு (இயல்பாகfalse
), கன்சோல் பதிவுகளை படியிலிருந்து அறிக்கையாளருக்கு இணைக்க true என அமைக்கவும்.reportedEnvironmentVars
(வகை:Record<string, string>
) - அறிக்கையில் சூழல் மாறிகளைக் காட்ட இந்த விருப்பத்தை அமைக்கவும். இதை அமைப்பது உண்மையான சூழல் மாறிகளை மாற்றாது என்பதை கவனிக்கவும்.
ஆதரிக்கப்படும் அல்லூர் API
addLabel(name, value)
- சோதனைக்கு தனிப்பயன் லேபிளை ஒதுக்குaddFeature(featureName)
– சோதனைக்கு அம்சங்களை ஒதுக்குaddStory(storyName)
– சோதனைக்கு பயனர் கதையை ஒதுக்குaddSeverity(value)
– சோதனைக்கு தீவிரத்தை ஒதுக்கு, இந்த மதிப்புகளில் ஒன்றை ஏற்றுக்கொள்கிறது: blocker, critical, normal, minor, trivialaddTag(value)
– சோதனைக்கு டேக் லேபிளை ஒதுக்குaddEpic(value)
– சோதனைக்கு எபிக் லேபிளை ஒதுக்குaddOwner(value)
– சோதனைக்கு உரிமையாளர் லேபிளை ஒதுக்குaddSuite(value)
– சோதனைக்கு ஒரு சூட் லேபிளை ஒதுக்குaddSubSuite(value)
– சோதனைக்கு துணை சூட் லேபிளை ஒதுக்குaddParentSuite(value)
– சோதனைக்கு பெற்றோர் சூட் லேபிளை ஒதுக்குaddIssue(value)
– சோதனைக்கு சிக்கல் ஐடியை ஒதுக்குaddAllureId(value)
– சோதனைக்கு அல்லூர் சோதனை ஆப்ஸ் ஐடி லேபிளை ஒதுக்குaddTestId(value)
– சோதனைக்கு TMS சோதனை ஐடியை ஒதுக்கு- ~~
addEnvironment(name, value)
~~ – இனி வேலை செய்யாத ஒரு காலாவதியான செயல்பாடு. அதற்கு பதிலாகreportedEnvironmentVars
பயன்படுத்தவும் addAttachment(name, content, [type])
– சோதனைக்கு இணைப்பை சேமி.name
(String) - இணைப்பு பெயர்.content
– இணைப்பு உள்ளடக்கம்.type
(String, விருப்பமானது) – இணைப்பு MIME-வகை, இயல்பாகtext/plain
addArgument(name, value)
- சோதனைக்கு கூடுதல் வாதத்தை சேர்addDescription(description, [type])
– சோதனைக்கு விளக்கத்தை சேர்.description
(String) - சோதனையின் விளக்கம்.type
(String, விருப்பமானது) – விளக்க வகை, இயல்பாகtext
. மதிப்புகள் ['text', 'html','markdown']
addStep(title, [{content, name = 'attachment'}], [status])
- சோதனைக்கு படியை சேர்.title
(String) - படியின் பெயர்.content
(String, விருப்பமானது) - படி இணைப்புname
(String, விருப்பமானது) - படி இணைப்பு பெயர், இயல்பாகattachment
.status
(String, விருப்பமானது) - படி நிலை, இயல்பாகpassed
. "failed", "passed" அல்லது "broken" என இருக்க வேண்டும்
startStep(title)
- ஒரு படியுடன் தொடங்குtitle
(String) - படியின் பெயர்.
endStep(status)
- ஒரு படியுடன் முடிவுstatus
(String, விருப்பமானது) - படி நிலை, இயல்பாகpassed
. "failed", "passed" அல்லது "broken" என இருக்க வேண்டும்
step(name, body)
- உள்ளே உள்ளடக்க செயல்பாட்டுடன் படி தொடங்குகிறது. முடிவற்ற படிநிலையுடன் படிகளை உருவாக்க அனுமதிக்கிறதுbody
(Function) - படி உடல் async செயல்பாடு
பயன்பாடு
Allure Api ஐ பின்வருமாறு அணுகலாம்:
CJS
const allureReporter = require('@wdio/allure-reporter').default
ESM
import allureReporter from '@wdio/allure-reporter'
Mocha உதாரணம்
describe('Suite', () => {
it('Case', () => {
allureReporter.addFeature('Feature')
})
})
Cucumber
அடிப்படை Cucumber உதாரணம்:
Given('I include feature and story name', () => {
allureReporter.addFeature('Feature_name');
allureReporter.addStory('Story_name');
})
தனிப்பயன் படிகள்
step
முறை படிகளை கையாள்வதை எளிதாக்குகிறது ஏனெனில் ஒவ்வொரு படியும் உள்ளே எந்த உள்ளடக்கத்துடனும் ஒரு async செயல்பாடாக வழங்கப்படுகிறது.
செயல்பாட்டின் முதல் அளவுரு தற்போதைய படி, அதில் அல்லூர் API முறைகளில் பெரும்பாலானவை உள்ளன (அதாவது label
, epic
, attach
போன்றவை):
allureReporter.step('my step name', async (s1) => {
s1.label('foo', 'bar')
await s1.step('my child step name', async (s2) => {
// you can add any combination of steps in the body function
})
})
Cucumber குறிச்சொற்கள்
சிறப்பு பெயர்களுடன் (issue
மற்றும் testId
) Cucumber குறிச்சொற்கள் இணைப்புகளாக மாற்றப்படுகின்றன (அதற்கான இணைப்பு வார்ப்புருக்கள் முன்னரே கட்டமைக்கப்பட வேண்டும்):
@issue=BUG-1
@testId=TST-2
Feature: This is a feature with global tags that will be converted to Allure links
@issue=BUG-3
@testId=TST-4
Scenario: This is a scenario with tags that will be converted to Allure links
Given I do something
சிறப்பு பெயர்களுடன் (feature
) Cucumber குறிச்சொற்கள் அல்லூர் லேபிள்களுக்கு வரைபடமாக்கப்படுகின்றன:
Feature: Test user role
@feature=login
Scenario: Login
Given I test login
அறிக்கையை காட்டுதல்
முடிவுகள் அல்லூர் வழங்கும் அறிக்கை கருவிகள் ஏதேனும் ஒன்றால் பயன்படுத்தப்படலாம். உதாரணமாக:
கட்டளை-வரி
Allure கட்டளை-வரி கருவியை நிறுவி, முடிவுகள் அடைவை செயலாக்கவும்:
allure generate [allure_output_dir] && allure open
இது ஒரு அறிக்கையை உருவாக்கும் (இயல்பாக ./allure-report
இல்), மற்றும் அதை உங்கள் உலாவியில் திறக்கும்.
தானியங்கி அறிக்கை உருவாக்கம்
Allure கட்டளை வரி கருவியை நிரலாக்க முறையில் பயன்படுத்தி அறிக்கையை தானாகவே உருவாக்கலாம். அதற்கு உங்கள் திட்டத்தில் தொகுப்பை நிறுவவும்:
npm i allure-commandline
பின்னர் உங்கள் onComplete
கொக்கை சேர்க்கவும் அல்லது விரிவுபடுத்தவும் அல்லது இதற்காக தனிப்பயன் சேவை உருவாக்கவும்:
// wdio.conf.js
const allure = require('allure-commandline')
export const config = {
// ...
onComplete: function() {
const reportError = new Error('Could not generate Allure report')
const generation = allure(['generate', 'allure-results', '--clean'])
return new Promise((resolve, reject) => {
const generationTimeout = setTimeout(
() => reject(reportError),
5000)
generation.on('exit', function(exitCode) {
clearTimeout(generationTimeout)
if (exitCode !== 0) {
return reject(reportError)
}
console.log('Allure report successfully generated')
resolve()
})
})
}
// ...
}
Jenkins
Allure Jenkins plugin ஐ நிறுவி கட்டமைக்கவும்
திரைப்பிடிப்புகளை சேர்த்தல்
திரைப்பிடிப்புகளை Mocha மற்றும் Jasmine க்கான afterTest
கொக்கில் அல்லது Cucumber க்கான afterStep
கொக்கில் WebDriverIO இன் takeScreenshot
செயல்பாட்டைப் பயன்படுத்தி அறிக்கையில் இணைக்கலாம்.
முதலில் அறிக்கையாளர் விருப்பங்களில் disableWebdriverScreenshotsReporting: false
என அமைக்கவும், பின் afterStep கொக்கில் சேர்க்கவும்:
Mocha / Jasmine
afterTest: async function(test, context, { error, result, duration, passed, retries }) {
if (error) {
await browser.takeScreenshot();
}
}
Cucumber
afterStep: async function (step, scenario, { error, duration, passed }, context) {
if (error) {
await browser.takeScreenshot();
}
}
மேலே காட்டியுள்ளபடி, இந்த செயல்பாடு அழைக்கப்படும்போது, ஒரு திரைப்பிடிப்பு படம் அல்லூர் அறிக்கையில் இணைக்கப்படும்.