Postman はこのようなパブリック関数を定義しており、テスト チームのリーダーはこれを素晴らしいと評価しました。 ! !

Postman がパブリック関数を定義する

postman では、次のコードのようにします。

1. 返された要素が期待値と一致するかどうか

varassertEqual=(name,actual,expected)=>{tests[`${name}: 実際の結果: ${actual}, 期待される結果: ${expected}`]=actual===expected;};

2. 返された要素が期待値と矛盾していないか

varassertNotEqual=(name,actual,expected)=>{tests[`${name}: 実際の結果: ${actual}, 期待される結果: ${expected}`]=actual!==expected;};

上記はすべてカスタム アサーション関数であり、使用するたびにコードをコピーして貼り付ける必要があり、非常に不便ですが、パブリック関数を使用して実装できます。

eval() 関数 関数

文字列 str をパラメータとして受け入れ、このパラメータをスクリプト コードとして実行できます。

例:コードを文字列に変換して変数にし、eval(変数名)関数でコードに変換して直接呼び出します。

コードをコピーする

// s を変数として定義する
var s = 'var a = 10; var b = 20;'
eval(s) // s 変数の値をコードに変換します。つまり、a = 10;b = 20
testing[a+b] = true //出力 a + b = 30

// アサーションを行います。実際の結果は期待される結果と一致します
var common_function = 'varassertEqual=(name,actual,expected)=>{tests[`${name}: 実際の結果: ${actual}、期待される結果: ${expected}`]=actual== =期待;};'
eval(common_function)
assertEqual("タイトルが正しいかどうかを確認します",title,"cat_Baidu 検索")

コードをコピーする

次のようにパブリック関数の記述を完了します。

注: var で定義された関数のみを使用でき、const では使用できません。

1. 定義した関数を文字列として変数に保存します (以下に示す common_function 変数)。

2. 以前に定義した変数をグローバル変数に設定します。

3. 関数を使用する必要がある場合は、eval() 関数を使用して、グローバル変数の値を実行用のコードに変換します。

 4. 実行結果の表示

 自動テストに関連する推奨チュートリアル:

2023 年最新の自動テスト独習チュートリアルは、初心者向けに 26 日間で始められる最も詳細なチュートリアルで、現在、このチュートリアルを学習して大手企業に入社した人が 300 名を超えています。 ! _bilibili_ビリビリ

Python自動テスト開発フレームワークの2023年最新集【フルスタック/実践/チュートリアル】集エッセンス、学習後の年収40W+_bilibili_bilibili

テスト開発に関連する推奨チュートリアル

2023 年にネットワーク全体で最高の Byte テスト開発責任者が現場で指導し、ゼロから年収 100 万のテスト開発エンジニアになれるよう指導します_bilibili_bilibili

postman/jmeter/fiddler テスト ツールのチュートリアルの推奨事項

JMeter インターフェイス テスト/インターフェイス自動テスト プロジェクトに関する実践的なチュートリアルの最も詳細なコレクション。jmeter インターフェイス テストを学習するには、一連のチュートリアルで十分です。 ! _bilibili_ビリビリ

2023 年に Fiddler でパケットをキャプチャする方法を独学するには、インターネット上で最も詳細なビデオ チュートリアル [Fiddler で 1 日でパケットをキャプチャする方法を学ぶ方法] を必ずご覧ください。 ! _bilibili_ビリビリ

2023 年には、ネットワーク全体が表彰されます。ステーション B でのポストマン インターフェイス テストの最も詳細な実践的な指導は、novices_bilibili_bilibili で学ぶことができます。

上記の方法により、関数コードをグローバル変数に配置し、頻繁に使用する関数コードをまとめてグローバル変数に配置できることがわかりました。

示例:コードをコピーする

// 現在のタイムスタンプをミリ秒単位で取得します
var now_time = Date.now()
pm.globals.set("now_time",now_time)

//guid 実装
const guid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
.replace(/x/g, () => (Math.floor(Math.random() * 16)).toString(16))
.replace(/y/g, () => (Math.floor(Math.random() * 4 + 8)).toString(16));
pm.globals.set("guid_value",guid)

// ランダムな整数の実装
const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + 
pm.globals.set("randomInt_num",randomInt(8,15))

// 複数のオプションから実装を選択
const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + 
const getRandomValue = list => list[randomInt(0, list.length - 1)];
const charsInName = ['Wang','Li','Zhang']
pm.globals.set("people_name",getRandomValue(charsInName))


// ランダムな携帯電話番号を実現
const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + 
var mobile_num = `18${randomInt(100000000, 999999999)}`;
pm.globals.set("mobile_num",mobile_num)

//同期待ち実装: 5 秒待ってから実行を開始する
const sleep = (ミリ秒) => {
const start = Date.now();
while (Date.now() <= start + ミリ秒) {}
}
睡眠(5000)

上記のコードを次のようにまとめます。

var now_time = Date.now();var guid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx';varrandomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;var randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;var getRandomValue = list => list[randomInt(0, list.length - 1)];var mobile_num = `18${randomInt(100000000, 999999999)}`;var sleep = (ミリ秒) => {const start = Date.now();while (Date.now() <= start + ミリ秒) {}};varassertEqual=(name,actual,expected)=>{tests[`${name}:实际結果:${actual} 、期待結果:${expected}`]=actual===expected;};

グローバル変数にパブリック関数 common_function を定義し、変数の値が結合された関数になる

 [事前リクエスト スクリプト] タブと [テスト] タブの common_function で関数を呼び出します。

ランダムな携帯電話番号を例に挙げます。

1. 以下に示すように、[事前リクエスト スクリプト] タブでパブリック関数 common_function を呼び出し、ランダムな携帯電話番号のグローバル変数を設定します。

 

 2.「テスト」タブでアサーションを行う

 3. 実行結果の表示

 

 要約:

 光学理論は役に立ちません。学んだことを実際に適用するには、それに従って練習する必要があります。このとき、いくつかの実際の事例から学ぶことができます。

お役にたてましたら、いいね、保存していただけると作者の励みになります。次回から素早く検索することも容易になります。

理解できない場合は、下の小さなカードを参照してください。ブロガーは、同じ考えを持つテスターと一緒に学び、改善することも望んでいます。

適切な年齢で、適切なポジションを選択し、自分の長所を最大限に発揮するように努めてください。

私は計画と要約が好きなので、自動テスト開発への道は各段階の計画と切り離すことができません。

テスト開発ビデオチュートリアルと学習ノート収集ポータル! !

おすすめ

転載: blog.csdn.net/m0_59868866/article/details/134562598