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
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.
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.