ホームページ  >  記事  >  バックエンド開発  >  実践応用:Beegoを使ったAPIテスト

実践応用:Beegoを使ったAPIテスト

王林
王林オリジナル
2023-06-18 12:25:192271ブラウズ

近年、インターネット技術の発展により、API (Application Programming Interface) の開発とテストがインターネット企業にとって重要な役割を果たしています。 API テストのプロセスが単純で、効率が高く、コードの再利用率が高いため、ますます多くのインターネット企業が自動テストを使用して API インターフェイスをテストし始めています。この記事では、APIテストにBeegoフレームワークを使用する方法を詳しく紹介します。

1. Beego フレームワークの紹介

Beego は Go 言語をベースにした Web フレームワークであり、その効率性の高さ、シンプルさ、学習のしやすさにより、ますます多くの開発者に使用されています。 。さらに、Beego は、ORM、Websocket、Redis、CORS、Swagger などのツールやプラグインを豊富に提供しており、開発効率を大幅に向上させることができます。

2. 開発ツール

開発を開始する前に、必要な開発ツールを準備する必要があります。この記事で使用した開発環境は次のとおりです:

1. オペレーティング システム: Windows 10

2. Go バージョン: go1.11.4 windows/amd64

3. Beegoバージョン: 1.12. 1

4. テスト フレームワーク: GoConvey

5. ブラウザ: Chrome

6. コード エディター: Sublime Text 3

7.データベース: MySQL

3. インストールと構成

1. Go のインストール

まず、Go 言語開発環境をインストールする必要があります。公式 Web サイト (https://golang.org/dl/) から対応するインストール パッケージをダウンロードします。ダウンロードが完了したら、ダブルクリックしてインストール パッケージを実行し、インストールを完了します。

2. Beego のインストール

Go 言語をインストールした後、Beego フレームワークをインストールする必要があります。 Beego は、次のコマンドを使用してインストールできます。

go get -u github.com/astaxie/beego

このコマンドは、Beego フレームワークを GOPATH パスにダウンロードします。

3. GoConvey のインストール

GoConvey は、プロジェクト内のすべてのテスト ケースを検出し、これらのテスト ケースを自動的に実行できる Go 言語の単体テスト フレームワークです。 GoConvey のインストール方法は次のとおりです:

go get github.com/smartystreets/goconvey

4. MySQL のインストール

この記事では、MySQL データベースを使用します。ダウンロードしてインストールするには、MySQL の公式 Web サイトにアクセスしてください: https://dev.mysql.com/downloads/mysql/

MySQL をインストールするときは、組み込みの MySQL Workbench をインストールすることをお勧めします。

4. Beego プロジェクトの作成

Beego プロジェクトを作成するには、コマンド ラインまたは Beego が提供する Web ツールを使用する方法があります。この記事では、コマンド ラインを使用して「MyAPI」というプロジェクトを作成します。コマンドラインに次のコマンドを入力します:

bee new MyAPI

すると、「MyAPI」という名前の Beego プロジェクトが現在のディレクトリに作成されます。

次に、前にインストールした MySQL データベースを使用する必要があります。 MySQL Workbench で、新しいデータベースを作成し、MyAPI という名前を付け、次の SQL ステートメントを実行します。

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

この SQL ステートメントは、 id、username、password、created_at の 4 つのフィールドを含む users という名前のテーブルを作成します。

次に、データベースへのアクセス権限を付与する必要があります。 MySQL Workbench を開き、[データベース] -> [ユーザーと権限] -> [アカウントの追加] を選択し、新しいユーザーを作成し、そのユーザーに MyAPI データベースへの読み取りおよび書き込み権限を割り当てます。

5. API の作成

Beego プロジェクトを作成した後、テストのためにいくつかの API インターフェイスをプロジェクトに追加する必要があります。 MyAPI プロジェクトの main.go に、次のコードを追加します。

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

上記のコードでは、beego.Router() メソッドを使用して API パス「/api/user/:id」に接続します。 " tocontrollers.UserController {}このコントローラはバインドされています。また、ORM (オブジェクト リレーショナル マッピング) テクノロジを使用して、MySQL データベースと対話し、RegisterDataBase() メソッドを使用してデフォルト データベースを登録し、データベース内にユーザー テーブルを作成し、ユーザー構造を ORM モデルとして登録します。

controllers.UserController{} コントローラを作成するときに、HTTP GET リクエストを処理し、特定のユーザーを取得するために次のコードを追加しました:

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. API インターフェイスのテスト

この記事では、GoConvey を使用して API インターフェイスをテストします。 Tests という名前のディレクトリを Beego プロジェクトに追加し、そのディレクトリ内に user_test.go という名前のテスト ファイルを作成する必要があります。

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

上記のコードでは、GoConvey が提供するコンベア パッケージを使用して API インターフェイスをテストしました。まず、ORM を使用して testuser という名前の新しいユーザーを作成し、HTTP GET リクエストを通じてこのユーザーを取得します。次に、convey.So() メソッドを使用して、ユーザー情報を取得する HTTP ステータスが 200 であるかどうかを確認します。

7. テストを開始します

コマンド ラインから MyAPI プロジェクトのディレクトリを入力し、次のコマンドを実行します:

go test ./tests/...

このコマンドは、 MyAPI プロジェクト を開き、テスト結果を表示します。

8. 概要

この記事では、Beego を API テストに使用する基本的なプロセスを紹介します。 Beego フレームワークと GoConvey ツールの助けを借りて、API テストをより適切に実施し、プロジェクトにより良い保証を提供することができます。同時に、新しい技術やツールを学び続け、開発やテストに対する熱意を維持し、技術レベルを向上させることも必要です。

以上が実践応用:Beegoを使ったAPIテストの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。