خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

نحوه تولید داده های آزمایشی جعلی با Go

شما اغلب برای آزمایش برنامه خود با مقادیر معنی دار به داده نیاز دارید. فقط از Gofakeit برای جعل کردن آن برای شما استفاده کنید.

داده های آزمایشی قابل اعتماد و واقع بینانه برای اطمینان از کیفیت و عملکرد برنامه های شما بسیار مهم است. تولید داده های جعلی که سناریوهای دنیای واقعی را تقلید می کند، یک مهارت مفید برای بسیاری از انواع آزمایش است.

هیچ پشتیبانی برای تولید داده‌های جعلی در کتابخانه استاندارد وجود ندارد، اما بسته‌های زیادی در اکوسیستم گسترده‌تر Go وجود دارد. یکی از بسته های محبوب برای تولید داده های جعلی Gofakeit است.

شروع کار با Gofakeit

تصویر پیش نمایش GitHub Gofakeit

Gofakeit بسته ای برای تولید داده های جعلی در برنامه های Go شما است.

Gofakeit ویژگی های گسترده ای از جمله تولید داده های تصادفی در انواع مختلف ارائه می دهد. همچنین گزینه های قابل تنظیم برای پایبندی به فرمت های خاص، پشتیبانی از محلی سازی و تولید زمان و تاریخ واقعی را ارائه می دهد.

این دستور را در دایرکتوری کاری پروژه خود اجرا کنید، پس از اینکه یک پروژه Go جدید را راه اندازی کردید، تا Gofakeit را به عنوان یک وابستگی شخص ثالث اضافه کنید:

go get github.com/brianvoe/gofakeit/v6

پس از افزودن Gofakeit به عنوان یک وابستگی، می توانید بسته را به این صورت وارد کنید:

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

به طور کلی، Gofakeit بیشتر قابلیت های یک بسته تولید داده جعلی را فراهم می کند.

تولید داده های جعلی اولیه با Gofakeit

Gofakeit عملکردی را برای تولید انواع مختلف داده ها، از جمله نام، ایمیل، تلفن، عبارات تجاری و غیره فراهم می کند.

مطلب مرتبط:   JES چیست و چگونه کار می کند؟

در اینجا نحوه تولید داده های جعلی اولیه با Gofakeit آمده است:

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)
}

تابع اصلی چندین مقدار جعلی را با Gofakeit تولید می کند و با استفاده از تابع Println از بسته fmt آنها را در کنسول چاپ می کند.

Gofakeit تگ های ساختاری را برای تولید داده های جعلی برای زمینه های مختلف ارائه می دهد. وقتی از این تگ‌های ساختاری استفاده می‌کنید، Gofakeit فیلدهای آن‌ها را با داده‌های جعلی مقداردهی اولیه می‌کند.

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)
}

فیلدهای Person struct همگی دارای تگ های ساختگی جعلی هستند. در تابع main، متغیر person نمونه ای از ساختار Person است.

مطلب مرتبط:   آسیب پذیری شرایط مسابقه چیست؟

روش gofakeit.Struct عناصر صادراتی یک ساختار را با داده های تصادفی بر اساس ارزش تگ جعلی فیلدهای صادر شده پر می کند. سپس تابع main فیلدهای struct را در کنسول چاپ می کند.

نتیجه چاپ داده های برچسب ساختار Gofakeit است

تولید داده های جعلی پیچیده

می‌توانید با Gofakeit داده‌های جعلی پیچیده، از جمله جملات تصادفی، پاراگراف‌ها و lorem ipsum را به ترتیب با توابع جمله، پاراگراف و 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())
}

تابع generateRandomSentence یک جمله تصادفی با تابع جمله Gofakeit تولید می کند. تابع generateRandomParagraph یک پاراگراف تصادفی با تابع Paragraph تولید می کند.

تابع generateLoremIpsum یک پاراگراف لورم ایپسوم تصادفی با تابع LoremIpsumParagraph تولید می کند.

تابع اصلی توابع generateRandomSentence،geneRandomParagraph وgenereLoremIpsum را فراخوانی می کند. این برنامه خروجی های تابع را در کنسول چاپ می کند.

شما می توانید داده های جعلی را برای آزمایش پایگاه داده خود تولید کنید

Gofakeit تست را با تولید داده های پویا ساده می کند تا از سازگاری با الزامات مختلف اطمینان حاصل کند.

مطلب مرتبط:   با استفاده از آردوینو یک بازی ویدیویی ساده بسازید

می‌توانید از پایگاه داده/بسته sql داخلی Go برای پر کردن پایگاه داده SQL خود با داده‌های جعلی برای آزمایش استفاده کنید. این می تواند به شما کمک کند موارد لبه بیشتری را آزمایش کرده و امنیت پایگاه داده را بهبود بخشد.