MeterSphere チュートリアル: リスト データ アサーションの問題

発生した問題

今日は、メータースフィア プラットフォームを使用する過程で発生した問題を共有します。

自動化のためにプラットフォームを使用する場合の要件について、まずお話ししましょう。

ユースケース実行の安定性を可能な限り確保するために、アサーションを単純化しすぎることはできません。

たとえば、返されたステータス コードが 200 であると主張することはできません。少なくともいくつかのフィールドをチェックする必要があります。

また、テスト環境が頻繁にデータの削除などを行う場合、インタフェース内のテストデータに影響を与える可能性があり、ユースケースの安定的かつ正常な実行を可能な限り確保する必要があります。

次に、今日ユース ケースをデバッグするときにアサーションで発生した問題を見てみましょう。

インターフェイスの戻り結果は、次の形式の ID のリストです。

ac7eac6a85f614e4d4fba24b606b8bcc.png

上記で返されたデータについて、私のアサーションの考えは次のとおりです。データベースに移動して、要件を満たすデータを見つけ、そのようなリストをつなぎ合わせます。次に、プラットフォームのアサーション位置でアサーションを行います。

5683eb679a2c75553184e5b24c0f4a89.png

次に、プラットフォームで jsonpath を使用してアサーションを作成する場合、この比較のために、equal to、contain、または regular を選択して試してみると、アサーションの結果がすべて失敗することがわかりました。

7841114331d9f4c4214fc63c64d895fa.png

画面の前にいる注意深い友人が、アサーションが失敗する原因となった矛盾を発見したかどうかはわかりません。インターフェイスが jsonpath を使用して取得した結果を返した後、リスト内の各要素間にスペースがなく、Python スクリプトによって生成されたリストでは要素間にスペースがあるため、アサーションが失敗することが判明しました。

解決

問題を見つけた後、ここで採用する方法は次のとおりです。リストを文字列に変換し、出力された文字列がjsonpathを使用して取得した文字列と同じ形式であることを確認します。

quoteIds = '[{0}]'.format(','.join(map(str, quoteIds)))

c1547100280863de7312467d945f3a1c.png

ここから、いくつかの疑問が生じます。

1. テスターの多くの操作は、プラットフォーム化後に簡素化できますが、いくつかの新しい問題もある程度導入されます。たとえば、jsonpath を介して抽出されたデータの型は文字列になって返されるため、アサート時に追加の形式変換を行う必要があります。

2. 上記のリスト データ比較関数と同様に、スクリプト アサーションを使用して解決することができます。ただ、個人的には少し面倒だと思います。プラットフォームがカスタム アサーションのオプションをサポートできる場合は、アサーション オプションを自分でカプセル化する方が便利です。

5cbc8f8418f26e290f237fc108f84190.gif

また、公式アカウントのファン交換グループへの参加も歓迎します.グループでは学習リソースが随時提供され、業界情報も随時共有されます.私たちはあなたと一緒に成長することを楽しみにしています. グループ メンバーの質を確保するために、まず私を友達として追加し、簡単な自己紹介をお願いします (友達のサークルを開く、あなたがいる都市、現在の役職) テスト ピアの身元を確認した後、グループに招待します。一部の広告主がグループに混ざらないようにしてください。これにより、悪い経験がもたらされます〜  

おすすめ

転載: blog.csdn.net/liboshi123/article/details/128945949