faker

package module
v0.0.0-...-7803542 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 9, 2022 License: MIT Imports: 7 Imported by: 0

README

xk6-faker

🔈 NOTICE: This is a temp fork to work-around this PR. I will remove this fork once this 👈 PR is merged.

A k6 extension for random fake data generation.

Altought there is several good JavaScript fake data generator, but using these as remote module in k6 tests has several disadvantages (download size, memory usage, startup time, etc). The xk6-faker implemented as a golang extension, so tests starts faster and use less memory. The price is a little bit smaller feature set compared with popular JavaScript fake data generators.

The underlying implementation is https://github.com/brianvoe/gofakeit.

Built for k6 using xk6.

Usage

The main generator class is Faker.

import { Faker } from "k6/x/faker"

let f = new Faker();
console.log(f.name());

Pass a random seed number to Faker constructor if you want to get deterministic random values.

import { Faker } from "k6/x/faker"

let f = new Faker(1234);
console.log(f.name());

For easier usage, the module's default export is a Faker instance too, so you can use generator functions without instantiating the Faker class:

import faker from "k6/x/faker"

console.log(faker.name())

You can pass random seed value in XK6_FAKER_SEED env if you want deterministic generated random values.

API

General purpose generator functions:

  • lexify(str) will replace ? with random generated letters
  • numerify(str) will replace # with random numerical values
  • generate(str) will replace values within {} with generator function return values

For complete generated API documentation click here!

Build

To build a k6 binary with this extension, first ensure you have the prerequisites:

Then:

  1. Install xk6:
$ go install go.k6.io/xk6/cmd/xk6@latest
  1. Build the binary:
$ xk6 build --with github.com/LawrenceZ/xk6-faker@latest

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Faker

type Faker struct {
	*gofakeit.Faker
	// contains filtered or unexported fields
}

func (*Faker) Bs

func (f *Faker) Bs() string

func (*Faker) HttpMethod

func (f *Faker) HttpMethod() string

func (*Faker) HttpStatusCode

func (f *Faker) HttpStatusCode() int

func (*Faker) HttpStatusCodeSimple

func (f *Faker) HttpStatusCodeSimple() int

func (*Faker) ImageJpeg

func (f *Faker) ImageJpeg(width int, height int) goja.ArrayBuffer

func (*Faker) ImagePng

func (f *Faker) ImagePng(width int, height int) goja.ArrayBuffer

func (*Faker) Ipv4Address

func (f *Faker) Ipv4Address() string

func (*Faker) Ipv6Address

func (f *Faker) Ipv6Address() string

func (*Faker) RgbColor

func (f *Faker) RgbColor() []int

func (*Faker) Uuid

func (f *Faker) Uuid() string

type ModuleInstance

type ModuleInstance struct {
	// contains filtered or unexported fields
}

func (*ModuleInstance) Exports

func (mi *ModuleInstance) Exports() modules.Exports

Exports implements the modules.Instance interface and returns the exports of the JS module.

type RootModule

type RootModule struct{}

func New

func New() *RootModule

New returns a pointer to a new RootModule instance.

func (*RootModule) NewModuleInstance

func (*RootModule) NewModuleInstance(vu modules.VU) modules.Instance

NewModuleInstance implements the modules.Module interface and returns a new instance for each VU.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL