職場では、ダウンロード インターフェイスに関する質問がよくあります: このタイプのインターフェイスは一般に比較的安定した機能を備えていますが、重要でもあり、回帰テストに時間がかかります。代替手段はありますか?
答えは間違いなく「はい」です。インターフェイス テスト/ UI 自動テスト から介入できます。この記事では主にインターフェイス テストについて説明し、2 つの方法を説明します。
ファイル ダウンロード インターフェイスの一般的な実装:
A. 一般的なプロジェクトでは、ファイルの保存/ダウンロードは企業のインフラストラクチャによって提供される機能であり、ほとんどの実装では、ダウンロードされたファイルの URL を取得し、ブラウザがダウンロード操作を実行します (結果は、ファイルを直接入力した場合と同じです)。ダウンロード URL) のため、最初にファイルのダウンロード URL を見つけてから、スクリプト/ツールを使用してダウンロードをシミュレートする必要があります。
B. ダウンロード機能を提供するには、ダウンロード インターフェイスを自分で作成する必要があります。
上記 2 つの方法のダウンロード原理は同じで、基本的にはダウンロード URL を取得し、ブラウザにダウンロードを実行させます。実際のプロジェクトでは、独自のプロジェクト タイプに応じて対応する URL を見つけることができます。
この記事では、上記 B の方法を使用します (ダウンロード インターフェースのデモは python+django で記述されており、ダウンロード ファイルの情報はインターフェースにハードコーディングされています。実装方法は後述します)。次のように:
-
URL:http://127.0.0.1:8001/case/down
-
请求方式:不限
方法 1: テストに必須のアーティファクトである postman を使用して、ダウンロード インターフェイスのスクリプトを作成する
1. 以下に示すように、URL、ヘッダー、およびその他の情報を postman に入力します。
2. [送信してダウンロード] をクリックすると、ダウンロードしたファイルの名前を変更するためのシステム ポップアップ ウィンドウが表示されます。
「保存」をクリックしてダウンロードを成功させます
方法 2: Python+requests を使用してインターフェイス テスト スクリプトを作成する
ファイルがダウンロードされるとき、バイナリ形式で転送されるため、sream=True パラメータを設定する必要があります。
バイナリ コンテンツをダウンロード ディレクトリ内のファイルに書き込みます
1 import requests
2 from contextlib import closing
3
4 url = 'http://127.0.0.1:8001/case/down'
5
6 with closing(requests.get(url, stream=True)) as response:
7 with open("文件名1.py", "wb") as file:
8 for data in response.iter_content(128):
9 file.write(data)
図に示すように、ファイルのダウンロードは成功しました。
最後に、私の記事を注意深く読んでくださった皆さんに感謝します。互恵性は常に必要です。それほど価値のあるものではありませんが、使用できる場合は、直接受け取ることができます。
この情報は、[ソフトウェア テスト] の友人にとって最も包括的かつ完全な準備倉庫となるはずです。この倉庫は、最も困難な旅を乗り越える何万人ものテスト エンジニアにも同行してきました。また、皆さんのお役に立てれば幸いです。