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

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

Jun 18, 2023 pm 12:25 PM
api テスト beego

近年、インターネット技術の発展により、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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

furmark についてどう思いますか? - furmark はどのように資格があるとみなされますか? furmark についてどう思いますか? - furmark はどのように資格があるとみなされますか? Mar 19, 2024 am 09:25 AM

furmark についてどう思いますか? 1. メインインターフェイスで「実行モード」と「表示モード」を設定し、「テストモード」も調整して「開始」ボタンをクリックします。 2. しばらく待つと、グラフィックス カードのさまざまなパラメータを含むテスト結果が表示されます。ファーマークはどのように資格を取得しますか? 1. ファーマークベーキングマシンを使用し、約 30 分間結果を確認します。室温 19 度、ピーク値は 87 度で、基本的に 85 度前後で推移します。大型シャーシ、シャーシ ファン ポートが 5 つあり、前面に 2 つ、上部に 2 つ、背面に 1 つありますが、ファンは 1 つだけ取り付けられています。すべてのアクセサリはオーバークロックされていません。 2. 通常の状況では、グラフィックス カードの通常の温度は「30 ~ 85℃」である必要があります。 3. 周囲温度が高すぎる夏でも、通常の温度は「50〜85℃」です

新しい仙霞の冒険に参加しましょう! 「朱仙2」「武威検定」の事前ダウンロードが開始されました 新しい仙霞の冒険に参加しましょう! 「朱仙2」「武威検定」の事前ダウンロードが開始されました Apr 22, 2024 pm 12:50 PM

新作ファンタジー妖精MMORPG『朱仙2』の「武威試験」が4月23日より開始されます。原作から数千年後の朱仙大陸で、どのような新たな妖精冒険物語が繰り広げられるのでしょうか?六界の不滅の世界、フルタイムの不滅のアカデミー、自由な不滅の生活、そして不滅の世界のあらゆる種類の楽しみが、不滅の友人たちが直接探索するのを待っています! 「Wuwei Test」の事前ダウンロードが開始されました。Fairy friends は公式 Web サイトにアクセスしてダウンロードできます。サーバーが起動する前に、アクティベーション コードは事前ダウンロードとインストール後に使用できます。完成されました。 『朱仙2』「不作為試験」開催時間:4月23日10:00~5月6日23:59 小説『朱仙』を原作とした朱仙正統続編『朱仙2』の新たな童話冒険篇原作の世界観をベースにゲーム背景を設定。

国産FPSの新たな王者! 「オペレーション・デルタ」の戦場は予想を超える 国産FPSの新たな王者! 「オペレーション・デルタ」の戦場は予想を超える Mar 07, 2024 am 09:37 AM

「オペレーション デルタ」は本日(3月7日)より大規模PCテスト「コードネーム:ZERO」を開始する。先週末、上海で本作のオフラインフラッシュモブ体験イベントが開催され、幸運にも17173さんも参加することができました。前回のテストからわずか 4 か月以上しか離れていないため、この短期間で「オペレーション デルタ」がどのような新たなハイライトやサプライズをもたらすのか、興味が湧きます。 4か月以上前、私はオフライン試食会と最初のベータ版で「オペレーション デルタ」を体験しました。当時、ゲームは「危険なアクション」モードのみを開きました。しかし、デルタ作戦は当時としてはすでに印象的なものでした。大手メーカーがモバイルゲーム市場に群がる中、国際基準に匹敵するFPS

Laravel APIのエラー問題に対処する方法 Laravel APIのエラー問題に対処する方法 Mar 06, 2024 pm 05:18 PM

タイトル: Laravel API エラーの問題に対処する方法、具体的なコード例が必要です Laravel を開発していると、API エラーが頻繁に発生します。これらのエラーは、プログラム コードのロジック エラー、データベース クエリの問題、外部 API リクエストの失敗など、さまざまな理由で発生する可能性があります。これらのエラー レポートをどのように処理するかは重要な問題であり、この記事では、特定のコード例を使用して、Laravel API エラー レポートを効果的に処理する方法を示します。 1. Laravelでのエラー処理

テクノロジーの世界を探索できる、厳選された 5 つの Go 言語オープンソース プロジェクト テクノロジーの世界を探索できる、厳選された 5 つの Go 言語オープンソース プロジェクト Jan 30, 2024 am 09:08 AM

今日の急速な技術発展の時代では、雨後の筍のようにプログラミング言語が出現しています。多くの注目を集めている言語の 1 つは Go 言語です。Go 言語は、そのシンプルさ、効率性、同時実行の安全性などの機能により多くの開発者に愛されています。 Go 言語は、多くの優れたオープンソース プロジェクトがある強力なエコシステムで知られています。この記事では、厳選された 5 つの Go 言語オープンソース プロジェクトを紹介し、読者を Go 言語オープンソース プロジェクトの世界へ導きます。 KubernetesKubernetes は、自動化されたオープンソースのコンテナ オーケストレーション エンジンです。

Oracle API使用ガイド: データ・インタフェース・テクノロジの探求 Oracle API使用ガイド: データ・インタフェース・テクノロジの探求 Mar 07, 2024 am 11:12 AM

Oracle は世界的に有名なデータベース管理システム プロバイダーであり、その API (アプリケーション プログラミング インターフェイス) は、開発者が Oracle データベースと簡単に対話して統合するのに役立つ強力なツールです。この記事では、Oracle API 使用ガイドを詳しく掘り下げ、開発プロセス中にデータ インターフェイス テクノロジを利用する方法を読者に示し、具体的なコード例を示します。 1.オラクル

Oracle API統合戦略分析: システム間のシームレスな通信の実現 Oracle API統合戦略分析: システム間のシームレスな通信の実現 Mar 07, 2024 pm 10:09 PM

OracleAPI統合戦略分析: システム間のシームレスな通信を実現するには、特定のコード・サンプルが必要です。今日のデジタル時代では、社内の企業システムは相互に通信してデータを共有する必要があり、OracleAPIは、システム間のシームレスな通信を実現するための重要なツールの1つです。システム。この記事では、OracleAPIの基本概念と原則から始まり、API統合戦略について説明し、最後に読者がOracleAPIをよりよく理解して適用できるように具体的なコード例を示します。 1. 基本的な Oracle API

Maven でテスト ケースを無効にするにはどうすればよいですか? Maven でテスト ケースを無効にするにはどうすればよいですか? Feb 26, 2024 am 09:57 AM

Maven は、Java プロジェクトの構築、依存関係の管理、ドキュメントのリリースなどのタスクに一般的に使用されるオープンソースのプロジェクト管理ツールです。プロジェクトのビルドに Maven を使用する場合、mvnpackage などのコマンドを実行するときにテスト フェーズを無視したい場合があります。これにより、場合によってはビルド速度が向上します (特にプロトタイプまたはテスト環境を迅速に構築する必要がある場合)。この記事では、Maven でテスト フェーズを無視する方法を、具体的なコード例とともに詳しく説明します。テストを無視すべき理由 プロジェクト開発中は、次のことがよくあります。

See all articles