Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Aplikasi praktikal: Ujian API menggunakan Beego

Aplikasi praktikal: Ujian API menggunakan Beego

王林
王林asal
2023-06-18 12:25:192315semak imbas

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

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

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

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

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

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

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

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

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