Test using Cucumber


Introduction

Cucumber is one of the tools for running automated tests. It combines business specification and test documentation into one – which results into executable specification. Due to this collaboration, it encourages teams to keep their organization’s business goals in the center.

Automated testing through Cucumber helps teams avoid heavy regressions and resultant cost. 

Here is how you can specify the Test Cases and Test Steps which will be created in QMetry as a part of the result files -

Test Case TagTest Step Tag
elements > name > Name Propertyelements > steps > name


Supported Cucumber Version: 1.2.5

Supported file types : JSON

Sample Test Result File

Click here to download a sample file.



→ “Skip” status in the automation result file will be applied as "Not Applicable" instead of "Not Run" for automation test executions upload into QMetry.

Reuse existing Test cases and Requirements

While importing the test result file, if you want to reuse the Test Cases and Requirements, here are the annotations that need to be provided in the feature file. 


KeywordDescription
@testEntityKey
  • If the executed test steps match with the steps of latest version of existing test case, then the existing test case (i.e. testEntityKey) will be updated.
  • If the executed test steps do not match with the steps of latest version of existing test case, then a new version of the test case (i.e. testEntityKey) will be created.
  • In the absence of the defined test case key (i.e. testEntityKey), a new test case will be created.
  • Multiple test case keys (i.e. testEntityKeys) can be defined for a single scenario, which will update/create multiple test cases for that single scenario and link these test cases with an automated test suite.
@requirementKeyCreated/Linked Test Case will be linked to Requirement Key

Note: In scenarios where a manual test case is reused, the test case result will be updated. The test case version will increase by 1 due to changes in test steps. This particular test case version will be automated test case. The earlier version of the test case will remain manual.

Feature: Banking
As a user
I want to make an ATM Transaction

@requirementKey=AP-RQ-1
@testEntityKey=AP-TC-28
@testEntityKey=AP-TC-32
@testEntityKey=AP-TC-37
Scenario: Withdraw less money
Given I have $1200 on my account
When I withdraw $600
Then I get $600 from the ATM

@requirementKey=AP-RQ-1
@testEntityKey=AP-TC-27
Scenario: Withdraw more money
Given I have $150 on my account
When I withdraw $300
Then I get $0 from the ATM

@requirementKey=AP-RQ-1
@testEntityKey=AP-TC-26
Scenario Outline: Withdraw money from the account
Given I have $<balance> on my account
When I withdraw $<withdraw>
Then I get $<received> from the ATM

Import Execution Attachments

Customer is importing a TestNg result file into QMetry by scheduling automation for test suite using Maven framework. During this test case creation and import of results, they also want to attach screenshot/attachments for the failed results during the automation. The attachments will be shown at test case level on the execution screen.

To add attachments in test run execution, you need to capture the log file and screenshots during execution of automation testing. The attachment file should be base64 encoded with mime_type in the embedding tag of report file.


Configure Cucumber Project


Result File Output with Attachment


List of file types (mime types) supported in Cucumber framework.

Types of AttachmentSupported File Types
Imageimage/png, image/bmp, image/gif, image/jpeg, image/x-icon
Text Document

text/plain, text/richtext, text/scriptlet, text/html, application/xhtml+xml, text/css, 

application/x-javascript, application/x-sh, application/pdf, application/rtf, application/xml

Excel, Word, PPT

application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint

Audio Fileaudio/mpeg
Compressed Fileapplication/zip, application/x-rar-compressed, application/x-7z-compressed, application/x-tar

Sample Project: https://github.com/qmetry/cucumber-maven-example