内容:ガイド
序文
面接の質問: あなたの会社のインターフェーステストプロセスは何ですか?
XXプロジェクトでは、主にXXインターフェース、XXインターフェース、XXインターフェースなどのインターフェーステストを行いました。
1. まず、開発者から API インターフェイスドキュメントを入手して、インターフェイスアドレス、リクエストメソッド、入力パラメータ、出力パラメータ、トークン認証、戻り形式、その他の情報を含むインターフェイスビジネスを理解します。
2. 次に、Postman ツールまたは Jmeter ツールを使用してインターフェイス テストを実行します。一般に、Jmeter を使用する手順は次のとおりです。
まず、新しいスレッド グループを作成します。
次に、新しい HTTP リクエストのデフォルト値を作成します。(インターフェースサーバーの IP とポートを入力します);
1 つのユースケースに対して 1 つのリクエストとして、多数の HTTP リクエストを作成します。(インターフェイスのパス、アクセス方法、パラメーターなどを入力します)
次に、アサーションを作成し、結果ツリーを表示します。
最後にユースケースをデバッグして実行し、最後にインターフェイステストレポートを作成します。
実際、インターフェイスを作成するときにもかなり多くの問題に遭遇しましたが、戻り値の文字化け(jmeter の設定ファイルを UTF-8 エンコーディングに変更)、ログインが必要であるなど、独自に解決しました。トークン認証コードを取得します。この認証コードは次のリクエストで使用する必要があります (正規表現エクストラクターを使用してトークン値を抽出するなど)。
インタビューの質問: Cookie、セッション、トークンの違いを簡単に説明してください。
Cookie データはクライアントのブラウザに保存され、セッション データはサーバーに保存されます。トークンはインターフェイス テスト用の認証コードであり、通常、トークンはログイン後にのみ取得でき、インターフェイスが要求されるたびにトークン パラメーターを取得する必要があります。
Cookie は安全性が高くなく、ローカルに保存されている Cookie を解析したり、Cookie を不正行為したりする可能性があるため、セキュリティを考慮するとセッションを使用する必要があり、セッションはサーバー上に一定期間保存されます。アクセス数が増加すると、サーバーのパフォーマンスが低下するため、サーバーのパフォーマンスを低下させることを考慮して、Cookie を使用する必要があります。
ログイン情報などの重要な情報はセッションとして保存できますが、保存が必要なその他の情報は Cookie に配置できます。
インタビューの質問: インターフェイス テストのテスト ケースをどのように設計するか? (尋ねなければなりません)
インターフェイスのテストでは、入力パラメーターの形式とインターフェイスのビジネス ロジックの変更が考慮されるのが一般的で、インターフェイス テスト ケースの設計には、一般的に等価クラス、境界値、およびシナリオ手法が採用されます。
インターフェイステスト設計のテストケースの考え方は次のとおりです。
インターフェースビジネスロジックテスト? (良い例)
インターフェースロジックテストとは、ビジネスロジックの記述、入力パラメータ、出力値に従い、通常の入力条件下で得られる出力値を指します。
テストが正しいかどうか、つまり外部に提供されるインターフェースサービスが正常に動作するかどうかをテストすることです。
モジュールインターフェースのテスト? (反例)
モジュールインターフェーステストは、異常時のデータの安全性とプログラムのロジックの正しさを確認するためのものです。
モジュール インターフェイス テストには、主に次の側面が含まれます:
認証コード トークン例外 (認証コードが空 <認証コードなし>、間違った認証コード、期限切れの認証コード)。
他のパラメータが異常です。
必須項目のチェック:
パラメータの長さ、タイプ、形式 例外:
一般パラメータ: (数値、文字列、日付)
パラメータの長さ: 6 ~ 18 桁。またはIDカード、電話の長さ。
パラメータの種類: 数字 (精度)、文字、中国語、スペースを含むパラメータ、特殊文字。
日付形式: 日付: 年、月、日、年、月、日、時、分、秒、日付形式 (/、-、: などを含む)。
エラーコード例外のカバレッジ。
インターフェーステストのその他の懸念事項
インターフェースにページめくりがある場合、ページ番号とページ数の異常値テストを
データベースに追加、削除、変更し、インターフェースのポスト操作が完了した後、新しいデータが正常に行われているかどうかを確認します。リストページインターフェースを介した前の投稿との一貫性
インターフェイスから返された画像アドレスが開くことができるかどうか、画像のサイズが要件を満たしているかどうか、
出力パラメータがリンクされている場合、2 つのパラメータによって返される実際の結果が要件を満たしているかどうかを検証する必要があります。すべての
リストページインターフェイスはソート値を考慮する必要があり、
すべての関数は古いバージョンとの互換性を考慮する必要があります。
インタビューの質問: インターフェイス テストの実行中にデータベースを比較しますか?
確かに、インターフェイスから返されるデータはデータベースから取得され、インターフェイス上のデータの操作では詳細なデータベース チェックを実行する必要があるためです。
面接の質問: 応答ステータス コードとは何ですか?
1xx: 指示 – リクエストが受け入れられ、処理を続行することを示します。
2xx: 成功 – リクエストが正常に受信され、理解され、受け入れられたことを示します。
3xx: リダイレクト – リクエストを完了するにはさらに操作を実行する必要があります。
4xx: クライアント エラー –リクエストに構文エラーがある、またはリクエストが満たされていない
5xx: サーバー側エラー – サーバーは正当なリクエストを実行できませんでした
インタビューの質問: インターフェイスのテスト中に多くのバグが見つかりましたか? いくつか例を挙げていただけますか?
この質問に戻るのは実際には非常に簡単です。インターフェイスのテストを行っている限り、常にいくつかのバグを見つけることができます。通常見つかるバグを 2 ~ 3 つ挙げてください。
面接官がこの質問をするのは、主にあなたが本当にインターフェイステストを行ったかどうかを知りたいからです。結局のところ、今では多くの友人の履歴書が偽物です(書かなければ、おそらく面接の機会はありません。まさか、生きていくためには分かるだろう)
例えば、現金出金の入力欄ですが、ページ内でマイナスの数字を入力すると絶対に提出できません(フロントエンドのページで金額を判断します)。 -end、インターフェイス ツールを直接使用してリクエストを送信し、負の数を入力します。(出金額データはサーバーが判断しないと仮定します) 残高=現在の残高(100)-出金金額(-100)、出金-100すると残高は200となり、出金が多ければ多いほど残高が多くなります。
面接の質問: インターフェイステストで注意すべきテストポイントは何ですか?
画像アドレスはインターフェイスで返され、画像 (サイズ、コンテンツ) を手動でテストする必要があります。
インターフェイスがクエリ関数を完了すると、返されたデータが並べ替えられて表示されます。
インターフェイスをテストするときは、次の点に注意してください。パラメータのデフォルト値と必須項目。
インタビューの質問: インターフェースがテストを実行し、比較のための結果を返した後、一般にコンテンツのどの部分が比較されますか?
前に比較する必要があるのは、ステータス コードを返し、次に他の主要なコンテンツを比較して返すことです。
面接の質問: これまでにパケット キャプチャ ツールを使用したことがありますか? どのように使用されますか?
以前、プロジェクトで fiddler パケット キャプチャ ツールを使用して、HTTP プロトコル リクエストをキャプチャしました。
fiddler を開くと、デフォルトのブラウザーはポート 127.0.0.1 8888 上のプロキシで構成されます。fiddler がフィルタリング ポリシーを設定した後、パケットをキャプチャして操作する必要がある Web サイトを開くと、パケットをキャプチャできるようになります。
インタビューの質問: プロジェクトのインターフェイス テストに jmeter を使用するにはどうすればよいですか?
スレッド グループの数を 1 に、サイクル数を 1 に設定します。
構成要素 (ユーザー定義変数) を介して追加するグローバル変数 URL を構成します。
構成要素 http リクエストのデフォルト値を追加し、それをユーザー定義変数、
トランザクション コントローラーの追加 テスト ケースの管理と整理、
トランザクション コントロールに http リクエストを追加してテスト ケースにインターフェイス リクエスト情報を追加、
アサーションに対応するアサーション要素を追加。
インタビューの質問: jmeter でアサーションを設定するにはどうすればよいですか?
右クリック リクエスト→アサーション→レスポンス アサーション→レスポンス アサーション インターフェイス 確認・比較する項目を入力します アサーション設定後、インターフェイステストを実行します パスした場合、結果ツリーの表示時にプロンプトは表示されません失敗すると赤色のエラーが表示されます。インターフェイスから返されるデータが json データの場合は、json アサーションを追加することもできます
インタビューの質問: jmeter で関連付けを実装するにはどうすればよいですか?
まず、正規表現エクストラクターまたは jsonpath パーサーを通じて、次のインターフェースで必要なパラメーター値を前のインターフェースから取得して変数に保存し、インターフェースの作成時に ${変数名} を使用して取得します。
インタビューの質問: jmeter のパラメータ化を実現するにはどのような方法がありますか?
構成要素 - ユーザー定義の変数要素はグローバル変数を設定できます。
[関数アシスタント] ダイアログ ボックスでは、ランダムな文字列、ランダムな日付、および乱数をパラメーターとして選択できます。また、
csv ファイルをパラメーターとして使用し、構成コンポーネントの csv データ セット構成コンポーネントを通じて設定できます。
以下は、私がまとめた 2023 年の最も完全なソフトウェア テスト エンジニア学習知識アーキテクチャ システム図です。 |
1. Pythonプログラミングの入門から習得まで
2.インターフェース自動化プロジェクトの実戦
3. Web自動化プロジェクトの実戦
4. アプリ自動化プロジェクトの実戦
5. 一流メーカーの再開
6. DevOps システムのテストと開発
7. 一般的に使用される自動テストツール
8、JMeterのパフォーマンステスト
9. まとめ(最後にちょっとしたサプライズ)
過去の失敗に足を引っ張られないようにしてください。あらゆる努力はチャンスの温床となるからです。自信と勇気を持って闘いの章を書き、困難を克服し、夢を追いましょう。
逆境の中で培われる力は計り知れないので、挑戦を恐れないでください。安楽を貪らず、心の中にある夢を追いかけ、希望に汗を流してください。自分の力と粘り強さを信じて、勇敢に進んで、自分だけの輝かしい人生を創造し、輝かしい人生を咲かせましょう。
でこぼこ道でもひるむことなく、戦い続けてください。たとえ挫折や苦難に直面しても、私たちは自信と勇気を維持しなければなりません。自分の能力と可能性を信じ、勇敢に前進し、自らの輝かしい人生を創造し、不滅の伝説を築き、華麗なる人生の一章を咲かせましょう。