UNPKG

@restqa/plugin-faker

Version:

RestQA Plugin enabling the generation of fake data to be used in test scenario

191 lines (120 loc) 4.91 kB
# Faker-plugin > Generate fake data for Test Scenarios ### Introduction Are you not fed up of using John Doe in your test automation? 😆 Or What will be the behavior of your product on the production while using real data? It's a good question right? The best way to answer is to start thinking of having test scenario that are using different data each time. This should help you on doing more exploration testing... It's exactly how this plugin want to help you. Once installed this plugin will extend the RestQA capability in order to generate fake data on your scenario. This plugins is based on the [faker.js](https://github.com/Marak/faker.js) library ## Usage The plugin is providing 2 capabilities: ### 1. Step definition A few built-in step definition can be enabled while using the plugin Example: ```gherkin Given I generate a fake data for "name.firstName" and store it into the dataset as "firstName" ``` While we `name.firstName` is refering to the property `name.firstName` of the [faker.js](https://github.com/Marak/faker.js) library. ([full list properties available](https://github.com/Marak/faker.js#api-methods)) The step above will create a new data into the dataset named "firstName" in order to use it in another step like : ```gherkin Then the response body at "user.firstname" should not be equal to {{ firstName }} ``` During the execution of all the steps containing `{{ firtName }}` will be updated to include the generated value from the initial step. [Check the full list of step definition available](./docs/steps-catalog.md) ### 2. On the fly generation If you need to deal with a lot of fake data, it can be inconvenient to multiple create step definition as share above. This is why you could also generate your fake data on the fly, by using the dynamic data synthax. Example: ```gherkin Then the response body at "user.firstname" should not be equal to {{ faker.name.firstName }} ``` While `faker.name.firstName` is refering the to property `name.firstName` from the [Faker.js](https://github.com/Marak/faker.js) library. ([full list properties available](https://github.com/Marak/faker.js#api-methods)) ### Quick demo [Example](./example) ## Getting Started This plugin can be used to extend the [RestQA](https://github.com/restqa/restqa) capability or on a raw [CucumberJs](https://github.com/cucumber/cucumber-js) install ### Using the plugin with RestQA #### Requirements * Node.js >= 12 * RestQA installed #### Installation Using npm: ``` npm install @restqa/faker-plugin ``` Then in your `.restqa.yml` configuration file you will need to add the follow snippet under the `environments.*.plugins` section: ``` - name: @restqa/faker-plugin config: locale: 'fr' # default en prefix: 'faker' # the prefix used for the place holders ``` Exmaple: ``` version: 0.0.1 metadata: code: APP name: app description: Configuration generated by restqa init environments: - name: local default: true plugins: - name: restqapi config: url: https://api.restqa.io - name: @restqa/faker-plugin config: locale: 'fr' # default en prefix: 'faker' # the prefix used for the place holders outputs: - type: html enabled: true ``` ### Using the plugin with CucumberJs #### Requirements * Node.js >= 12 * Cucumber >= 7.3.0 #### Installation Using npm: ``` npm install @restqa/faker-plugin @cucumber/cucumber ``` Using yarn: ``` yarn add @restqa/faker-plugin @cucumber/cucumber ``` Then Take a look at the [example folder](./example) to see the implementation Run your Spec ``` ./node_modules/.bin/cucumber-js ``` ## Options | *Variable* | *Description* | *Default* | |:-------------------------|:--------------------------------------------------------------------------------------------------------------------|:-------------------| | `locale` | The local to use in order to generate fake data [available values](https://github.com/Marak/Faker.js#Localization) | `en` | | `prefix` | The prefix to identify the placeholder that required to be faked (example: `{{ faker.music.genre }}` | `faker` | ## Getting To Know RestQA 🦏 [RestQA](https://restqa.io) is an Open Source Test Automation Framework. > "With Great Power Comes Great Responsibility" Gherkin is a powerful language if we understand it. RestQA helps anyone to master this power! ## Developement Setting Run the example ``` $ npm run example ``` Generating the documentation: ``` $ npm run doc ``` Run Unit test: ``` $ npm test ``` Style check: ``` $ npm run lint ``` ## Contributing Contributions are very welcome! If you'd like to contribute