Maison > développement back-end > Golang > le corps du texte

Application pratique : tests d'API avec Beego

王林
Libérer: 2023-06-18 12:25:19
original
2280 Les gens l'ont consulté

Ces dernières années, en raison du développement de la technologie Internet, le développement et les tests d'API (Application Programming Interface) sont devenus une partie importante des sociétés Internet. En raison de la simplicité du processus de test des API, de la haute efficacité et du taux élevé de réutilisation du code, de plus en plus de sociétés Internet commencent à utiliser des tests automatisés pour tester leurs interfaces API. Cet article présentera en détail comment utiliser le framework Beego pour les tests d'API.

1. Introduction au framework Beego

Beego est un framework web basé sur le langage Go En raison de son efficacité, de sa simplicité et de ses caractéristiques faciles à prendre en main, il est utilisé par de plus en plus de développeurs. En outre, Beego fournit également une multitude d'outils et de plug-ins, notamment ORM, Websocket, Redis, CORS, Swagger et d'autres outils, qui peuvent considérablement améliorer l'efficacité du développement.

2. Outils de développement

Avant de commencer le développement, vous devez d'abord préparer les outils de développement nécessaires. L'environnement de développement utilisé dans cet article est le suivant :

1. Système d'exploitation : Windows 10

Version 2.Go : go1.11.4 windows/amd64

3. Version Beego : 1.12.1

4. GoConvey

5 .Navigateur : Chrome

6. Éditeur de code : Sublime Text 3

7. Base de données : MySQL

3. Installation et configuration

1 Installer Go

Tout d'abord, vous devez installer le développement du langage Go. environnement. Téléchargez le package d'installation correspondant sur le site officiel (https://golang.org/dl/). Une fois le téléchargement terminé, double-cliquez pour exécuter le package d'installation afin de terminer l'installation.

2. Installez Beego

Après avoir installé le langage Go, vous devez installer le framework Beego. Beego peut être installé via la commande suivante :

go get -u github.com/astaxie/beego
Copier après la connexion

Cette commande téléchargera le framework Beego sur le chemin GOPATH.

3. Installez GoConvey

GoConvey est un framework de tests unitaires pour le langage Go qui peut détecter tous les cas de test du projet et exécuter automatiquement ces cas de test. La méthode pour installer GoConvey est la suivante :

go get github.com/smartystreets/goconvey
Copier après la connexion

4. Installer MySQL

Dans cet article, nous utilisons la base de données MySQL. Veuillez vous rendre sur le site officiel de MySQL pour télécharger et installer : https://dev.mysql.com/downloads/mysql/

Lors de l'installation de MySQL, il est recommandé d'installer le MySQL Workbench intégré.

4. Créer un projet Beego

Il existe de nombreuses façons de créer un projet Beego. Vous pouvez utiliser la ligne de commande ou l'outil web fourni par Beego. Dans cet article, nous utilisons la ligne de commande pour créer un projet appelé « MyAPI ». Entrez la commande suivante dans la ligne de commande :

bee new MyAPI
Copier après la connexion

Ensuite un projet Beego nommé "MyAPI" sera créé dans le répertoire courant.

Ensuite, nous devons utiliser la base de données MySQL installée précédemment. Dans MySQL Workbench, créez une nouvelle base de données et nommez-la MyAPI, puis exécutez l'instruction SQL suivante :

CREATE TABLE users
(
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(20),
password VARCHAR(50),
created_at TIMESTAMP DEFAULT NOW()
)
Copier après la connexion

Cette instruction SQL crée une table nommée utilisateurs, qui contient quatre champs : id, nom d'utilisateur, mot de passe et créé_at.

Ensuite, nous devons accorder des autorisations d'accès à la base de données. Ouvrez MySQL Workbench, sélectionnez Base de données -> Utilisateurs et privilèges -> Ajouter un compte, créez un nouvel utilisateur et attribuez à l'utilisateur des autorisations de lecture et d'écriture sur la base de données MyAPI.

5. Écrire l'API

Après avoir créé le projet Beego, nous devons ajouter quelques interfaces API au projet pour les tests. Dans le main.go du projet MyAPI, nous ajoutons le code suivant :

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()
}
Copier après la connexion

Dans le code ci-dessus, nous utilisons la méthode beego.Router() pour connecter le chemin API "/api/user/:id" avec le contrôle controllers.UserController{} Liaison de périphérique. Nous utilisons également la technologie ORM (Object Relational Mapping) pour interagir avec la base de données MySQL, enregistrer la base de données par défaut à l'aide de la méthode RegisterDataBase(), créer la table des utilisateurs dans la base de données et enregistrer la structure User en tant que modèle ORM.

Lors de l'écriture du contrôleur controllers.UserController{}, nous avons ajouté le code suivant pour gérer la requête HTTP GET et obtenir un utilisateur spécifique :

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()
}
Copier après la connexion

6. Testez l'interface API

Dans cet article, nous utilisons GoConvey pour tester le Interface API. Nous devons ajouter un répertoire nommé tests au projet Beego et créer un fichier de test nommé user_test.go dans le répertoire.

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)
    })
}
Copier après la connexion

Pour le code ci-dessus, nous avons utilisé le package de transmission fourni par GoConvey pour tester l'interface API. Nous utilisons d'abord ORM pour créer un nouvel utilisateur nommé testuser et obtenons cet utilisateur via une requête HTTP GET, puis utilisons la méthode transmettre.So() pour déterminer si l'état HTTP d'obtention des informations utilisateur est 200.

7. Démarrez le test

Entrez le répertoire du projet MyAPI via la ligne de commande et exécutez la commande suivante :

go test ./tests/...
Copier après la connexion

Cette commande testera tous les cas de test du projet MyAPI et affichera les résultats du test.

8. Résumé

Cet article présente le processus de base d'utilisation de Beego pour les tests d'API. Avec l'aide du framework Beego et de l'outil GoConvey, les tests API peuvent être mieux réalisés et offrir une meilleure garantie pour nos projets. Dans le même temps, nous devons également continuer à apprendre de nouvelles technologies et de nouveaux outils, maintenir notre enthousiasme pour le développement et les tests et améliorer notre niveau technique.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!