Contents

Como gerar dados de teste falsos com Go

Garantir o calibre e o desempenho dos aplicativos depende muito de informações de teste confiáveis ​​e precisas, que simulam circunstâncias reais de uso. A capacidade de produzir dados imitativos para vários tipos de avaliações é uma proficiência essencial para alcançar os melhores resultados.

Embora não haja funcionalidade integrada na biblioteca padrão do Go para gerar dados sintéticos, várias bibliotecas e ferramentas de terceiros estão disponíveis em sua comunidade mais ampla que atendem a essa finalidade. Entre essas opções, uma solução altamente considerada é conhecida como Gofakeit, que ganhou força significativa devido à sua eficácia na criação de dados artificiais.

Introdução ao Gofakeit

/pt/images/gofakeit-s-github-preview-image.jpeg

Gofakeit é uma ferramenta de software projetada para produzir dados simulados em aplicativos baseados na linguagem de programação Go.

O Gofakeit possui uma gama abrangente de funcionalidades, como a capacidade de produzir informações aleatórias abrangendo várias categorias. Além disso, concede aos usuários a flexibilidade de adaptar sua saída de acordo com requisitos de formatação específicos, acomodar preferências regionais e gerar carimbos de data/hora confiáveis.

Para incorporar o Gofakeit como uma biblioteca de terceiros em um projeto Go recém-estabelecido, navegue até o espaço de trabalho ativo do projeto e execute a instrução designada, que envolve a execução de um comando específico nesse ambiente específico.

 go get github.com/brianvoe/gofakeit/v6

Depois de incorporar o Gofakeit como um componente adicional, pode-se introduzir o pacote implementando as seguintes etapas:

 import (
    "github.com/brianvoe/gofakeit/v6"
)

O Gofakeit oferece uma gama abrangente de recursos que normalmente são encontrados em um pacote de software de geração de dados falso.

Gerando dados falsos básicos com Gofakeit

O Gofakeit oferece um conjunto versátil de ferramentas para gerar vários tipos de informações, como nomes pessoais, endereços de e-mail, números de telefone e linguagem comercial comum.

Para criar dados simulados usando GoFakeIt, siga estas etapas:

 package main

import (
     "fmt"
    "github.com/brianvoe/gofakeit/v6"
)

func main() {
    // Generate a fake name
    name := gofakeit.Name()
    fmt.Println("Name:", name)

    // Generate a fake email address
    email := gofakeit.Email()
    fmt.Println("Email:", email)

    // Generate a fake phone number
    phone := gofakeit.Phone()
    fmt.Println("Phone:", phone)

    // Generate a fake company name
    company := gofakeit.Company()
    fmt.Println("Company:", company)

    // Generate a fake credit card number
    creditCard := gofakeit.CreditCardNumber()
    fmt.Println("Credit Card:", creditCard)

    // Generate a fake hacker phrase
    hackerPhrase := gofakeit.HackerPhrase()
    fmt.Println("Hacker Phrase:", hackerPhrase)

    // Generate a fake job title
    jobTitle := gofakeit.JobTitle()
    fmt.Println("Job Title:", jobTitle)

    // Generate a fake currency abbreviation
    currency := gofakeit.CurrencyShort()
    fmt.Println("Currency:", currency)
}

A principal tarefa deste programa é produzir uma série de dados fabricados utilizando a biblioteca Gofakeit e, subsequentemente, exibir essas figuras geradas na interface de linha de comando, empregando a função Println, que é parte integrante do fmt pacote.

A utilização das tags struct fornecidas no GoFakeIt permite a geração de dados simulados em vários tipos de campo. Ao empregar essas tags, o GoFakeIt inicializa automaticamente cada campo respectivo com informações fabricadas.

 import (
    "fmt"
    "time"

    "github.com/brianvoe/gofakeit/v6"
)

type Person struct {
    ID string `fake:"{uuid}"`
    FirstName string `fake:"{firstname}"`
    LastName string `fake:"{lastname}"`
    Age int `fake:"{number:18,60}"`
    Email string `fake:"{email}"`
    Address string `fake:"{address}"`
    CreatedAt time.Time `fake:"{date}"`
}

func main() {
    var person Person

    gofakeit.Struct(&person)

    fmt.Printf("ID: %s\\n", person.ID)
    fmt.Printf("First Name: %s\\n", person.FirstName)
    fmt.Printf("Last Name: %s\\n", person.LastName)
    fmt.Printf("Age: %d\\n", person.Age)
    fmt.Printf("Email: %s\\n", person.Email)
    fmt.Printf("Address: %s\\n", person.Address)
    fmt.Printf("Created At: %s\\n", person.CreatedAt)
}

Os componentes da estrutura Pessoa carregam nomes de tags fabricados em suas respectivas posições. Dentro da função primária, a entidade referida como “pessoa” constitui uma instanciação da estrutura Pessoa.

O método gofakeit.Struct utiliza dados gerados aleatoriamente, derivados das tags “falsas” especificadas associadas a cada campo exportado de uma determinada estrutura, para preencher esses elementos exportados. Posteriormente, a função primária que procede a esse processo exibirá o conteúdo dos campos da referida struct quando impresso no console.

/pt/images/result-from-printing-gofakeit-struct-tag-data.jpg

Geração de dados falsos complexos

Utilizando o Gofakeit, você tem a capacidade de produzir dados fabricados intrincados, abrangendo estruturas variadas de sentenças, composições de parágrafos e diversas instâncias do conteúdo Lorem Ipsum por meio da implementação de suas respectivas ferramentas funcionais, como Sentence(), Paragraph() e LoremIpsumParagraph().

 package main

import (
    "fmt"

    "github.com/brianvoe/gofakeit/v6"
)

func generateRandomSentence() string {
    // Generate a random sentence with 6 words
    sentence := gofakeit.Sentence(6)
    return sentence
}

func generateRandomParagraph() string {
    // Generate a random paragraph with 3 sentences, each having 4 to 8 words
    paragraph := gofakeit.Paragraph(3, 4, 8, "/n")
    return paragraph
}

func generateLoremIpsum() string {
    // Generate 2 paragraphs of lorem ipsum text, each having 3 to 5 sentences
    loremIpsum := gofakeit.LoremIpsumParagraph(3, 5, 12, "\\n")
    return loremIpsum
}

func main() {
    // Set up the random seed for consistent results (optional)
    gofakeit.Seed(0)

    // Generate and print random sentence
    fmt.Println("Random Sentence:")
    fmt.Println(generateRandomSentence())

    // Generate and print random paragraph
    fmt.Println("\\nRandom Paragraph:")
    fmt.Println(generateRandomParagraph())

    // Generate and print lorem ipsum text
    fmt.Println("\\nLorem Ipsum Text:")
    fmt.Println(generateLoremIpsum())
}

As funções generateRandomSentence e generateRandomParagraph utilizam os respectivos recursos de geração Sentença e Parágrafo do Gofakeit para produzir texto gerado aleatoriamente em forma de sentença ou parágrafo, respectivamente.

A função generateLoremIpsum utiliza a função LoremIpsumParagraph para produzir uma passagem de Lorem Ipsum gerada aleatoriamente.

O objetivo principal do aplicativo é executar três operações distintas que são encapsuladas em construções metodológicas separadas. Essas operações incluem a geração de frases aleatórias, parágrafos e texto Lorem Ipsum. Além disso, deve-se observar que a saída do programa se destina a exibição na interface do console como meio de fornecer feedback visual ao usuário.

Você pode gerar dados falsos para testar seu banco de dados

O Gofakeit agiliza o processo de geração de dados de teste dinamicamente, a fim de acomodar uma ampla gama de requisitos variados e garantir a compatibilidade ideal entre diferentes sistemas.

Utilizando o banco de dados/pacote sql nativo do Go, pode-se preencher com eficiência seu banco de dados SQL com dados simulados para fins de teste. Ao fazer isso, uma gama mais ampla de condições de contorno pode ser examinada, aumentando a robustez das medidas de segurança do banco de dados.