目次: はじめに
序文
1. あなたの会社のインターフェーステストプロセスは何ですか?
XXプロジェクトでは、主にXXインターフェース、XXインターフェース、XXインターフェースなどのインターフェーステストを行っています。
まず、開発者から API インターフェイス ドキュメントを入手して、インターフェイス アドレス、リクエスト メソッド、入力パラメーター、出力パラメーター、トークン認証、戻り形式、その他の情報を含むインターフェイス ビジネスを理解します。
次に、Postman ツールまたは Jmeter ツールを使用してインターフェイス テストを実行します。Jmeter を使用するための一般的な手順は次のとおりです:
1) まず、新しいスレッド グループを作成します。
2) 次に、新しい HTTP リクエストのデフォルト値を作成します。(インターフェースサーバーの IP とポートを入力します)
3) ユースケースごとに 1 つのリクエストで、多数の新しい HTTP リクエストを作成します。(インターフェイスのパス、アクセス方法、パラメータなどを入力します)
4) 次に、アサーションを作成し、結果ツリーを表示します。
最後に、ユースケースをデバッグして実行し、最後にインターフェイス テスト レポートを作成します。
実際、私たちもインターフェイスを作っているときに多くの問題に遭遇し、戻り値の文字化けなど(jmeterの設定ファイルをUTF-8エンコードに修正)など、独自に解決しました。
たとえば、トークン認証コードを取得するにはログインする必要があり、正規表現エクストラクターを使用してトークン値を抽出するには、次のリクエストでこの認証コードを使用する必要があります。
2. Cookie、セッション、トークンの違いを簡単に説明してください。
Cookie データはクライアントのブラウザに保存され、セッション データはサーバーに保存されます。トークンはインターフェイスのテスト中に使用される認証コードであり、通常、トークンはログイン後に取得でき、インターフェイスが要求されるたびにトークン パラメーターを取得する必要があります。
Cookie はあまり安全ではありません。ローカルに保存されている Cookie を分析したり、なりすましの Cookie を作成したりする可能性があります。セキュリティ上の理由から、セッションを使用する必要があります。セッションはサーバーに一定期間保存されます。
アクセス数が増加すると、サーバーのパフォーマンスがさらに消費されるため、サーバーのパフォーマンスを低下させるために Cookie を使用する必要があります。
ログイン情報などの重要な情報はセッションとして保存できますが、その他の情報は保存する必要があり、Cookie に配置できます。
3. インターフェイス テストの実行中にデータベースが比較されますか?
それは間違いなく、インターフェイスによって返されるデータはデータベースからのものであり、データに対するインターフェイスの操作にはデータベースの詳細な検査が必要であるためです。
4. HTTP プロトコルについての理解について教えてください。
ハイパーテキスト転送プロトコル、ポート 80、機能 (メモリ機能なし、高速) は、リクエストとレスポンスの 2 つの部分で構成されます。リクエストは、リクエスト ヘッダー、リクエスト ライン、リクエスト ボディで構成されます。
レスポンスはレスポンスヘッダ、レスポンス行、レスポンスボディで構成されますが、これまで当社のインターフェースはhttpsプロトコルを使用していました。
https http+ssl プロトコル ポート 443 セキュア ハイパーテキスト転送プロトコル。
5. get リクエストと post リクエストの違いは何ですか?
get リクエストと post リクエストはどちらもクライアントからサーバーに送信されるリクエスト メソッドであり、
get はパラメータをクリア テキストで送信し、サーバー リソースを要求する傾向があります。たとえば、Web サイトを開くと、
送信後のデータは目に見えず、安全性が高く、登録などのデータをサーバーに送信する傾向があります。
6. 応答ステータス コードとは何ですか?
1xx: 指示情報 – リクエストが受け入れられ、処理を継続していることを示します。
2xx: 成功 – リクエストが正常に受信、理解され、受け入れられたことを示します。
3xx: リダイレクト – リクエストを完了するにはさらに操作を実行する必要があります。
4xx: クライアント エラー –リクエストに構文エラーがあるか、リクエストを実行できません。
5xx: サーバー側エラー – サーバーは正当なリクエストを実行できませんでした。
7. インターフェースのテストプロセス中に多くのバグが見つかりましたか? あなたは栗を何個拾えるでしょうか?
この問題の答えは実は非常に簡単です。インターフェースのテストを行っている限り、必ずいくつかのバグが見つかります。よく見つかるバグを 2 ~ 3 つ挙げてください。
面接官がこの質問をするのは、主にあなたが本当にインターフェイス テストを行ったかどうかを知りたいからです。結局のところ、今では多くの友人の履歴書に偽名が書かれています (書かないと面接を受ける機会がなくなる可能性があります)。仕方がありません。生き残るためには、できます。 理解)例えば、ページ上の出金入力欄にマイナスの数字を入力しても絶対に提出されません(金額はフロントエンドページが決定します)。フロントエンドを使用しない場合は、インターフェイス ツールを直接使用してリクエストを送信し、負の数値を入力します。
(出金額データはサーバーが判断しないと仮定します) 残高=現在の残高(100)-出金金額(-100)なので、-100出金すると残高は200になります、つまり出金すればするほど残高が増えます。残高が大きくなります。
8. インターフェーステスト時に注意すべきテストポイントは何ですか?
画像アドレスがインターフェイスで返された場合は、画像 (サイズ、コンテンツ) を手動でテストする必要があります。
インターフェイスがクエリ関数を完了すると、返されたデータの並べ替えが表示されます。
インターフェイスをテストするときは、デフォルトに注意してください。パラメータの値と必須項目。
9. インターフェースのテストプロセス中にどのようなツールが使用されましたか?
postman または jmeter(5.1)
10. パケット キャプチャ ツールを使用したことがありますか? それの使い方?
以前、プロジェクトで fiddler パケット キャプチャ ツールを使用して、HTTP プロトコル リクエストをキャプチャしました。
fiddler を開くと、デフォルトのブラウザーはポート 127.0.0.1 8888 のプロキシを使用して構成されます。fiddler でフィルタリング ポリシーを設定した後、パケットをキャプチャして操作する必要がある Web サイトを開くと、パケットをキャプチャできます。
11. 郵便配達員さん、仕事ではどのようなプロセスを使っていますか?
ユース ケースを作成します。
最初に postman で URL 環境変数を設定します。
インターフェイスのユース ケースが属するモジュールに基づいて新しいコレクション管理を作成します。
コレクション内の別のモジュールにテスト ケースを入力します。
テスト ケースを入力するときに、アサーションを追加します。予想される結果に応じてテスト タブを開き、
Newman を介してエクスポートして実行します。
12. postman で環境変数を設定すると何の役に立つのですか?
前回のプロジェクトでは、インターフェーステストの環境として、開発環境、テスト環境などを用意していましたが、テスト時の便宜上、postmanに環境変数を設定し、すべてのインターフェースがその環境変数を参照することで、環境を切り替える必要がありませんでした。テスト対象システムのインターフェイスのホスト アドレスを変更します。
右上隅にある環境変数管理ボタンをクリックします。新しい環境変数を作成し、スクリプト内で { {変数名}}を使用してそれを呼び出します
13. インターフェーステストにおける関連付けとは何を意味しますか? 郵便配達員との関連付けを設定するにはどうすればよいですか?
アソシエーションは、前のインターフェイスの戻り値をインターセプトし、それを次のインターフェイスのパラメーターとして使用し、インターフェイスを直列に実行できるようにします。
postman で関連付けを設定する手順は次のとおりです。
まず、正規表現抽出または json 値抽出を通じて、前のインターフェイスから次のインターフェイスで必要な情報を取得します。
グローバル変数を設定するコードを使用して、取得した値をグローバル変数に保存します。
次のインターフェイスでは、
置き換える静的な値に { {グローバル変数}} を使用します。
14. Newman はどのように postman スクリプトを実行しますか?
Newman 実行スクリプト名には、HTML レポートなどを生成するためのパラメーターを追加することもできます。
15. プロジェクトでのインターフェイスのテストに jmeter を使用するにはどうすればよいですか?
スレッド グループの数を 1 に、サイクル数を 1 に設定します。
グローバル変数 URL を構成し、構成要素 - ユーザー定義変数を介して追加します。構成要素
http リクエストのデフォルト値を追加し、ユーザー定義の後に配置します。変数、
トランザクション コントローラーを追加する、テスト ケースを管理および整理する、
トランザクション コントロールに http リクエストを追加し、テスト ケースにインターフェイス リクエスト情報を追加する、
アサーションに対応するアサーション要素を追加する。
16. jmeter で関連付けを実装するにはどうすればよいですか?
まず、次のインターフェースで必要なパラメータ値を前のインターフェースから正規表現エクストラクターやjsonpathパーサーを通してインターセプトして変数に保存し、インターフェース作成時に${変数名}を通して取得します。
17. jmeter パラメータ化を実装するにはどのような方法がありますか?
構成コンポーネント - ユーザー定義変数コンポーネントはグローバル変数を設定できます。
関数アシスタント ダイアログ ボックスでは、パラメータ化としてランダムな文字列、ランダムな日付、および乱数を選択できます。構成内の
CSV データ セットを通じてパラメータ化として CSV ファイルを使用できます。設定するコンポーネント構成要素。
以下は、私がまとめた 2023 年の最も包括的なソフトウェア テスト エンジニア学習ナレッジ アーキテクチャ システム図です。 |
1. Python プログラミングの入門から習熟まで
2. インターフェース自動化プロジェクトの実践
3. Web自動化プロジェクトの実戦
4. アプリ自動化プロジェクトの実践
5. 一流メーカーの履歴書
6. DevOps システムのテストと開発
7. 一般的に使用される自動テストツール
8. JMeter パフォーマンス テスト
9. まとめ(最後にちょっとしたサプライズ)
人生は完全に平坦ではありませんが、あらゆる困難が私たちを強くしてくれます。どんなに挫折や困難があっても、勇気と粘り強さを持って努力すれば、自分を超えて自分だけの素晴らしさを創り出すことができます。
夢を追いかける途中、困難は成功へのはしごです。闘いに耐え、挫折をモチベーションに変え、果敢に課題に立ち向かうことによってのみ、私たちは成長と進歩を得ることができます。自分の力を信じて頑張ってください。
成功は偶然ではなく、闘争の必然的な結果です。勇気を出して旅に出て、汗を流して夢を解釈してください。困難を恐れず、しっかりと前に進んでください、その努力があなたをさらに強くします。自分の力を信じて勇敢に突き進んでください!