はじめに
以前に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。お互いに学び、共に進歩しましょう!