A library for generating fake data such as names, addresses, and phone numbers.

Overview

faker

Faker is a library for generating fake data such as names, addresses, and phone numbers.

It is a (mostly) API-compatible port of Ruby Faker gem (https://github.com/stympy/faker) to Go.

GoDoc Build Status Coverage Status

To install

go get -u syreclabs.com/go/faker

Usage

Address


faker.Address().City()                        // => "North Dessie"
faker.Address().StreetName()                  // => "Buckridge Lakes"
faker.Address().StreetAddress()               // => "586 Sylvester Turnpike"
faker.Address().SecondaryAddress()            // => "Apt. 411"
faker.Address().BuildingNumber()              // => "754"
faker.Address().Postcode()                    // => "31340"
faker.Address().PostcodeByState("IN")         // => "46511"
faker.Address().ZipCode()                     // ZipCode is an alias for Postcode.
faker.Address().ZipCodeByState("IN")          // ZipCodeByState is an alias for PostcodeByState.
faker.Address().TimeZone()                    // => "Asia/Taipei"
faker.Address().CityPrefix()                  // => "East"
faker.Address().CitySuffix()                  // => "town"
faker.Address().StreetSuffix()                // => "Square"
faker.Address().State()                       // => "Maryland"
faker.Address().StateAbbr()                   // => "IL"
faker.Address().Country()                     // => "Uruguay"
faker.Address().CountryCode()                 // => "JP"
faker.Address().Latitude()                    // => (float32) -38.811367
faker.Address().Longitude()                   // => (float32) 89.2171
faker.Address().String()                      // => "6071 Heaney Island Suite 553, Ebbaville Texas 37307"

App


faker.App().Name()    // => "Alphazap"
faker.App().Version() // => "2.6.0"
faker.App().Author()  // => "Dorian Shields"
faker.App().String()  // => "Tempsoft 4.51"

Avatar


faker.Avatar().Url("jpg", 100, 200) // => "http://robohash.org/NX34rZw7s0VFzgWY.jpg?size=100x200"
faker.Avatar().String()             // => "http://robohash.org/XRWjFigoImqdeDuA.png?size=300x300"

Bitcoin


faker.Bitcoin().Address() // => "1GpEKM5UvD4XDLMirpNLoDnRVrGutogMj2"
faker.Bitcoin().String()  // String is an alias for Address.

Business


faker.Business().CreditCardNumber()     // => "1234-2121-1221-1211"
faker.Business().CreditCardExpiryDate() // => "2015-11-11"
faker.Business().CreditCardType()       // => "mastercard"

Code


faker.Code().Isbn10() // => "048931033-8"
faker.Code().Isbn13() // => "391668236072-1"
faker.Code().Ean13()  // => "7742864258656"
faker.Code().Ean8()   // => "03079010"
faker.Code().Rut()    // => "14371602-3"
faker.Code().Abn()    // => "57914951376"

Commerce


faker.Commerce().Color()       // => "lime"
faker.Commerce().Department()  // => "Electronics, Health & Baby"
faker.Commerce().ProductName() // => "Ergonomic Granite Shoes"
faker.Commerce().Price()       // => (float32) 97.79

Company


faker.Company().Name()        // => "Aufderhar LLC"
faker.Company().Suffix()      // => "Inc"
faker.Company().CatchPhrase() // => "Universal logistical artificial intelligence"
faker.Company().Bs()          // => "engage distributed applications"
faker.Company().Ein()         // => "58-6520513"
faker.Company().DunsNumber()  // => "16-708-2968"
faker.Company().Logo()        // => "http://www.biz-logo.com/examples/015.gif"
faker.Company().String()      // String is an alias for Name.

Date


// Between returns random time in [from, to] interval, with second resolution.
faker.Date().Between(from, to time.Time) time.Time

// Forward returns random time in [time.Now(), time.Now() + duration] interval, with second resolution.
faker.Date().Forward(duration time.Duration) time.Time

// Backward returns random time in [time.Now() - duration, time.Now()] interval, with second resolution.
faker.Date().Backward(duration time.Duration) time.Time

// Birthday returns random time so that age of the person born at that moment would be between minAge and maxAge years.
faker.Date().Birthday(minAge, maxAge int) time.Time

Finance


// CreditCard returns a valid (with valid check digit) card number of one of the given types.
// If no types are passed, all types in CC_TYPES are used.
faker.Finance().CreditCard(faker.CC_VISA) // => "4190418835414"

Hacker


faker.Hacker().SaySomethingSmart() // => "If we connect the bus, we can get to the XML microchip through the digital TCP sensor!"
faker.Hacker().Abbreviation()      // => "HTTP"
faker.Hacker().Adjective()         // => "cross-platform"
faker.Hacker().Noun()              // => "interface"
faker.Hacker().Verb()              // => "bypass"
faker.Hacker().IngVerb()           // => "parsing"
faker.Hacker().Phrases() []string  // => []string{
                                   //        "If we bypass the program, we can get to the AGP protocol through the optical SDD alarm!",
                                   //        "We need to calculate the back-end XML microchip!",
                                   //        "Try to generate the GB bus, maybe it will hack the neural panel!",
                                   //        "You can't navigate the transmitter without synthesizing the optical SMS bus!",
                                   //        "Use the optical THX application, then you can override the mobile port!",
                                   //        "The CSS monitor is down, quantify the multi-byte bus so we can calculate the XSS bandwidth!",
                                   //        "Connecting the card won't do anything, we need to back up the multi-byte RSS card!",
                                   //        "I'll reboot the primary SMTP feed, that should monitor the XML protocol!`",
                                   //    }

Internet


faker.Internet().Email()                // => "[email protected]"
faker.Internet().FreeEmail()            // => "[email protected]"
faker.Internet().SafeEmail()            // => "[email protected]"
faker.Internet().UserName()             // => "micah_pfeffer"
faker.Internet().Password(8, 14)        // => "s5CzvVp6Ye"
faker.Internet().DomainName()           // => "rolfson.info"
faker.Internet().DomainWord()           // => "heller"
faker.Internet().DomainSuffix()         // => "net"
faker.Internet().MacAddress()           // => "15:a9:83:29:76:26"
faker.Internet().IpV4Address()          // => "121.204.82.227"
faker.Internet().IpV6Address()          // => "c697:392f:6a0e:bf6d:77e1:714a:10ab:0dbc"
faker.Internet().Url()                  // => "http://sporerhamill.net/kyla.schmitt"
faker.Internet().Slug()                 // => "officiis-commodi"

Lorem


faker.Lorem().Character()    // => "c"
faker.Lorem().Characters(17) // => "wqFyJIrXYfVP7cL9M"
faker.Lorem().Word()         // => "veritatis"
faker.Lorem().Words(3)       // => []string{"omnis", "libero", "neque"}
faker.Lorem().Sentence(3)    // => "Necessitatibus sit autem."

// Sentences returns a slice of "num" sentences, 3 to 11 words each.
faker.Lorem().Sentences(num int) []string

// Paragraph returns a random text of "sentences" sentences length.
faker.Lorem().Paragraph(sentences int)

// Paragraphs returns a slice of "num" paragraphs, 3 to 11 sentences each.
faker.Lorem().Paragraphs(num int) []string

// String returns a random sentence 3 to 11 words in length.
faker.Lorem().String()

Name


faker.Name().Name()      // => "Natasha Hartmann"
faker.Name().FirstName() // => "Carolina"
faker.Name().LastName()  // => "Kohler"
faker.Name().Prefix()    // => "Dr."
faker.Name().Suffix()    // => "Jr."
faker.Name().Title()     // => "Chief Functionality Orchestrator"
faker.Name().String()    // String is an alias for Name.

Number


faker.Number().Number(5)          // => "43202"
faker.Number().NumberInt(3)       // => 213
faker.Number().NumberInt32(5)     // => 92938
faker.Number().NumberInt64(19)    // => 1689541633257139096
faker.Number().Decimal(8, 2)      // => "879420.60"
faker.Number().Digit()            // => "7"
faker.Number().Hexadecimal(4)     // => "e7f3"
faker.Number().Between(-100, 100) // => "-47"
faker.Number().Positive(100)      // => "3"
faker.Number().Negative(-100)     // => "-16"

PhoneNumber


faker.PhoneNumber().PhoneNumber()       // => "1-599-267-6597 x537"
faker.PhoneNumber().CellPhone()         // => "+49-131-0003060"
faker.PhoneNumber().AreaCode()          // => "903"
faker.PhoneNumber().ExchangeCode()      // => "574"
faker.PhoneNumber().SubscriberNumber(4) // => "1512"
faker.PhoneNumber().String()            // String is an alias for PhoneNumber.

Team


faker.Team().Name()     // => "Colorado cats"
faker.Team().Creature() // => "cats"
faker.Team().State()    // => "Oregon"
faker.Team().String()   // String is an alias for Name.

Time


// Between returns random time in [from, to] interval, with second resolution.
faker.Time().Between(from, to time.Time) time.Time

// Forward returns random time in [time.Now(), time.Now() + duration] interval, with second resolution.
faker.Time().Forward(duration time.Duration) time.Time

// Backward returns random time in [time.Now() - duration, time.Now()] interval, with second resolution.
faker.Time().Backward(duration time.Duration) time.Time

// Birthday returns random time so that age of the person born at that moment would be between minAge and maxAge years.
faker.Time().Birthday(minAge, maxAge int) time.Time
Comments
  • Fake Number returns String

    Fake Number returns String

    Why does your fake number generator return a string? I would imaging that most cases were someone would want a fake number they want a number and not a string, and if they needed a string it is easy enough to convert it.

    opened by djarbz 5
  • syreclabs.com/go/faker ssl certificate expired

    syreclabs.com/go/faker ssl certificate expired

    Is it the syreclabs.com/go/faker repo?

    go get syreclabs.com/go/faker:

    package syreclabs.com/go/faker: unrecognized import path "syreclabs.com/go/faker" (https fetch: Get https://syreclabs.com/go/faker?go-get=1: x509: certificate has expired or is not yet valid)

    git clone : fatal: unable to access 'http://syreclabs.com/go/faker/': SSL certificate problem: certificate has expired

    opened by qiuker521 4
  • Get https://syreclabs.com/go/faker?go-get=1: x509: certificate signed by unknown authority

    Get https://syreclabs.com/go/faker?go-get=1: x509: certificate signed by unknown authority

    Hi,

    The certificate used for the vanity URL syreclabs.com/go/faker doesn't seem to be correctly setup.

    $ go mod download
    go: finding github.com/go-stack/stack v1.8.0
    go: finding github.com/Microsoft/go-winio v0.4.14
    go: finding github.com/go-kit/kit v0.9.0
    #... more fetches
    go: syreclabs.com/go/[email protected]: unrecognized import path "syreclabs.com/go/faker" (https fetch: Get https://syreclabs.com/go/faker?go-get=1: x509: certificate signed by unknown authority)
    # ... more fetches
    go: error loading module requirements
    ##[error]Process completed with exit code 1.
    

    That's close to the issue #10, but the error message is a different one. That breaks fetching of dependencies from any go project that doesn't use vendored dependencies (so any library project using this faker library).

    opened by dgellow 3
  • Deterministic Random

    Deterministic Random

    stympy/faker allows supports deterministic random by allowing you to seed:

    https://github.com/stympy/faker/blob/676788d63e7c2dc7033ca44b678a4ff30f0cf812/README.md#deterministic-random

    This can be useful for example for testing.

    opened by mpchadwick 2
  • Please tag a new release

    Please tag a new release

    Please make a new tag v2.0.0 – there is a problem with dependency management after GitHub repository was moved (or GitHub account renamed?), and then import path was changed again: fc813babee880a354a5b13f631c9192d0849303a, https://github.com/dmgk/faker/compare/v1.0.0...master

    Also please add canonical import path to make those problems visible and not subtle.

    I squatted https://github.com/enodata to prevent anyone from creating https://github.com/enodata/faker and see the world burn.

    opened by AlekSi 2
  • Memoize recurse regex

    Memoize recurse regex

    Hi - Thanks for this project!

    I'm using it in my project dbanon. I did some profiling today and found that the regexp.MustCompile calls inside faker.Fetch were the worst performance culprit in dbanon by far. While I couldn't find a use-case for the recursive regex, I was able to drastically improve performance by memoizing the *Regexp.

    Below are some benchmarks.

    • user table with 1 million rows
    • Faker consulted 4 times for each row
      • faker.Name().FirstName()
      • faker.Name().LastName()
      • faker.Internet().Email()
      • faker.Internet().Password(8, 14)

    Before

    $ go tool pprof ~/go/src/github.com/mpchadwick/dbanon/dbanon dbanon-before.prof 
    File: dbanon
    Type: cpu
    Time: Nov 13, 2020 at 9:25pm (EST)
    Duration: 1.29mins, Total samples = 1.57mins (121.72%)
    Entering interactive mode (type "help" for commands, "o" for options)
    (pprof) top10 -cum
    Showing nodes accounting for 0.72s, 0.76% of 94.48s total
    Dropped 359 nodes (cum <= 0.47s)
    Showing top 10 nodes out of 185
          flat  flat%   sum%        cum   cum%
             0     0%     0%     62.16s 65.79%  main.main
             0     0%     0%     62.16s 65.79%  runtime.main
             0     0%     0%     61.88s 65.50%  github.com/mpchadwick/dbanon/src.LineProcessor.ProcessLine
         0.16s  0.17%  0.17%     61.88s 65.50%  github.com/mpchadwick/dbanon/src.LineProcessor.processInsert
         0.11s  0.12%  0.29%     53.76s 56.90%  github.com/mpchadwick/dbanon/src.Provider.Get
         0.11s  0.12%   0.4%     49.36s 52.24%  syreclabs.com/go/faker.Fetch
         0.01s 0.011%  0.41%     43.31s 45.84%  regexp.MustCompile
             0     0%  0.41%     43.30s 45.83%  regexp.Compile (inline)
         0.32s  0.34%  0.75%     43.30s 45.83%  regexp.compile
         0.01s 0.011%  0.76%     42.01s 44.46%  syreclabs.com/go/faker.fakeInternet.Email
    (pprof) 
    

    After

    go tool pprof ~/go/src/github.com/mpchadwick/dbanon/dbanon dbanon-after.prof 
    File: dbanon
    Type: cpu
    Time: Nov 13, 2020 at 9:58pm (EST)
    Duration: 23.01s, Total samples = 20.93s (90.96%)
    Entering interactive mode (type "help" for commands, "o" for options)
    (pprof) top10 -cum
    Showing nodes accounting for 0.95s, 4.54% of 20.93s total
    Dropped 198 nodes (cum <= 0.10s)
    Showing top 10 nodes out of 173
          flat  flat%   sum%        cum   cum%
             0     0%     0%     16.07s 76.78%  main.main
             0     0%     0%     16.07s 76.78%  runtime.main
             0     0%     0%     15.77s 75.35%  github.com/mpchadwick/dbanon/src.LineProcessor.ProcessLine
         0.14s  0.67%  0.67%     15.77s 75.35%  github.com/mpchadwick/dbanon/src.LineProcessor.processInsert
         0.05s  0.24%  0.91%      8.26s 39.46%  github.com/mpchadwick/dbanon/src.Provider.Get
         0.01s 0.048%  0.96%      6.61s 31.58%  syreclabs.com/go/faker.fakeInternet.Email
         0.09s  0.43%  1.39%      4.82s 23.03%  syreclabs.com/go/faker.Fetch
         0.66s  3.15%  4.54%      4.62s 22.07%  github.com/blastrain/vitess-sqlparser/sqlparser.(*yyParserImpl).Parse
             0     0%  4.54%      4.62s 22.07%  github.com/blastrain/vitess-sqlparser/sqlparser.Parse
             0     0%  4.54%      4.62s 22.07%  github.com/blastrain/vitess-sqlparser/sqlparser.yyParse (inline)
    (pprof)
    

    As you can see I was able to cut execution time for dbanon from 95 seconds to 20 seconds with this change.

    opened by mpchadwick 1
  • credit_card_expiry_dates two runes month bug fix

    credit_card_expiry_dates two runes month bug fix

    as says in docs credit_card_expiry_dates is a '// => "2015-11-11"' template, but it's broken with ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ validation rule. this PR will fix that problem. additionally .gitignore has been added

    opened by wish-master 1
  • lolcat.go:5:2: code in directory /root/go/src/github.com/dmgk/faker expects import

    lolcat.go:5:2: code in directory /root/go/src/github.com/dmgk/faker expects import "syreclabs.com/go/faker"

    I already use go get -u syreclabs.com/go/faker to get faker repo , but when I use my code

    
    package main                                                                                                                                                                                                                                                 
      
    import (
            "fmt"
            "github.com/dmgk/faker"
            "strings"
    )
     
    func main() {
            var phrases []string
     
            for i := 1; i < 3; i++ {
                    phrases = append(phrases, faker.Hacker().Phrases()...)
            }
     
            fmt.Println(strings.Join(phrases[:], "; "))
    }
    ~          
    

    I build it , but it says "lolcat.go:5:2: code in directory /root/go/src/github.com/dmgk/faker expects import "syreclabs.com/go/faker""

    opened by fengzhao 1
  • Go mod fails to parse go.mod file

    Go mod fails to parse go.mod file

    In a project indirectly importing faker I'm getting

    go: github.com/enodata/[email protected]: parsing go.mod: unexpected module path "syreclabs.com/go/faker"
    

    when running some go mod commands, e.g. go mod why.

    Any idea what we can do to fix this?

    opened by martinal 1
  • Invalid module path

    Invalid module path

    -> vgo get -v syreclabs.com/go/faker/v2
    Fetching https://syreclabs.com/go/faker/v2?go-get=1
    Parsing meta tags from https://syreclabs.com/go/faker/v2?go-get=1 (status code 200)
    get "syreclabs.com/go/faker/v2": found meta tag get.metaImport{Prefix:"syreclabs.com/go/faker", VCS:"git", RepoRoot:"https://syreclabs.com/go/faker.git"} at https://syreclabs.com/go/faker/v2?go-get=1
    get "syreclabs.com/go/faker/v2": verifying non-authoritative meta tag
    Fetching https://syreclabs.com/go/faker?go-get=1
    Parsing meta tags from https://syreclabs.com/go/faker?go-get=1 (status code 200)
    go: syreclabs.com/go/faker/[email protected]: go.mod has non-.../v2 module path "syreclabs.com/go/faker" (and .../v2/go.mod does not exist) at revision v2.0.1
    go: error loading module requirements
    

    https://github.com/dmgk/faker/blob/master/go.mod should contain

    module "syreclabs.com/go/faker/v2"
    

    More info: https://github.com/golang/go/wiki/Modules#new-concepts

    opened by AlekSi 1
  • Data race in RandomString()

    Data race in RandomString()

    When running tests which use this package with the race detector it finds out there are data races. Trivial to reproduce example is with the following useless program:

    package main
    
    import "syreclabs.com/go/faker"
    
    func main() {
    	go faker.RandomString(10)
    	go faker.RandomString(10)
    }
    

    When I run it with go run -race this is the output from go's race detector:

    ==================
    WARNING: DATA RACE
    Read at 0x00c42018afb8 by goroutine 7:
      math/rand.read()
          /usr/lib/go/src/math/rand/rand.go:265 +0x3c
      math/rand.(*Rand).Read()
          /usr/lib/go/src/math/rand/rand.go:261 +0x16d
      syreclabs.com/go/faker.RandomString()
          /home/kiril/go/src/syreclabs.com/go/faker/faker.go:90 +0xb2
    
    Previous write at 0x00c42018afb8 by goroutine 6:
      math/rand.read()
          /usr/lib/go/src/math/rand/rand.go:276 +0xee
      math/rand.(*Rand).Read()
          /usr/lib/go/src/math/rand/rand.go:261 +0x16d
      syreclabs.com/go/faker.RandomString()
          /home/kiril/go/src/syreclabs.com/go/faker/faker.go:90 +0xb2
    
    Goroutine 7 (running) created at:
      main.main()
          /tmp/fake.go:7 +0x6c
    
    Goroutine 6 (finished) created at:
      main.main()
          /tmp/fake.go:6 +0x4b
    ==================
    ==================
    WARNING: DATA RACE
    Read at 0x00c42018afb0 by goroutine 7:
      math/rand.read()
          /usr/lib/go/src/math/rand/rand.go:266 +0x56
      math/rand.(*Rand).Read()
          /usr/lib/go/src/math/rand/rand.go:261 +0x16d
      syreclabs.com/go/faker.RandomString()
          /home/kiril/go/src/syreclabs.com/go/faker/faker.go:90 +0xb2
    
    Previous write at 0x00c42018afb0 by goroutine 6:
      math/rand.read()
          /usr/lib/go/src/math/rand/rand.go:277 +0x108
      math/rand.(*Rand).Read()
          /usr/lib/go/src/math/rand/rand.go:261 +0x16d
      syreclabs.com/go/faker.RandomString()
          /home/kiril/go/src/syreclabs.com/go/faker/faker.go:90 +0xb2
    
    Goroutine 7 (running) created at:
      main.main()
          /tmp/fake.go:7 +0x6c
    
    Goroutine 6 (finished) created at:
      main.main()
          /tmp/fake.go:6 +0x4b
    ==================
    Found 2 data race(s)
    exit status 66
    

    Now, this makes a lot of sense, since math/rand.Rand.Read is documented as not safe to be called concurrently. Which is okay for a method of type. RandomString in this package however is a global function and this issue could not be worked around as easily as with Rand.Read. For instance math/rand.Read (the global function) is safe to be called concurrently.

    opened by vladimiroff 1
  • Seeds work for the day they're made on

    Seeds work for the day they're made on

    Thank you for adding a deterministic seed in #13! An issue I'm experiencing in https://github.com/humanmade/go-anonymize-mysqldump is the determinism seems to only last for a day. What I'm seeing is that whenever I go to work on the script a day or so later, the values generated are different than the ones generated a few days prior, even though the seed value hasn't changed. Any ideas?

    opened by nathanielks 1
  • Ensuring Unique Values

    Ensuring Unique Values

    Currently there's no way to ensure unique values:

    https://github.com/stympy/faker#ensuring-unique-values

    Use case for me is in this project:

    https://github.com/mpchadwick/dbanon

    I generate random email addresses, but I need to ensure they're unique to prevent a duplicate key issue.

    opened by mpchadwick 2
  • faker.Name() adding the option to generate a randomized gender.

    faker.Name() adding the option to generate a randomized gender.

    Hello,

    While working with datacharmer's test_db (https://github.com/datacharmer/test_db) and faker, I observed that we can also add a randomly generated gender field to the Name() class. I'm creating this issue to submit a PR against. Will do that soon.

    opened by simar7 0
Owner
Dmitri Goutnik
Dmitri Goutnik
Random fake data generator written in go

Gofakeit Random data generator written in go Features 160+ Functions!!! Concurrent Global Rand Struct Generator Custom Functions Http Server Command L

Brian Voelker 2.7k Sep 26, 2022
This is a simple test application that sends fake video data from one pion instance to another

Pion test app for BWE This is a simple test application that sends fake video data from one pion instance to another. It is a modified version of the

Mathis Engelbart 2 Jun 8, 2022
Random - A Golang library that provides functions for generating random values

Random A Golang library that provides functions for generating random values. Us

Fatih Cetinkaya 1 Apr 14, 2022
A tool for generating self-contained, type-safe test doubles in go

counterfeiter When writing unit-tests for an object, it is often useful to have fake implementations of the object's collaborators. In go, such fake i

Max Brunsfeld 722 Sep 24, 2022
A yaml data-driven testing format together with golang testing library

Specimen Yaml-based data-driven testing Specimen is a yaml data format for data-driven testing. This enforces separation between feature being tested

Design it, Run it 0 Jan 31, 2022
bencode is a golang package for bencoding and bdecoding data from and from to equivalents.

Bencode bencode is a golang package for bencoding and bdecoding data from and from to equivalents. Bencode (pronounced like Ben-code) is the encoding

Arun Murugan 2 Jan 8, 2022
Fortio load testing library, command line tool, advanced echo server and web UI in go (golang). Allows to specify a set query-per-second load and record latency histograms and other useful stats.

Fortio Fortio (Φορτίο) started as, and is, Istio's load testing tool and now graduated to be its own project. Fortio is also used by, among others, Me

Fortio (Φορτίο) 2.7k Sep 21, 2022
A simple tool to fill random data into a file to overwrite the free space on a disk

random-fill random-fill is a simple tool to fill random data into a file to over

null 2 Jul 13, 2022
A go server which will respond with data to mock a server!

Mocker A go program which will respond with data to mock a server; mainly useful while developing a frontend application, whose backend is not running

BE 0 Jan 29, 2022
A toolkit with common assertions and mocks that plays nicely with the standard library

Testify - Thou Shalt Write Tests ℹ️ We are working on testify v2 and would love to hear what you'd like to see in it, have your say here: https://cutt

Stretchr, Inc. 17.7k Sep 25, 2022
Playwright for Go a browser automation library to control Chromium, Firefox and WebKit with a single API.

?? Playwright for API reference | Example recipes Playwright is a Go library to automate Chromium, Firefox and WebKit with a single API. Playwright is

Max Schmitt 936 Sep 26, 2022
HTTP load testing tool and library. It's over 9000!

Vegeta Vegeta is a versatile HTTP load testing tool built out of a need to drill HTTP services with a constant request rate. It can be used both as a

Tomás Senart 20.2k Sep 20, 2022
A WebDriver client and acceptance testing library for Go

Agouti Agouti is a library for writing browser-based acceptance tests in Google Go. It provides Gomega matchers and plays nicely with Ginkgo or Spec.

Stephen Levine 803 Sep 22, 2022
A simple and expressive HTTP server mocking library for end-to-end tests in Go.

mockhttp A simple and expressive HTTP server mocking library for end-to-end tests in Go. Installation go get -d github.com/americanas-go/mockhttp Exa

Americanas Go 6 Dec 19, 2021
:exclamation:Basic Assertion Library used along side native go testing, with building blocks for custom assertions

Package assert Package assert is a Basic Assertion library used along side native go testing Installation Use go get. go get github.com/go-playground/

Go Playgound 46 Sep 14, 2022
Library created for testing JSON against patterns.

Gomatch Library created for testing JSON against patterns. The goal was to be able to validate JSON focusing only on parts essential in given test cas

null 43 Sep 27, 2022
A BDD library for Go

gospecify This provides a BDD syntax for testing your Go code. It should be familiar to anybody who has used libraries such as rspec. Installation The

Samuel Tesla 52 Nov 22, 2021
A Go test assertion library for verifying that two representations of JSON are semantically equal

jsonassert is a Go test assertion library for verifying that two representations of JSON are semantically equal. Usage Create a new *jsonassert.Assert

Roger Guldbrandsen 93 Sep 21, 2022
A Go library help testing your RESTful API application

RESTit A Go micro-framework to help writing RESTful API integration test Package RESTit provides helps to those who want to write an integration test

RESTit 56 Sep 27, 2022