Rumah pembangunan bahagian belakang Golang Ujian integrasi go-zero: merealisasikan ujian automatik tidak merosakkan perkhidmatan API

Ujian integrasi go-zero: merealisasikan ujian automatik tidak merosakkan perkhidmatan API

Jun 22, 2023 pm 02:06 PM
Ujian automatik Ujian integrasi go-zero

Apabila syarikat Internet terus berkembang, pembangunan perisian menjadi lebih dan lebih kompleks, dan ujian menjadi lebih penting. Untuk memastikan ketepatan dan kestabilan program, pelbagai jenis ujian mesti dilakukan. Antaranya, ujian automatik adalah cara yang sangat penting Ia boleh meningkatkan kecekapan kerja ujian, mengurangkan kadar ralat, dan membolehkan pelaksanaan berulang kes ujian untuk mengesan masalah lebih awal, bagaimanapun, dalam proses operasi sebenar, kami juga akan menghadapi pelbagai masalah , seperti Isu seperti pemilihan alat ujian, penulisan kes ujian dan penyediaan persekitaran ujian.

go-zero ialah rangka kerja bahasa Go sumber terbuka Ia dibangunkan berdasarkan pustaka standard asli bahasa Go dan menyokong pembinaan pantas perkhidmatan API teragih yang berprestasi tinggi Pada masa yang sama, go -zero juga menyediakan yang sangat kaya Fungsi sokongan ujian boleh membantu kami merealisasikan ujian automatik tidak merosakkan perkhidmatan API dan mengatasi banyak kesukaran dalam proses ujian automatik.

Artikel ini akan bermula dengan fungsi sokongan ujian go-zero dan memperkenalkan secara terperinci cara menggunakan go-zero untuk melaksanakan ujian automatik tidak merosakkan perkhidmatan API.

1. Fungsi sokongan ujian Go-zero

go-zero menyediakan pelbagai fungsi sokongan ujian, termasuk ujian unit, ujian HTTP, ujian integrasi, ujian prestasi dan ujian sisi pelayan, dsb. . Antaranya, ujian integrasi adalah bahagian yang sangat penting dalam fungsi sokongan ujian go-zero.

Pengujian penyepaduan go-zero menggunakan kaedah boleh pasang dan menyokong pelbagai alat ujian Anda boleh memilih rangka kerja ujian yang berbeza untuk ujian mengikut keperluan khusus. Alat ujian yang disokong pada masa ini termasuk webtest, posmen, resty, dsb.

2. Gunakan go-zero untuk ujian automatik tidak merosakkan perkhidmatan API

Seterusnya, kami akan menggunakan contoh untuk menunjukkan cara menggunakan ujian penyepaduan go-zero untuk melaksanakan ujian tidak merosakkan automatik perkhidmatan API.

  1. Konfigurasikan persekitaran ujian

Sebelum menjalankan ujian penyepaduan, kita perlu mengkonfigurasi persekitaran ujian terlebih dahulu. Dalam contoh ini, kami akan menggunakan docker-compose untuk membina persekitaran. Fail konfigurasi adalah seperti berikut:

version: '3'

services:
  api:
    image: your-api-image:latest
    ports:
      - "8888:8888"
    environment:
      - MYSQL_DSN=root:@tcp(mysql:3306)/test
      - REDIS_DSN=redis:6379
      - REDIS_KEY_PREFIX=test
      - SERVICE_PORT=8888
    depends_on:
      - mysql
      - redis

  mysql:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: ''
    volumes:
      - ./docker/mysql:/docker-entrypoint-initdb.d
      - ./docker/mysql/data:/var/lib/mysql

  redis:
    image: redis:3.2
    restart: always
    volumes:
      - ./docker/redis:/data
    command: redis-server --appendonly yes
Salin selepas log masuk

Dalam fail konfigurasi di atas, tiga perkhidmatan ditakrifkan, iaitu perkhidmatan API, pangkalan data MySQL dan cache Redis. Perkhidmatan API perlu mendedahkan port 8888 dan bergantung pada pangkalan data MySQL dan cache Redis.

  1. Menulis kes ujian

Selepas mengkonfigurasi persekitaran ujian, kita perlu menulis kes ujian. Dalam contoh ini, kami akan menggunakan webtest untuk ujian. Webtest ialah rangka kerja ujian untuk aplikasi web, menyokong protokol HTTP dan protokol WebSocket. Ia menyediakan API yang kaya yang membolehkan kami mensimulasikan permintaan dan respons HTTP serta mengesahkan sama ada kandungan permintaan dan respons itu memenuhi jangkaan.

Berikut ialah contoh penggunaan webtest untuk menulis kes ujian:

import (
    "testing"
    "github.com/stretchr/testify/assert"
    "github.com/franktrue/grpc-demo/api"
    "github.com/franktrue/grpc-demo/internal/config"
    "github.com/franktrue/grpc-demo/internal/server"
    "github.com/franktrue/grpc-demo/internal/svc"
)

func TestCreateUser(t *testing.T) {
    cfg := config.TestConfig()
    s := server.NewServer(cfg)
    defer s.Stop()

    testCases := []struct {
        name      string
        req       *api.CreateUserRequest
        expectErr bool
    }{
        {
            name: "test createUser success",
            req: &api.CreateUserRequest{
                Name: "testUser",
                Age:  20,
            },
            expectErr: false,
        }, 
        {
            name: "test createUser failed",
            req: &api.CreateUserRequest{
                Name: "",
                Age:  20,
            },
            expectErr: true,
        },
    }

    for _, tc := range testCases {
        resp, err := s.CreateUser(nil, tc.req)
        if tc.expectErr {
            assert.NotNil(t, err, tc.name)
        } else {
            assert.Nil(t, err, tc.name)
            assert.NotNil(t, resp, tc.name)
        }
    }
}
Salin selepas log masuk

Dalam kod di atas, kami menggunakan rangka kerja testimoni untuk penegasan. Dalam gelung untuk kes ujian, kami menguji dua kes ujian masing-masing Hasil yang dijangkakan ialah kes penggunaan pertama boleh berjaya mencipta pengguna, manakala kes penggunaan kedua akan gagal disebabkan oleh parameter yang menyalahi undang-undang. Jika kes ujian konsisten dengan jangkaan, penegasan lulus jika kes ujian tidak konsisten dengan jangkaan, penegasan itu gagal.

  1. Jalankan kes ujian

Selepas menulis kes ujian, kita boleh menggunakan arahan ujian go untuk menjalankan kes ujian:

go test -v ./tests/users_test.go
Salin selepas log masuk

Selepas berjalan kes ujian, kita boleh melihat keputusan pelaksanaan dalam terminal. Jika kes ujian berjaya dilaksanakan, keputusan OK akan dikeluarkan jika kes ujian gagal, maklumat ralat terperinci akan dikeluarkan.

Dengan cara ini, kami telah menyelesaikan ujian automatik tidak merosakkan perkhidmatan API Dalam proses ini, kami telah menggunakan sepenuhnya fungsi sokongan ujian go-zero yang berkuasa dan kemudahan penggunaan serta fleksibiliti. rangka kerja ujian webtest untuk menyediakan API Ketepatan dan kestabilan perkhidmatan memberikan jaminan yang kukuh.

Atas ialah kandungan terperinci Ujian integrasi go-zero: merealisasikan ujian automatik tidak merosakkan perkhidmatan API. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Gunakan go-zero untuk melaksanakan reka bentuk sistem penyewa berbilang dimensi Gunakan go-zero untuk melaksanakan reka bentuk sistem penyewa berbilang dimensi Jun 23, 2023 am 10:49 AM

Dengan perkembangan Internet, semakin banyak perusahaan mula berubah ke arah penyewaan berbilang untuk meningkatkan daya saing mereka. Sistem berbilang penyewa membenarkan berbilang penyewa berkongsi set aplikasi dan infrastruktur yang sama, masing-masing dengan perlindungan data dan privasi mereka sendiri. Untuk melaksanakan sistem berbilang penyewa, reka bentuk berbilang dimensi perlu dipertimbangkan, melibatkan isu seperti pengasingan data dan keselamatan. Artikel ini akan memperkenalkan cara menggunakan rangka kerja go-zero untuk melaksanakan reka bentuk sistem penyewa berbilang dimensi. go-zero ialah rangka kerja perkhidmatan mikro berdasarkan gRPC, yang berprestasi tinggi, cekap dan mudah dikembangkan.

Cara melaksanakan ujian unit dan ujian integrasi dalam pembangunan bahasa Go Cara melaksanakan ujian unit dan ujian integrasi dalam pembangunan bahasa Go Jun 29, 2023 am 11:58 AM

Cara melaksanakan ujian unit dan ujian integrasi dalam pembangunan bahasa Go Ringkasan: Dalam pembangunan perisian, ujian unit dan ujian integrasi adalah cara penting untuk memastikan kualiti kod dan kestabilan fungsi. Dalam bahasa Go, terdapat juga set sokongan alat yang lengkap, menjadikan ujian unit dan ujian integrasi lebih mudah dan lebih cekap. Artikel ini akan memperkenalkan cara melakukan ujian unit dan ujian integrasi dalam pembangunan bahasa Go dan menunjukkannya melalui beberapa kod sampel. Pengenalan Bahasa Go ialah bahasa pengaturcaraan sumber terbuka yang digemari oleh semakin ramai pembangun kerana kesederhanaan dan ciri yang berkuasa.

Nasihat Pembangunan Laravel: Cara Melakukan Ujian Unit dan Integrasi Nasihat Pembangunan Laravel: Cara Melakukan Ujian Unit dan Integrasi Nov 23, 2023 am 10:29 AM

Laravel ialah rangka kerja PHP yang sangat baik yang menyediakan satu siri komponen dan alatan untuk membantu kami membangunkan aplikasi web dengan lebih cekap. Walau bagaimanapun, dalam menghadapi keperluan perniagaan yang semakin kompleks, pembangun mesti sentiasa mencari cara untuk meningkatkan kualiti perisian, mengurangkan risiko teknikal dan meningkatkan kebolehgunaan semula kod. Dalam pembangunan Laravel, ujian unit dan ujian integrasi ialah dua kaedah ujian yang sangat berkesan. Ia boleh membantu pembangun mengesahkan tingkah laku aplikasi dengan berkesan dan membolehkan pembangun menyampaikan perisian dengan lebih yakin. Buku

Cara menggunakan skrip Python untuk melaksanakan ujian automatik dalam persekitaran Linux Cara menggunakan skrip Python untuk melaksanakan ujian automatik dalam persekitaran Linux Oct 05, 2023 am 11:51 AM

Cara menggunakan skrip Python untuk melaksanakan ujian automatik dalam persekitaran Linux Dengan perkembangan pesat pembangunan perisian, ujian automatik memainkan peranan penting dalam memastikan kualiti perisian dan meningkatkan kecekapan pembangunan. Sebagai bahasa pengaturcaraan yang ringkas dan mudah digunakan, Python mempunyai kecekapan mudah alih dan pembangunan yang kukuh, dan digunakan secara meluas dalam ujian automatik. Artikel ini akan memperkenalkan cara menggunakan Python untuk menulis skrip ujian automatik dalam persekitaran Linux dan memberikan contoh kod khusus. Persediaan Persekitaran untuk Automasi dalam Persekitaran Linux

Amalan aplikasi go-zero dan RabbitMQ Amalan aplikasi go-zero dan RabbitMQ Jun 23, 2023 pm 12:54 PM

Kini semakin banyak perusahaan mula menggunakan model seni bina perkhidmatan mikro, dan dalam seni bina ini, baris gilir mesej telah menjadi kaedah komunikasi yang penting, antaranya RabbitMQ digunakan secara meluas. Dalam bahasa Go, go-zero ialah rangka kerja yang telah muncul dalam beberapa tahun kebelakangan ini. Ia menyediakan banyak alat dan kaedah praktikal untuk membolehkan pembangun menggunakan baris gilir mesej dengan lebih mudah Di bawah ini kami akan memperkenalkan go-zero berdasarkan aplikasi praktikal dan amalan aplikasi RabbitMQ. 1.RabbitMQ Gambaran KeseluruhanArnab

Dari kemasukan kepada kemahiran: Menguasai rangka kerja go-zero Dari kemasukan kepada kemahiran: Menguasai rangka kerja go-zero Jun 23, 2023 am 11:37 AM

Go-zero ialah rangka kerja bahasa Go yang sangat baik yang menyediakan set lengkap penyelesaian, termasuk RPC, caching, tugas berjadual dan fungsi lain. Sebenarnya, sangat mudah untuk membina perkhidmatan berprestasi tinggi menggunakan go-zero, malah anda boleh pergi dari pemula kepada mahir dalam beberapa jam. Artikel ini bertujuan untuk memperkenalkan proses membina perkhidmatan berprestasi tinggi menggunakan rangka kerja go-zero dan membantu pembaca memahami dengan cepat konsep teras rangka kerja tersebut. 1. Pemasangan dan konfigurasi Sebelum mula menggunakan go-zero, kita perlu memasangnya dan mengkonfigurasi beberapa persekitaran yang diperlukan. 1

Apakah perbezaan antara ujian unit dan ujian integrasi dalam ujian fungsi golang? Apakah perbezaan antara ujian unit dan ujian integrasi dalam ujian fungsi golang? Apr 27, 2024 am 08:30 AM

Ujian unit dan ujian penyepaduan ialah dua jenis ujian fungsi Go yang berbeza, yang digunakan untuk mengesahkan interaksi dan penyepaduan fungsi tunggal atau berbilang fungsi masing-masing. Ujian unit hanya menguji kefungsian asas fungsi tertentu, manakala ujian penyepaduan menguji interaksi antara pelbagai fungsi dan penyepaduan dengan bahagian lain aplikasi.

Bagaimana untuk mengintegrasikan fungsi Java ujian dengan PowerMock? Bagaimana untuk mengintegrasikan fungsi Java ujian dengan PowerMock? Apr 26, 2024 pm 04:51 PM

Bagaimana untuk menggunakan PowerMock untuk ujian penyepaduan fungsi Java? Pasang PowerMock: Pasang PowerMock melalui kebergantungan Maven. Contoh: Buat kelas Kalkulator. Gunakan PowerMock untuk mengejek kaedah statik dalam kelas Kalkulator. Dalam kaedah ujian, gunakan Mockito untuk mengejek panggilan kaedah dan mengembalikan nilai. Gunakan JUnitAssert.assertEquals untuk mengesahkan keputusan. Kesimpulan: PowerMock menjadikan ujian integrasi mudah, walaupun untuk kelas yang mengandungi kaedah statik dan akhir.

See all articles