> 백엔드 개발 > Golang > 실제 적용: Beego를 사용한 API 테스트

실제 적용: Beego를 사용한 API 테스트

王林
풀어 주다: 2023-06-18 12:25:19
원래의
2353명이 탐색했습니다.

최근 인터넷 기술의 발달로 인해 API(Application Programing Interface) 개발 및 테스트가 인터넷 기업에게 중요한 부분이 되었습니다. API 테스트의 간단한 프로세스, 높은 효율성 및 높은 코드 재사용률로 인해 점점 더 많은 인터넷 회사에서 자동화된 테스트를 사용하여 API 인터페이스를 테스트하기 시작했습니다. 이 기사에서는 API 테스트에 Beego 프레임워크를 사용하는 방법을 자세히 소개합니다.

1. Beego 프레임워크 소개

Beego는 효율성, 단순성 및 배우기 쉬운 특성으로 인해 점점 더 많은 개발자가 사용하는 Go 언어 기반의 웹 프레임워크입니다. 또한 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 .Browser: Chrome

6. 코드 편집기: Sublime Text 3

7. 데이터베이스: MySQL

3. 설치 및 구성

1. 먼저 Go 언어 개발을 설치해야 합니다. 환경. 공식 홈페이지(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 웹사이트로 이동하세요: https://dev.mysql.com/downloads/mysql/

MySQL 설치 시 내장된 MySQL Workbench를 설치하는 것이 좋습니다.

4. Beego 프로젝트 만들기

Beego 프로젝트를 만드는 방법에는 명령줄이나 Beego에서 제공하는 도구 웹을 사용할 수 있습니다. 이 기사에서는 명령줄을 사용하여 "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, 사용자 이름, 비밀번호 및 생성된_at의 네 가지 필드가 포함된 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"를 컨트롤과 연결합니다. Controllers.UserController{} 장치 바인딩. 또한 ORM(Object Relational Mapping) 기술을 사용하여 MySQL 데이터베이스와 상호 작용하고, RegisterDataBase() 메서드를 사용하여 기본 데이터베이스를 등록하고, 데이터베이스에 사용자 테이블을 생성하고, User 구조를 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 인터페이스. 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 요청을 통해 이 사용자를 얻은 다음, carry.So() 메서드를 사용하여 사용자 정보를 얻는 HTTP 상태가 200인지 확인합니다.

7. 테스트 시작

명령줄을 통해 MyAPI 프로젝트 디렉터리를 입력하고 다음 명령을 실행합니다.

go test ./tests/...
로그인 후 복사

이 명령은 MyAPI 프로젝트의 모든 테스트 사례를 테스트하고 테스트 결과를 표시합니다.

8. 요약

이 글에서는 API 테스트에 Beego를 사용하는 기본 프로세스를 소개합니다. Beego 프레임워크와 GoConvey 도구의 도움으로 API 테스트를 더 잘 수행하고 프로젝트에 대한 더 나은 보증을 제공할 수 있습니다. 동시에 우리는 새로운 기술과 도구를 계속해서 배우고, 개발과 테스트에 대한 열정을 유지하며, 기술 수준을 향상시켜야 합니다.

위 내용은 실제 적용: Beego를 사용한 API 테스트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿