Integrate steps parameters with FireCracker (and/or API)
BDD automation has a feature call "Scenario Outline", where you can define a table data for the test. This feature is based in step parameters.
PractiTest hosts also a step parameters feature, although the table data is defined at run time, unlike BDD automation, which is defined at test definition time
This can be solved with a custom field hosting the table data, where automation framework can retrieve it using the API, but the problem is when we try to create a run.
I have tried FireCracker with a Scenario Outline test and the report is not accurate because it does not match the parameter in the report with the parameter in the test.
So, the new feature for PractiTest would be integrate steps parameters with FireCracker in order to go back to step definition and get its steps parameters and parse the step name in the report to act accordingly.
Example:
Test Library. Test. Steps
Given an "anonymous" api consume
When he asks for "{{page}}" page of "users"
Then he gets a "SYNCHRONOUS_OK" response
And the number of items per page matches response meta info
And users response fields are populated
Automation framework xml report file
<testsuite name="As an anonymous api consumer I can get any page of users.As an anonymous api consumer I can get any page of users" tests="2" errors="0" failures="0" skipped="0" time="0.000933" timestamp="2021-01-27T13:05:22.684581" hostname="MacBook-Pro-13-Ton.local"><testcase classname="As an anonymous api consumer I can get any page of users.As an anonymous api consumer I can get any page of users" name="As an anonymous api consumer I can get any page of users. InstanceId=34428562 -- @1.1 " status="passed" time="0.000477"><system-out>
<![CDATA[
@scenario.begin
Scenario Outline: As an anonymous api consumer I can get any page of users. InstanceId=34428562 -- @1.1
Given an "anonymous" api consumer ... passed in 0.000s
When he asks for "intermediate" page of "users" ... passed in 0.000s
Then he gets a "SYNCHRONOUS_OK" response ... passed in 0.000s
And the number of items per page matches response meta info ... passed in 0.000s
And users response fields are populated ... passed in 0.000s
@scenario.end
]]>
</system-out></testcase><testcase classname="As an anonymous api consumer I can get any page of users.As an anonymous api consumer I can get any page of users" name="As an anonymous api consumer I can get any page of users. InstanceId=34428562 -- @1.2 " status="passed" time="0.000457"><system-out>
<![CDATA[
@scenario.begin
Scenario Outline: As an anonymous api consumer I can get any page of users. InstanceId=34428562 -- @1.2
Given an "anonymous" api consumer ... passed in 0.000s
When he asks for "last" page of "users" ... passed in 0.000s
Then he gets a "SYNCHRONOUS_OK" response ... passed in 0.000s
And the number of items per page matches response meta info ... passed in 0.000s
And users response fields are populated ... passed in 0.000s
@scenario.end
]]>
FireCracker should
1.- Check
When he asks for "last" page of "users" ... passed in 0.000s
And
When he asks for "{{page}}" page of "users"
Get that "page" step parameter got "last" value
Check
When he asks for "intermediate" page of "users" ... passed in 0.000s
And
When he asks for "{{page}}" page of "users"Get that "page" step parameter got "intermediate" value