Free tool
Test case CSV for Azure Test Plans
Write scenarios once, import them as test cases. Paste Gherkin or plain steps and get the CSV Azure Test Plans reads, with the columns it requires and the things that would stop the import.
Paste scenarios above, or load the example, to get the CSV.
Everything stays in your browser: nothing is uploaded.
What it writes, and why
Azure Test Plans imports a CSV with one row per test step, repeating the ID, Title and the other fields on every row and numbering the steps from 1. The required columns are ID, Work Item Type, Title, Test Step, Step Action, Step Expected, Area Path, Assigned To and State. The ID stays empty to create test cases, and holds an existing id to update one. This page writes exactly that, quoting any value that contains a comma, a quote or a line break, as the import documentation asks.
Steps from scenarios. Given, When and And build a step's action; the first Then closes that step and becomes its expected result, and the next Given or When starts the following step. That pairing is this site's convention, not Microsoft's: the import format has one action and one expected result per step, and Gherkin doesn't say which Given belongs to which Then. The preview shows what it produced, so you can correct it before importing. Plain lines work too: action -> expected, under a title line ending in a colon.
Parameters. A Scenario Outline's <placeholders> become @parameters in the steps, which is how Azure Test Plans writes data-driven test cases. Parameter values aren't part of the documented import columns, so the Examples table comes out separately for you to paste into the test case's parameter grid.
How it was checked, and what it can't tell you
Microsoft's import page publishes an example CSV. A unit test feeds this generator the same test cases and compares its output with that example line for line, so the columns, the repeated fields and the step numbering stay right. Other tests cover the quoting rules and the scenario parsing.
The limit: nothing here talks to Azure DevOps, and we have no organisation to import into. “Importable” here means “matches the documented format”, not “we watched it import”. Area Path has to match a path that exists in your project and Assigned To a real user, and reimporting with an existing ID replaces that test case's steps with the ones in your file.
Where the scenarios come from
The acceptance criteria grader turns a user story into Gherkin you can paste here, and the pairwise generator exports a Scenario Outline with an Examples table, which becomes one parameterised test case instead of dozens of near-identical ones. For writing the steps themselves, see how to write effective test cases. For what the import does to a case that already exists, and for the other half of Azure DevOps testing, see Azure DevOps for testers.