Pythonインターフェイステストインターフェイスリクエストメソッドのカプセル化

  はじめに

  以前に3つの記事について言及しました。

1. PythonテーブルテストのExcelテーブルデータ操作メソッドのカプセル化  。

2. Pythonインターフェイステスト用のインターフェイスキーワードカプセル化   。

3. Pythonインターフェーステスト用のインターフェースデータパッケージを取得します   。

  これで、インターフェースのテストケースが作成され、テストデータが取得されました。これは、インターフェースの呼び出しをシミュレートする方法です。メソッドは、get、post、put、deleteです。具体的には、どちらを選択するかを指定します。さまざまなインターフェースに従ってリクエストメソッドを指定する必要があります。呼び出します。便宜上、4つのメソッドはクラスにカプセル化され、要求の目的を達成するために、毎回クラス内のメソッドにアクセスするだけで済みます。

  インターフェイス要求のカプセル化

  すぐ下にコードを添付します。

__author__ = 'Leo' 

インポートリクエスト
インポートjson 

クラスApiRequest(object):
    "" " 
    请求方法
    " "" 
    #请求方法get 
    def get_method(self、url、data = None、header = None):

        ヘッダーがNoneでない場合:
            res = requests.get(url、params = data、headers = header)
        else:
            res = requests.get(url、params = data)
        return res.json()

    #请求方法post 
    def post_method(self、url、data = None、 header = None):
        ヘッダーがNoneでない場合の
        グローバル解像度
            res = requests.post(url、json = data、headers = header)
        else: 
            res = requests.post(url、json = data)
        if str(res)== "<Response [200]>":
            return res.json()
        else:
            return res.text 

    #请求方法put 
    def put_method(self、url、data = None、header = None):
        ifヘッダーis not None:
            res = requests.put(url、json = data、headers = header)
        else:
            res = requests.delete(url、json = data)
        return res.json()

    #请求方法delete 
    def delete_method(self、url 、data = None、header = None):
        ヘッダーがNoneでない場合:
            res = requests.delete(url、json = data、headers = header)
        else:
            res = requests.delete(url、json = data)
        return res.json ()

    #主メソッド
    def run_method(self、method、url、data = None、header = None):
        if method == 'get' or method == 'GET':
            res = self.get_method(url、data、header)
        elif method == 'post'またはmethod == 'POST':
            res = self.post_method(url、data、header)
        elif method == 'put'またはmethod == 'PUT':
            res = self.post_method(url、data、 header)
        elif method == 'delete'またはmethod == 'DELETE':
            res = self.post_method(url、data、header)
        else:
            res = "你的请求方式不正确!" 
        #return res 
        return json.dumps( res、ensure_ascii = False、indent = 4、sort_keys = True、セパレーター=( '、'、 ':'))

  

関連する知識ポイントを簡単に説明します。

Ensure_ascii:デフォルト値はTrueです。dictに非ASCII文字が含まれている場合、\ uXXXXの表示データと同様になります。Falseに設定すると、正常に表示できます。

インデント:負でない整数型である必要があります。0または空の場合、データは1行に表示されます。それ以外の場合は、インデントの数に応じて前の空白が折り返されて表示されます。出力されるjsonデータは、pretty-printed jsonとも呼ばれます。

セパレーター:セパレーター、実際には(item_separator、dict_separator)のタプル、デフォルトは( '、'、 ':');これは、ディクショナリー内のキーが「、」で区切られ、KEYと値が部屋は「:」で区切られます。

エンコーディング:デフォルトはUTF-8で、jsonデータのエンコーディング方法を設定します。

sort_keys:キーの値に従ってデータをソートします。

 

  テストを実行する

  メソッドがカプセル化されました。インターフェースデータが利用可能になり、リクエストメソッドが利用可能になったので、以前にカプセル化されたコードをテストして、実際のアクションで確認することもできます。

#get请求
if __name__ == ' __main__ ':
    url = "http://httpbin.org/get" 
    ir = ApiRequest()
    result = ir.run_method(url = url、method = 'get')
    print(result)

  演算結果:

 

 

#post请求
url2 = "http://httpbin.org/post" 
ir2 = ApiRequest()
data = {'id': '测试'} 
result = ir2.run_method(url = url2、method = 'post'、data =データ)
印刷(結果)

演算結果:

 

 

  一部の注意深い人々は疑問を抱くかもしれません。ここでは、Excelのインターフェーステストデータは使用していません。以下で説明します。Excelで維持されているインターフェーステストデータを呼び出し、最初にデータを維持します。

 

  from basic_method import get_excelData 
    get_data = get_excelData.getData()
    print( "Get for to run key:"、get_data.get_is_run(1))
    print( "Get interface url:"、get_data.get_url(1))
    print( "Get interface requestメソッド: "、get_data.get_method(1))
    print(" Get interface request data: "、get_data.get_data(1))
    url2 = get_data.get_url(1)
    method = get_data.get_method(1)
    data = get_data.get_data( 1)
    ir2 = ApiRequest()
    結果= ir2.run_method(url = url2、method = method、data = data)
    print(結果)

  

演算結果:

 

 

  今回は、呼び出しプロセスがExcelからデータを取得し、カプセル化されたメソッドを介してシミュレートされた要求インターフェイスを要求します。以前にパッケージ化されたコードが正常に実行できることを証明します。

次に、別のリクエストメソッドを示します。

 

 

  まとめ

  上記のインターフェース要求メソッドのパッケージ化が完了し、以前に作成されたパッケージ化コードを一緒に使用して、自動テストフレームワークにコアコードを実装します。自動テストとテスト開発に興味のある友達は、QQテスト開発交換グループに参加できます:696400122。お互いに学び、共に進歩しましょう!

おすすめ

転載: www.cnblogs.com/liudinglong/p/12755730.html
おすすめ