ネットワーク全体で最高のもの、インターフェイス テスト モックの詳細な概要、インターフェイス テストを完全にオープン...


序文

モックとは何ですか?

モックとは、開発プロセスで開発者が一部に依存する必要があるインターフェイスですが、相手が提供していない、環境など、つまり、そのようなものが存在しない場合、開発はモックサーバー独自のモックデータを使用します。これは、通常の開発や書かれた関数の自己テストに便利です。

現在のソフトウェア開発プロセス、特にアプリ部分では、必要な多くのデータとコンテンツがサーバー側 API から取得されますが、クライアントの開発時に API がサーバー側で開発され、フロントエンドからの呼び出しを待っているという保証はありません。

フロントエンド開発時にすでに誰かがインターフェイスを書いていて、それを直接呼び出してもOKだが、全体としては理想的な状態ですが、フロントエンド開発時にAPIを提供した学生が提供しなかった場合、この時点で模擬データが必要になります。

モックデータの具体的な手順

1. https://github.com/dreamhead/moco アドレスから moco-runner-0.11.0-standalone.jar をダウンロードできます。

2.login.json を作成します。

3. このパッケージを実行します;
java -jar moco-runner-0.10.0-standalone.jar http -p 12306 -c login.json
注:
モック サーバーと書き込まれた login.json ファイルは同じディレクトリにあります、-p: ポートを指定、-c: ファイルを指定します)

4. postman を使用して、モックのログイン インターフェイスが正常かどうかを確認します。

5. Python を使用してインターフェイス テスト ケースを作成し、ログイン インターフェイスを変更してそのトークンを取得するコードを検証してみましょう。

次に、ログインとビジネス用の JSON ファイルを作成します (つまり、ナンバー プレート番号を入力し、ナンバー プレート番号の表示期間とその駐車料金をクエリします)。

[
  {
    
    
    "request":
    {
    
    
      "method":"post",
      "uri":"/login",
      "json":
      {
    
    
        "username":"admin",
        "password":"admin",
        "roleID":22
      }
    },
    "response":
    {
    
    
      "file":"login_response.json"
    }
  },
  {
    
    
    "request":
    {
    
    
      "method":"post",
      "uri":"/parkinside",
      "json":
      {
    
    
        "token":"asdgfhh32456asfgrsfss",
        "vpl":"AJ3585"
      }
    },
    "response":
    {
    
    
      "file":"parkinside.json"
    }
  }
]

]

B1

ログインページの応答データ:login_response.json

 {
    
    
        "username":"wuya",
        "userID":22,
        "token":"asdgfhh32456asfgrsfss"
}

ビジネス側の応答データ: parkinside.json

{
    
    
  "vplInfo":
  {
    
    
    "userID":22,
    "username":"wuya",
    "vpl":"京AJ3585"
  },
  "Parking time long":"20小时18分钟",
  "Parking fee":"20$"
}

パッケージを実行します。

java -jar  moco-runner-1.3.0-standalone.jar http -p 12306 -c login.json

注:
モック サーバーとlogin.json ファイルは同じディレクトリにあります。 -p: は指定されたポートです。 -c は指定されたファイルです。

B2

次に、postman を使用して、モックのログイン インターフェイスとビジネス インターフェイスが正常であるかどうかを確認します。

B3

B4

Python を使用してインターフェイス テスト ケースを作成し、ログイン インターフェイスを検証し、そのトークンを取得します。
実装コード:

import unittest
import requests


class MockTest(unittest.TestCase):
    def setUp(self):
        self.url = 'http://localhost:12306'

    def tearDown(self):
        pass

    def test_login(self, url='/login'):
        '''验证登录的接口'''
        data = {
    
    
            "username": "admin",
            "password": "admin",
            "roleID": 22
        }
        r = requests.post(self.url + url, json=data)
        self.assertEqual(r.status_code, 200)
        self.assertEqual(r.json()['username'], 'wuya')

    def getToken(self, url='/login'):
        '''登录成功后获取token'''
        data = {
    
    
            "username": "admin",
            "password": "admin",
            "roleID": 22
        }
        r = requests.post(self.url + url, json=data)
        return r.json()['token']


    def test_parkingside(self, url='/parkinside'):
        '''验证查询停车时长接口'''
        data = {
    
    
            "token": self.getToken(),
            "vpl": "AJ3585"
        }
        r = requests.post(self.url + url, json=data)
        self.assertEqual(r.status_code, 200)
        self.assertEqual(r.json()['Parking time long'], u'20小时18分钟')
        self.assertEqual(r.json()['Parking fee'], u'20$')

if __name__ == '__main__':
    unittest.main(verbosity=2)
以下は、私がまとめた 2023 年の最も完全なソフトウェア テスト エンジニア学習知識アーキテクチャ システム図です。

1. Pythonプログラミングの入門から習得まで

画像の説明を追加してください

2.インターフェース自動化プロジェクトの実戦

画像の説明を追加してください

3. Web自動化プロジェクトの実戦

画像の説明を追加してください

4. アプリ自動化プロジェクトの実戦

画像の説明を追加してください

5. 一流メーカーの再開

画像の説明を追加してください

6. DevOps システムのテストと開発

画像の説明を追加してください

7. 一般的に使用される自動テストツール

画像の説明を追加してください

8、JMeterのパフォーマンステスト

画像の説明を追加してください

9. まとめ(最後にちょっとしたサプライズ)

前進し続ける限り、すべてのステップは成功へのはしごです。自分の能力を信じて努力し続けることで、理想と成果が得られるでしょう。どんなに困難な道でも、夢を抱きさえすれば、人生という大空に飛べる。

夢を胸に秘めて努力すれば、どんな困難も恐れることはありません。あらゆる汗が成功への一歩となります。自分を信じて進め、全能!

決意がある限り、登れない山はない、忍耐がある限り、越えられない峡はない、勇気がある限り、乗り越えられない困難はない。自分を信じて努力し続ければ、成功はあなたのものになります!

おすすめ

転載: blog.csdn.net/m0_70102063/article/details/131810126