内容:ガイド
序文
データ量が比較的多い場合には、テストデータをCSVファイルに書き込み、CSVファイルのデータを直接参照できるようにしたいと考えています。
テストシナリオ
パラメーター リストの内容が YAML/JSON スクリプトで直接指定されている場合、ユースケースは次のようになります。
- config:
name: parameters test
request:
base_url: http://api.nnzhp.cn
parameters:
- username-passwd:
- ["niuhanyang", "aA123456"]
- ["test10101", "fasdfasfa"]
- ["test1010", "aA123456"]
- test:
name: login case
request:
url: /api/user/login
method: POST
headers:
Content-Type: application/x-www-form-urlencoded
User-Agent: Fiddler
data:
username: $username
passwd: $passwd
validate:
- eq: [status_code, 200]
- eq: [content.error_code, 0]
上記のユースケースではテストデータが 3 セットしかありませんでしたが、10 セットや 100 セットのテストデータがある場合、テスト スクリプトに直接記述するのは不便です。
これらすべてのテスト データを CSV ファイルに書き込んで、その CSV ファイルを直接参照することができます。これは非常に便利で、スクリプトもより簡潔になります。
単一パラメータを CSV に保存する
CSV データ ファイルについては、次の合意されたルールに従う必要があります:
ファイルはテスト ケース ファイルと同じディレクトリに配置する必要があります。CSV ファイルの
最初の行はパラメータ名、2 行目はパラメータ名である必要があります。パラメータ値、各(グループ)値は 1 行を占めます。
同じ CSV ファイル内に複数のパラメータがある場合、パラメータ名と値の間の区切り文字はカンマである必要があります。
たとえば、ログイン データのセットが複数あり、ユーザー名は異なりますが、パスワードは同じである場合、次のように username.csv を作成し、username.csv にユーザー名のパラメーターを書き込むことができます。
username
niuhanyang
test10101
test1010
次に、YAML/JSON テスト ケースでは、HttpRunner の組み込みパラメータ化 (P と略します) 関数を使用して CSV ファイルを参照できます。
parameters:
- username: ${
P(username.csv)} # 或者 ${
parameterize(username.csv)}
- passwd: ["aA123456"]
注: HttpRunner では、parameters で指定されたパラメータ名は、CSV ファイルの最初の行のパラメータ名と一致している必要があります。
複数のパラメータをCSVに保存する
相関関係のある複数のパラメーターの場合、たとえば、ログイン データのセットが複数あり、ユーザー名とパスワードが異なる場合は、user.csv を作成し、ユーザー名とパスワードのパラメーターを user.csv に書き込むことができます。
次のように:
username,passwd
niuhanyang,aA123456
test10101,fasdfasfa
test1010,aA123456
YAML スクリプトを再度変更します。
parameters:
- username-passwd: ${
P(user.csv)} # 或者 ${parameterize(user.csv)}
注: 上記の書き方はユーザー名とパスワードが一対一の関係になっており、以下のように書くと直積の組み合わせとなり、3 * 3 = 9通りの組み合わせになります。
parameters:
- username: ${
P(user.csv)}
- passwd: ${
P(user.csv)}
また、テストスクリプトでパラメータを指定する場合、一部のパラメータのみを使用でき、パラメータの順序はCSVファイル内のパラメータ名の順序と一致する必要はありません。
ユースケースを実行する
完全な YAML 形式の使用例 (test_csv.yml):
- config:
name: parameters test
request:
base_url: http://api.nnzhp.cn
parameters:
- username-passwd: ${
P(user.csv)} # 或者 ${parameterize(user.csv)}
- test:
name: login case
request:
url: /api/user/login
method: POST
headers:
Content-Type: application/x-www-form-urlencoded
User-Agent: Fiddler
data:
username: $username
passwd: $passwd
validate:
- eq: [status_code, 200]
- eq: [content.error_code, 0]
HttpRunner 1.x バージョンでは、CSV データ ファイル (user.csv など) を引用するには、user.csv と test_csv.yml を同じディレクトリに配置して、ユース ケースを実行する必要があります。
ユースケースを実行した後のレポートは次のとおりです。
以下は、私がまとめた 2023 年の最も完全なソフトウェア テスト エンジニア学習知識アーキテクチャ システム図です。 |
1. Pythonプログラミングの入門から習得まで
2.インターフェース自動化プロジェクトの実戦
3. Web自動化プロジェクトの実戦
4. アプリ自動化プロジェクトの実戦
5. 一流メーカーの再開
6. DevOps システムのテストと開発
7. 一般的に使用される自動テストツール
8、JMeterのパフォーマンステスト
9. まとめ(最後にちょっとしたサプライズ)
闘争は汗と切り離せない旅であり、一滴の汗は闘争の勇気と忍耐を心に留めます。迷いを手放し、胸を張って、しっかりと踏み出してください、風と雨があってこそ、虹は見えます。
夢を進路として、理想の岸辺へ悪戦苦闘しながら航海していきます。道は険しいかもしれませんが、一歩一歩が成長の証です。粘り強さと忍耐力は成功の基礎であり、忍耐力は夢を実現するためのパスワードです。自分を信じて、勇敢に前進すれば、無限の可能性が生まれます!
闘いの道では、挑戦を恐れないでください。それは成長の触媒だからです。勇気を出して恐怖を払拭し、努力をして輝きを書き、あらゆる努力が未来への原動力となります。