Rumah pembangunan bahagian belakang Golang Aplikasi praktikal: Ujian API menggunakan Beego

Aplikasi praktikal: Ujian API menggunakan Beego

Jun 18, 2023 pm 12:25 PM
api ujian beego

Dalam beberapa tahun kebelakangan ini, disebabkan perkembangan teknologi Internet, pembangunan dan ujian API (Application Programming Interface) telah menjadi bahagian penting dalam syarikat Internet. Disebabkan proses ujian API yang mudah, kecekapan tinggi dan kadar penggunaan semula kod yang tinggi, semakin banyak syarikat Internet mula menggunakan ujian automatik untuk menguji antara muka API mereka. Artikel ini akan memperkenalkan secara terperinci cara menggunakan rangka kerja Beego untuk ujian API.

1. Pengenalan kepada rangka kerja Beego

Beego ialah rangka kerja web berdasarkan bahasa Go Disebabkan oleh kecekapan, kesederhanaan dan ciri yang mudah dipelajari, ia digunakan oleh semakin ramai pembangun . Selain itu, Beego juga menyediakan pelbagai alatan dan pemalam, termasuk ORM, Websocket, Redis, CORS, Swagger dan alatan lain, yang boleh meningkatkan kecekapan pembangunan dengan banyak.

2. Alat pembangunan

Sebelum memulakan pembangunan, anda mesti terlebih dahulu menyediakan alatan pembangunan yang diperlukan. Persekitaran pembangunan yang digunakan dalam artikel ini adalah seperti berikut:

1 Sistem pengendalian: Windows 10

2 versi: go1.11.4 windows/amd64

3 versi: 1.12. 1

4 Rangka kerja ujian: GoConvey

5. Pangkalan Data: MySQL

3. Pemasangan dan konfigurasi

1. Muat turun pakej pemasangan yang sepadan dari tapak web rasmi (https://golang.org/dl/). Selepas muat turun selesai, klik dua kali untuk menjalankan pakej pemasangan bagi melengkapkan pemasangan.

2. Pasang Beego

Selepas memasang bahasa Go, anda perlu memasang rangka kerja Beego. Beego boleh dipasang melalui arahan berikut:

go get -u github.com/astaxie/beego
Salin selepas log masuk

Arahan ini akan memuat turun rangka kerja Beego ke laluan GOPATH.

3. Pasang GoConvey

GoConvey ialah rangka kerja ujian unit untuk bahasa Go yang boleh mengesan semua kes ujian dalam projek dan melaksanakan kes ujian ini secara automatik. Kaedah untuk memasang GoConvey adalah seperti berikut:

go get github.com/smartystreets/goconvey
Salin selepas log masuk

4. Pasang MySQL

Dalam artikel ini, kami menggunakan pangkalan data MySQL. Sila pergi ke tapak web rasmi MySQL untuk memuat turun dan memasang: https://dev.mysql.com/downloads/mysql/

Apabila memasang MySQL, adalah disyorkan untuk memasang MySQL Workbench terbina dalam.

4. Cipta projek Beego

Terdapat banyak cara untuk mencipta projek Beego, anda boleh menggunakan baris arahan, atau anda boleh menggunakan web alat yang disediakan oleh Beego. Dalam artikel ini, kami menggunakan baris arahan untuk mencipta projek yang dipanggil "MyAPI". Masukkan arahan berikut pada baris arahan:

bee new MyAPI
Salin selepas log masuk

Kemudian projek Beego bernama "MyAPI" akan dibuat dalam direktori semasa.

Seterusnya, kita perlu menggunakan pangkalan data MySQL yang dipasang sebelum ini. Dalam MySQL Workbench, cipta pangkalan data baharu dan namakannya MyAPI, laksanakan pernyataan SQL berikut:

CREATE TABLE users
(
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(20),
password VARCHAR(50),
created_at TIMESTAMP DEFAULT NOW()
)
Salin selepas log masuk

Pernyataan SQL ini mencipta jadual bernama pengguna, mengandungi empat medan: id, nama pengguna, kata laluan dan created_at .

Seterusnya, kami perlu memberikan kebenaran akses kepada pangkalan data. Buka MySQL Workbench, pilih Pangkalan Data -> Pengguna dan Keistimewaan ->

5. Penulisan API

Selepas mencipta projek Beego, kami perlu menambah beberapa antara muka API pada projek untuk ujian. Dalam main.go projek MyAPI, kami menambah kod berikut:

package main

import (
    "MyAPI/controllers"
    "github.com/astaxie/beego"
    "github.com/astaxie/beego/orm"
    _ "github.com/go-sql-driver/mysql"
)

func init() {
    orm.RegisterDriver("mysql", orm.DRMySQL)
    orm.RegisterDataBase("default", "mysql", "username:password@tcp(127.0.0.1:3306)/MyAPI?charset=utf8")
    orm.RegisterModel(new(models.User))
    orm.RunSyncdb("default", false, true)
}

func main() {
    beego.Router("/api/user/:id", &controllers.UserController{})
    beego.Run()
}
Salin selepas log masuk

Dalam kod di atas, kami menggunakan kaedah beego.Router() untuk menyambung laluan API "/api/user/:id " kepada pengawal.UserController {}Pengawal ini terikat. Kami juga menggunakan teknologi ORM (Object Relational Mapping) untuk berinteraksi dengan pangkalan data MySQL, mendaftar pangkalan data lalai menggunakan kaedah RegisterDataBase(), mencipta jadual pengguna dalam pangkalan data dan mendaftarkan struktur Pengguna sebagai model ORM.

Apabila menulis pengawal.UserController{} pengawal, kami menambah kod berikut untuk mengendalikan permintaan HTTP GET dan mendapatkan pengguna tertentu:

func (c *UserController) Get() {
    o := orm.NewOrm()
    user := models.User{}
    id, _ := strconv.Atoi(c.Ctx.Input.Param(":id"))
    user.ID = id
    err := o.Read(&user)
    if err != nil {
        c.Data["json"] = err.Error()
    } else {
        c.Data["json"] = user
    }
    c.ServeJSON()
}
Salin selepas log masuk

6 >Dalam artikel ini, kami menggunakan GoConvey untuk menguji antara muka API. Kita perlu menambah direktori bernama ujian pada projek Beego dan mencipta fail ujian bernama user_test.go dalam direktori.

package tests

import (
    "MyAPI/models"
    "github.com/astaxie/beego/orm"
    "net/http"
    "net/http/httptest"
    "testing"
    "github.com/smartystreets/goconvey/convey"
)

func TestGetUser(t *testing.T) {
    convey.Convey("GetUser", t, func() {
        o := orm.NewOrm()
        user := models.User{Username: "testuser", Password: "testpass"}
        id, _ := o.Insert(&user)
        req, _ := http.NewRequest("GET", "/api/user/"+strconv.Itoa(int(id)), nil)
        resp := httptest.NewRecorder()
        beego.BeeApp.Handlers.ServeHTTP(resp, req)
        convey.So(resp.Code, convey.ShouldEqual, 200)
    })
}
Salin selepas log masuk

Untuk kod di atas, kami menggunakan pakej penghantaran yang disediakan oleh GoConvey untuk menguji antara muka API. Kami mula-mula menggunakan ORM untuk mencipta pengguna baharu bernama testuser, dan mendapatkan pengguna ini melalui permintaan HTTP GET, dan kemudian menggunakan kaedah convey.So() untuk menentukan sama ada status HTTP untuk mendapatkan maklumat pengguna ialah 200.

7. Mulakan ujian

Masukkan direktori projek MyAPI melalui baris arahan dan laksanakan arahan berikut:

go test ./tests/...
Salin selepas log masuk

Arahan ini akan menguji semua kes ujian dalam Projek MyAPI , dan paparkan keputusan ujian.

8. Ringkasan

Artikel ini memperkenalkan proses asas menggunakan Beego untuk ujian API. Dengan bantuan rangka kerja Beego dan alat GoConvey, ujian API boleh dijalankan dengan lebih baik dan memberikan jaminan yang lebih baik untuk projek kami. Pada masa yang sama, kami juga perlu terus mempelajari teknologi dan alatan baharu, mengekalkan semangat kami untuk pembangunan dan ujian, serta meningkatkan tahap teknikal kami.

Atas ialah kandungan terperinci Aplikasi praktikal: Ujian API menggunakan Beego. 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

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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)

Apakah pendapat anda tentang furmark - Bagaimanakah furmark dianggap layak? Apakah pendapat anda tentang furmark - Bagaimanakah furmark dianggap layak? Mar 19, 2024 am 09:25 AM

Apakah pendapat anda tentang furmark? 1. Tetapkan "Mod Jalankan" dan "Mod Paparan" dalam antara muka utama, dan juga laraskan "Mod Ujian" dan klik butang "Mula". 2. Selepas menunggu seketika, anda akan melihat keputusan ujian, termasuk pelbagai parameter kad grafik. Bagaimanakah furmark layak? 1. Gunakan mesin pembakar furmark dan semak hasilnya selama kira-kira setengah jam Ia pada asasnya berlegar sekitar 85 darjah, dengan puncak 87 darjah dan suhu bilik 19 darjah. Casis besar, 5 port kipas casis, dua di hadapan, dua di atas, dan satu di belakang, tetapi hanya satu kipas dipasang. Semua aksesori tidak overclock. 2. Dalam keadaan biasa, suhu biasa kad grafik hendaklah antara "30-85℃". 3. Walaupun suhu ambien terlalu tinggi pada musim panas, suhu biasa ialah "50-85℃"

Sertai pengembaraan Xianxia baharu! Pramuat turun 'Zhu Xian 2' 'Wuwei Test' kini tersedia Sertai pengembaraan Xianxia baharu! Pramuat turun 'Zhu Xian 2' 'Wuwei Test' kini tersedia Apr 22, 2024 pm 12:50 PM

"Ujian Inaction" bagi MMORPG dongeng fantasi baharu "Zhu Xian 2" akan dilancarkan pada 23 April. Apakah jenis kisah pengembaraan dongeng baharu yang akan berlaku di Benua Zhu Xian beribu-ribu tahun selepas karya asal? The Six Realm Immortal World, akademi abadi sepenuh masa, kehidupan abadi percuma, dan semua jenis keseronokan di dunia abadi sedang menunggu rakan-rakan abadi untuk meneroka secara peribadi! Pra-muat turun "Wuwei Test" kini dibuka Rakan-rakan Fairy boleh pergi ke laman web rasmi untuk memuat turun Anda tidak boleh log masuk ke pelayan permainan sebelum pelayan dilancarkan sudah selesai. Waktu pembukaan "Zhu Xian 2" "Inaction Test": 23 April 10:00 - 6 Mei 23:59 Bab pengembaraan dongeng baharu sekuel ortodoks kepada Zhu Xian "Zhu Xian 2" adalah berdasarkan novel "Zhu Xian" sebagai cetak biru Berdasarkan pandangan dunia karya asal, latar belakang permainan ditetapkan

Raja baharu FPS domestik! Medan Perang 'Operasi Delta' Melebihi Jangkaan Raja baharu FPS domestik! Medan Perang 'Operasi Delta' Melebihi Jangkaan Mar 07, 2024 am 09:37 AM

"Operation Delta" akan melancarkan ujian PC berskala besar yang dipanggil "Codename: ZERO" hari ini (7 Mac). Hujung minggu lalu, permainan ini mengadakan acara pengalaman flash mob luar talian di Shanghai, dan 17173 juga bertuah kerana dijemput untuk mengambil bahagian. Ujian ini hanya tinggal lebih empat bulan lagi daripada kali terakhir, yang membuatkan kami tertanya-tanya, apakah sorotan dan kejutan baharu yang akan dibawa oleh "Operasi Delta" dalam tempoh yang singkat? Lebih empat bulan yang lalu, saya mengalami "Operasi Delta" dalam sesi merasa luar talian dan versi beta pertama. Pada masa itu, permainan hanya membuka mod "Tindakan Berbahaya". Walau bagaimanapun, Operasi Delta sudah mengagumkan pada zamannya. Dalam konteks pengeluar utama yang berpusu-pusu ke pasaran permainan mudah alih, FPS sedemikian yang setanding dengan piawaian antarabangsa

Bagaimana untuk menangani masalah ralat API Laravel Bagaimana untuk menangani masalah ralat API Laravel Mar 06, 2024 pm 05:18 PM

Tajuk: Cara menangani pelaporan ralat API Laravel, contoh kod khusus diperlukan Semasa membangunkan Laravel, ralat API sering ditemui. Ralat ini mungkin datang daripada pelbagai sebab seperti ralat logik kod program, masalah pertanyaan pangkalan data atau kegagalan permintaan API luaran. Cara mengendalikan laporan ralat ini ialah isu utama Artikel ini akan menggunakan contoh kod khusus untuk menunjukkan cara mengendalikan laporan ralat API Laravel dengan berkesan. 1. Ralat pengendalian dalam Laravel

Panduan Penggunaan API Oracle: Meneroka Teknologi Antaramuka Data Panduan Penggunaan API Oracle: Meneroka Teknologi Antaramuka Data Mar 07, 2024 am 11:12 AM

Oracle ialah penyedia sistem pengurusan pangkalan data yang terkenal di dunia, dan APInya (Antara Muka Pengaturcaraan Aplikasi) ialah alat berkuasa yang membantu pembangun berinteraksi dan menyepadukan dengan mudah dengan pangkalan data Oracle. Dalam artikel ini, kami akan menyelidiki panduan penggunaan API Oracle, menunjukkan kepada pembaca cara menggunakan teknologi antara muka data semasa proses pembangunan dan menyediakan contoh kod khusus. 1. Oracle

Lima projek sumber terbuka bahasa Go yang dipilih untuk membawa anda meneroka dunia teknologi Lima projek sumber terbuka bahasa Go yang dipilih untuk membawa anda meneroka dunia teknologi Jan 30, 2024 am 09:08 AM

Dalam era perkembangan teknologi yang pesat hari ini, bahasa pengaturcaraan bermunculan seperti cendawan selepas hujan. Salah satu bahasa yang telah menarik perhatian ramai ialah bahasa Go, yang digemari oleh ramai pembangun kerana kesederhanaan, kecekapan, keselamatan serentak dan ciri-ciri lain. Bahasa Go terkenal dengan ekosistemnya yang kukuh dengan banyak projek sumber terbuka yang sangat baik. Artikel ini akan memperkenalkan lima projek sumber terbuka bahasa Go yang dipilih dan membawa pembaca untuk meneroka dunia projek sumber terbuka bahasa Go. KubernetesKubernetes ialah enjin orkestrasi kontena sumber terbuka untuk automatik

Analisis strategi integrasi API Oracle: mencapai komunikasi lancar antara sistem Analisis strategi integrasi API Oracle: mencapai komunikasi lancar antara sistem Mar 07, 2024 pm 10:09 PM

Analisis strategi penyepaduan API Oracle: Untuk mencapai komunikasi yang lancar antara sistem, contoh kod khusus diperlukan Dalam era digital hari ini, sistem perusahaan dalaman perlu berkomunikasi antara satu sama lain dan berkongsi data, dan Oracle API ialah salah satu alat penting untuk membantu mencapai kelancaran. komunikasi antara sistem. Artikel ini akan bermula dengan konsep dan prinsip asas OracleAPI, meneroka strategi penyepaduan API, dan akhirnya memberikan contoh kod khusus untuk membantu pembaca memahami dan menggunakan OracleAPI dengan lebih baik. 1. API Oracle Asas

Bagaimana untuk melumpuhkan kes ujian di Maven? Bagaimana untuk melumpuhkan kes ujian di Maven? Feb 26, 2024 am 09:57 AM

Maven ialah alat pengurusan projek sumber terbuka yang biasa digunakan untuk tugas seperti membina projek Java, mengurus kebergantungan dan menerbitkan dokumen. Apabila menggunakan Maven untuk binaan projek, kadangkala kita mahu mengabaikan fasa ujian apabila melaksanakan arahan seperti mvnpackage, yang akan meningkatkan kelajuan binaan dalam beberapa kes, terutamanya apabila prototaip atau persekitaran ujian perlu dibina dengan cepat. Artikel ini akan memperincikan cara mengabaikan fasa ujian dalam Maven, dengan contoh kod tertentu. Mengapa Ujian Sering Diabaikan Semasa Pembangunan Projek

See all articles