【面接必需品】面接の加点に役立つインターフェース自動化のコア知識を凝縮(まとめ推奨)

私たちが日々接するインターフェースの自動化は、実際の目的から次の 2 つのカテゴリに分類できます。

模擬試験データ用

インターフェースの自動化

このインターフェース自動化のほとんどは 1 回で実行され、その目的は、機能テスト用のテストデータを作成し、人為的なデータにかかる時間と人件費を節約し、機能テスターのテスト効率を向上させることです。

機能テストの前にバグを早期に発見

インターフェースの自動化

このインターフェース自動化のワークフローは機能テストと同様で、インターフェースのテストケースを設計し、インターフェースのテストケースを実行する必要があります。

端的に言えば、インターフェースパラメータの要否、長さの文字型制限、入力パラメータの列挙値など、応答データが正しいかどうかなど、単一インターフェースの機能検証を行うことです。

この記事では、主に 2 番目のタイプのインターフェイス自動テストについて説明します。インターフェイス自動化の核心部分が実戦向けに凝縮されており、面接のボーナスポイントになるかもしれない。

  • インターフェースのテストケース設計

  • コード読み取りインターフェースのテストケース

  • pytest フレームワークを使用してインターフェイスの自動化を実現する

  • Python-requests を使用してインターフェース要求を完了します

  • jenkins+allure を使用して継続的なビルドとテスト レポートの出力を実現する

需要分析

  • Excel管理インターフェースのテストケース

  • テストケースを実行するための Pytest フレームワーク

  • Jenkins 統合ビルド

  • アリュールディスプレイテストレポート

データの準備

インターフェースを理解する

1. インターフェースリクエストメソッド:get

2. インターフェースリクエストヘッダー: {"Content-Type": "text/html;charset=utf-8"}

3. インターフェースのリクエスト本文: {"key": "*****************,"type": ""}

4.パラメータ値: type=guoji、keji、yule、デフォルトのトップ

5. ニュースリクエスト: http://v.juhe.cn/toutiao/index

備考: インターフェースによって要求されたキーは、集約データ プラットフォームによって適用される必要があります。

インターフェースのテストケースを設計する

インターフェイス テスト ケースの設計思想は、基本的に検証である機能テスト ケースの設計と一致しています。必須項目、文字型の長さ制限、入力パラメータの内容などです。

インターフェースの使用例は次のように設計されています: (参考のみ)

スクリプトディレクトリの設計

完全なインターフェイス自動テストは通常​​、データ、パブリック構成、インターフェイス スクリプト、レポートの 4 つの基本フォルダーに分割されます。

  • データ: データ フォルダーは、テスト ケース ドキュメントなどのデータを保存するために使用されます。

  • パブリック スクリプト: Common フォルダーは、パブリック メソッドのコード ファイルを保存するために使用されます (例: テスト ケース コード ファイルの読み取りなど)。

  • インターフェイス スクリプト: Request フォルダーは、ニュース ヘッドライン インターフェイス コード ファイルの取得など、さまざまなビジネス インターフェイスのコード ファイルを保存するために使用されます。

  • レポート: テスト結果レポートを保存するために使用されるレポート フォルダー

スクリプト設計関連のナレッジポイント

テストケースを読む

知識ポイント 1

Excelをxlrdで読み込む基本的な方法

1. ファイル オブジェクトを開きます: fb=xlrd.open_workbook('xls テスト ケース ファイル パス')

2. ワークシート名を取得します:sheetnames=fb.sheet_names ()

3. テスト ケースが存在するワークシートを開きます: casesheet=fb.get_by_name(''テスト ケースが存在するワークシートの名前)

4. テスト ケース (テーブルの行) の数を取得します: rows=casesheet.nrows

5. ワークシートのセル値を取得します: cell_value=casesheet.cell_values(x,y)。ここで、x と y はセルの横座標と縦座標です。

6. pytest のデコレータでパラメータ化する必要があるため、読み取ったセルをリスト テンプレートに結合する必要があります

例えば:

case1=[‘url_01’,’method_01’,{body_01 },’expect_01’]case2=[‘url_02’,’method_02’,{body_02 },’expect_02’]

(完全なコードを表示するには、左右にスワイプします)

pytest が読み取るために提供される最終データは次のようになります。

[[‘url_01’,’method_01’,{body_01 },’expect_01’],[‘url_02’,’method_02’,{body_02 },’expect_02’]]

(完全なコードを表示するには、左右にスワイプします)

コードセグメント:

リストを追加するにはメソッド append() を使用します。

 備考: cell_values() によって読み取られるセル データは、デフォルトで文字列 str 型になります。

知識ポイント 2:データ変換

1.urlとメソッドは文字列型なので変換する必要はありません

2. ヘッダーと本文は、json.loads() を通じて json 形式に変換する必要があります。

インターフェースリクエスト

知識ポイント 1

リクエストインターフェイス リクエストの基本

1. インターフェース要求を開始します。

resq=request.get()resq =request.post()

2. 応答データを取得し、json 形式に変換します: resq.json()

3. アサーション: アサート

4. 応答コンテンツの抽出: jsonpath 構文

response[‘msg’]response[‘data’][‘name’]

知識ポイント 2: pytest フレームワーク

環境のインストール:

pip install pytest

1. Pytest の使用規則: ユースケースとスクリプト ファイルは test で始まる必要があります

2. パラメーター化された実行のユースケース: Pytest デコレーター @pytest.mark.aprametrize()

a) 単一パラメーターの書き込み: @pytest.mark.parametrize('inData',[10,20])、最初のパラメーターは変数名、2 番目のパラメーターはパラメーター値です。pytest のデコレーターが自動的にループして読み取るため、パラメーター値を読み取るループを設定する必要はありません。

b) 複数のパラメータの書き方: (パラメータ値はタプル形式で記述します) @pytest.mark.parametrize('最初のパラメータの名前, 2番目のパラメータの名前'), [(最初のパラメータ、最初の引数の 2 番目の値)、(2 番目の引数の最初の値、2 番目の引数の 2 番目の値)]。

c) pytest のデコレーターが自動的にループして読み取るため、パラメーター値を読み取るループを設定する必要はありません。

3. スクリプトをローカルでデバッグして実行します。

インターフェイスは自動的にスクリプトを実行して allure-html レポートを生成します。このレポートは 2 つのステップに分かれています。

ステップ 1: alluredir はテスト レポート データ ソース ファイル json を生成し、レポート フォルダーに保存します。

pytest.main(['インターフェイスリクエストスクリプトファイル.py','-s','--alluredir=../report/'])

ステップ 2: レポート フォルダーからテスト レポート データ ソース ファイル json を HTML レポートに変換します。

os.system('allure 生成 ../report/ -o ../report_html/')

継続的ビルド

ナレッジポイント: jenkins ビルド + アリュール テスト レポート

1. Jenkins環境構築

2.魅力レポートプラグインをダウンロードする

3. 構築する

a) 構築: pytest コマンドを使用してスクリプトを実行し、魅力的なソース データを生成します。

b) ビルド後の操作: allure レポートを追加します (jenkins は自動的に allure ソース データを HTML レポートに結合します)

結果


乏しい力を終わらせる

最後に、私の記事を注意深く読んでくださった皆さんに感謝します。ファンの成長と注目をずっと見ていると、互恵性が常に必要とされます。それはそれほど価値のあるものではありませんが、もしそれがあれば、それを奪うことができます君はそれが要る:

これらの資料は、[ソフトウェア テスト] の友人にとって、最も包括的かつ完全な準備倉庫となるはずです。この倉庫は、最も困難な旅を乗り越える何万人ものテスト エンジニアにも同行してきました。そして、あなたにも役立つことを願っています。

加入我的软件测试交流群:110685036免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

ソフトウェアテストインタビューアプレット

ソフトウェア テストの質問バンクには、何百万人もの人が参加しました。誰が知っているのか!ネットワーク全体で最も包括的なクイズ ミニ プログラムです。携帯電話を使用して、地下鉄やバスの中でもクイズに答えることができます。

次の面接の質問セクションが取り上げられます。

1. ソフトウェアテストの基礎理論、2. Web、アプリ、インターフェース機能テスト、3. ネットワーク、4. データベース、5. Linux

6. Web、アプリ、インターフェイスの自動化、7. パフォーマンス テスト、8. プログラミングの基本、9. 時間面接の質問、10. 公開テストの質問、11. セキュリティ テスト、12. コンピューターの基本

入手方法:

おすすめ

転載: blog.csdn.net/myh919/article/details/131314306