ホームページ  >  記事  >  バックエンド開発  >  Python単体テストはAPI自動化テストを実装します_python

Python単体テストはAPI自動化テストを実装します_python

不言
不言オリジナル
2018-04-04 16:44:551874ブラウズ

この記事では、主に API 自動テストを実装するための Python 単体テストの方法を詳しく紹介します。興味のある方は参考にしてください。Python を書く友人は、プロジェクトのテストの重要性を知っておくべきです。自動テスト スクリプトを作成しました。

最近、私は会社のプロジェクトで API テストを担当しています。 API テストを整理するための簡単な例を次に示します。



まず、get、post、put メソッドを含む RESTful API インターフェイス ファイル testpost.py を作成します

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from flask import request
from flask_restful import Resource
from flask_restful import reqparse


test_praser = reqparse.RequestParser()
test_praser.add_argument('ddos')


class TestPost(Resource):
  def post(self, PostData):
    data = request.get_json()
    user = User('wangjing')
    if data['ddos']:
     return {'hello': 'uese', "PostData": PostData, 'ddos': 'data[\'ddos\']'}
    return {'hello': 'uese', "PostData": PostData}

  def get(self, PostData):
    data = request.args
    if data and data['ddos']:
      return "hello" + PostData + data['ddos'], 200
    return {'hello': 'uese', "PostData": PostData}

  def put(self, PostData):
    data = test_praser.parse_args()
    if data and data['ddos']:
      return "hello" + PostData + data['ddos'], 200
    return {'hello': 'uese', "PostData": PostData}

ps: request の値として、ここで一般的に使用される 3 つのメソッドを定義しました:

post メソッド: request.get_json()、API を呼び出すとき、値は json メソッドで渡されます
get および put メソッド: request.args または reqparse.RequestParser()、API を呼び出すとき、値は string で渡されます

excondly、blueprint fileinit.py

rreee

thenを秒間定義し、テストスクリプトtestpostm.postm.py

rreee


psを記述します:呼び出しAPI URLは主にapi.url_forを使用しますflask_restful、または flask の url_for、これら 2 つのメソッドの具体的な使用法についてお話しましょう

flask_restful の api.url_for の説明

api.url_for(TestPost,PostData='adb')、ここで TestPost は、 RESTful API インターフェース ファイルで定義されたクラス。これは、api.add_resource(TestPost, '//postMeth') を通じてクラスを追加することで、API ブループリントですでに定義されているためです

flask の url_for

の使用手順

文字列 testPostb 内の
url_for('testPostb.testpost', PostData='adb', ddos​​='123'), 'testPostb.testpost' はブループリントの名前を参照します。つまり、testPostb = Blueprint('testPostb ' , name) のブループリント ('testPostb', name) の testPostb。
testpost は、ブループリント内のエンドポイントのエンドポイント名を指します。flask_restful では、api.add_resource(TestPost, '//postMeth') のクラス名 TestPost の小文字を指します。


テスト スクリプトを開始します。

#!/usr/bin/env python
  # -*- coding: utf-8 -*-
  from flask import Blueprint
  from flask_restful import Api
  from testpost import TestPost

  testPostb = Blueprint('testPostb', __name__)
  api = Api(testPostb)
  api.add_resource(TestPost, &#39;/<string:PostData>/postMeth&#39;)

簡単な要約:

url_for によって渡される値は、リクエストの値と対応する関係があります。最後の値は flask_restful のエンドポイント メソッドであり、api.add_resource のクラス名の小文字である必要があります。 。

関連する推奨事項:

unittestを使用してinterface_pythonをテストする方法

python+requests+unittest APIインターフェースのテストの問題

以上がPython単体テストはAPI自動化テストを実装します_pythonの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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