生成された動的な一意のIDを保存し、次のテストケースに解析します

user12158726

テストデータの目的で動的な一意のIDを生成できるキーワードgroovyがあります。

package kw
import java.text.SimpleDateFormat

import com.kms.katalon.core.annotation.Keyword


class dynamicId {

	//TIME STAMP
	String timeStamp() {
		return new SimpleDateFormat('ddMMyyyyhhmmss').format(new Date())
	}

	//Generate Random Number
	Integer getRandomNumber(int min, int max) {
		return ((Math.floor(Math.random() * ((max - min) + 1))) as int) + min
	}

	/**
	 * Generate a unique key and return value to service
	 */
	@Keyword
	String getUniqueId() {
		String prodName = (Integer.toString(getRandomNumber(1, 99))) + timeStamp()

		return prodName
	}
}

次に、以下のようなAPIテストケースがいくつかあります。

テストケース1:

キーワードを呼び出してテストデータをPOSTします。このテストケースはうまく機能します。

動的な一意のIDが投稿され、データベースに保存されます。

partial test case


//test data using dynamic Id
NewId = CustomKeywords.'kw.dynamicId.getUniqueId'()
println('....DO' + NewId)

GlobalVariable.DynamicId = NewId

//test data to simulate Ingest Service sends Dispense Order to Dispense Order Service.
def incomingDOInfo = '{"Operation":"Add","Msg":{"id":"'+GlobalVariable.DynamicId+'"}'

現在、テストケース2は検証テストケースとして機能しました。

動的な一意のIDがGETAPIで取得できることを確認する必要がある場合(IDでデータを取得します。このIDはPOSTされているIDと一致する必要があります)。

テストケース1から生成された生成された動的一意IDを保存するにはどうすればよいですか?

テストケース1に「println( '.... DO' + NewId)」がありますが、それを使用してテストケース2に入れる方法がわかりません。

生成された動的一意IDを取得するには、どのメソッドを使用する必要がありますか?

提案でテストケース2を更新しましたが、うまく機能します。

def dispenseOrderId = GlobalVariable.DynamicId
'Check data'
getDispenseOrder(dispenseOrderId)



def getDispenseOrder(def dispenseOrderId){
	def response = WS.sendRequestAndVerify(findTestObject('Object Repository/Web Service Request/ApiDispenseorderByDispenseOrderIdGet', [('dispenseOrderId') : dispenseOrderId, ('SiteHostName') : GlobalVariable.SiteHostName, , ('SitePort') : GlobalVariable.SitePort]))
	println(response.statusCode)
	println(response.responseText)
	WS.verifyResponseStatusCode(response, 200)
	
	println(response.responseText)
	
	//convert to json format and verify result
	def dojson = new JsonSlurper().parseText(new String(response.responseText))
	println('response text: \n' + JsonOutput.prettyPrint(JsonOutput.toJson(dojson)))
	
	assertThat(dojson.dispenseOrderId).isEqualTo(dispenseOrderId)
	assertThat(dojson.state).isEqualTo("NEW")
}

====================

#2の提案を試すために投稿を更新しました

TC2

//retrieve the dynamic ID generated at previous test case
def file = new File("C:/DynamicId.txt")


//Modify this to match test data at test case "IncomingDOFromIngest"
def dispenseOrderId = file.text
'Check posted DO data from DO service'
getDispenseOrder(dispenseOrderId)



def getDispenseOrder(def dispenseOrderId){
	def response = WS.sendRequestAndVerify(findTestObject('Object Repository/Web Service Request/ApiDispenseorderByDispenseOrderIdGet', [('dispenseOrderId') : dispenseOrderId, ('SiteHostName') : GlobalVariable.SiteHostName, , ('SitePort') : GlobalVariable.SitePort]))
	println(response.statusCode)
	println(response.responseText)
	WS.verifyResponseStatusCode(response, 200)
	
	println(response.responseText)
	
}

メイト・ムルシェ

私が考えることができることを行うには複数の方法があります。

1.動的IDの値をGlobalVariableに格納します

テストスイートでテストケース1(TC1)とTC2を実行している場合は、ストレージ間でグローバル変数を使用できます。

あなたはすでにTC1でこれを行っています:

GlobalVariable.DynamicId = NewId

現在、これはTC1とTC2が同じテストスイートの一部として実行されている場合にのみ機能します。これは、GlobalVariablesが、テストスイートの分解または単一のテストケースの実行時のテストケースの分解時にデフォルトリセットされるためです

GET応答を取得し、それをresponse変数に入れたとしましょう

assert response.equals(GlobalVariable.DynamicId)

2.動的IDの値をファイルシステムに保存します

この方法は、テストケースを個別に(つまり、テストスイートではなく)実行した場合でも機能します。

ファイルシステムを使用して、ID値をファイルに永続的に保存できます。それを支援するさまざまなGroovyの方法があります。

IDをテキストファイルに保存する方法の例を次に示しますc:/path-to/variable.txt

def file = new File("c:/path-to/variable.txt")
file.newWriter().withWriter { it << NewID }
println file.text

TC2には次のアサーションが必要です(ニーズに応じて調整してください)。

def file = new File("c:/path-to/variable.txt")
assert response.equals(file.text)

fileTC2でも定義したことを確認してください

3. TC1の最後にID値を返し、それをTC2への入力として使用します。

これは、TC1とTC2が同じテストスイートにあることも前提としています。IDの値を次のように返します

return NewId

次に、TC2の入力パラメータとして使用します。

4.テストリスナーを使用する

これは最初のソリューションと同じです。テストリスナーを使用して、テストスイートの実行中にアクティブになる一時的な保持変数を作成するだけです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

JSONをIonic / Cordovaストレージに保存するときに一意のIDを生成します

分類Dev

一意のIDを生成するためにHibernateシーケンスを更新します

分類Dev

Excel-100万件以上のケースに最適化されたIDに一致する一意の値をカウントします

分類Dev

Python:長さNの一意に順序付けられたすべてのリストを生成します

分類Dev

ネストされたリストの要素を一意のリストc#にマージします

分類Dev

生成された一意のIDをFirebaseRealtimeDatabseに保存する方法

分類Dev

データベースに保存する一意の乱数を生成します

分類Dev

設定されたアイテムが一意であることがわかるまでアイテムにシーケンス番号を割り当ててから、シーケンス内の次の番号にジャンプします

分類Dev

ngForによって生成されたリストアイテムを一意に識別します

分類Dev

コンストラクター内で一意のIDを自動生成します

分類Dev

Friendly-idの一意に生成されたタイトル名を変更します

分類Dev

SDWEBIMAGEのサーバーに保存されている画像の一意のURLを使用して、アプリケーションディレクトリ(キャッシュ)で一意の画像ファイルパスを取得します

分類Dev

わかりやすいURLを動的に生成し、Asp.Net C#でクリックされたすべての投稿の一意のページにSQLデータベースのコンテンツをレンダリングします

分類Dev

ランダムに生成されたユーザーIDの一意性を単体テストするにはどうすればよいですか?

分類Dev

ソートされた一意の値を持つネストされたDataFrameをPythonのネストされた辞書に変換します

分類Dev

IDでソートされた一意の行を選択します

分類Dev

プレーンなJavaScriptを使用して、DOM内の一意ではない動的に生成された要素をターゲットにする方法は?

分類Dev

data.tableは、一意のIDの最初と最後の行に基づいた間隔でシーケンスを生成します

分類Dev

pysparkの一意の行のシーケンス列を生成します

分類Dev

localStorageに保存するテーブル内の選択した行に一意のIDを設定します

分類Dev

localStorageに保存するテーブル内の選択した行に一意のIDを設定します

分類Dev

Beautifulsoup4-一意にタグ付けされていない複数のテキスト文字列を取得してリストに保存する

分類Dev

一意の列ごとにネストされたjsonを使用してcsvをjsonに変換します

分類Dev

可変個引数テンプレートのネストされた値が一意であることを静的にアサートします

分類Dev

Django Rest Framework:IDフィールドから一意の難読化されたIDを生成します

分類Dev

メニュー項目リストに一意のIDを追加します

分類Dev

オブジェクトをFirebaseArrayにプッシュしたときに生成される一意のキー/ IDを制御できますか?

分類Dev

postgresのjsonで一意のネストされたキー/値をカウントしますか?

分類Dev

jQueryと生成されたSVGポリゴン-各ポリゴンに一意のクラスを与えるためのループを作成しますか?

Related 関連記事

  1. 1

    JSONをIonic / Cordovaストレージに保存するときに一意のIDを生成します

  2. 2

    一意のIDを生成するためにHibernateシーケンスを更新します

  3. 3

    Excel-100万件以上のケースに最適化されたIDに一致する一意の値をカウントします

  4. 4

    Python:長さNの一意に順序付けられたすべてのリストを生成します

  5. 5

    ネストされたリストの要素を一意のリストc#にマージします

  6. 6

    生成された一意のIDをFirebaseRealtimeDatabseに保存する方法

  7. 7

    データベースに保存する一意の乱数を生成します

  8. 8

    設定されたアイテムが一意であることがわかるまでアイテムにシーケンス番号を割り当ててから、シーケンス内の次の番号にジャンプします

  9. 9

    ngForによって生成されたリストアイテムを一意に識別します

  10. 10

    コンストラクター内で一意のIDを自動生成します

  11. 11

    Friendly-idの一意に生成されたタイトル名を変更します

  12. 12

    SDWEBIMAGEのサーバーに保存されている画像の一意のURLを使用して、アプリケーションディレクトリ(キャッシュ)で一意の画像ファイルパスを取得します

  13. 13

    わかりやすいURLを動的に生成し、Asp.Net C#でクリックされたすべての投稿の一意のページにSQLデータベースのコンテンツをレンダリングします

  14. 14

    ランダムに生成されたユーザーIDの一意性を単体テストするにはどうすればよいですか?

  15. 15

    ソートされた一意の値を持つネストされたDataFrameをPythonのネストされた辞書に変換します

  16. 16

    IDでソートされた一意の行を選択します

  17. 17

    プレーンなJavaScriptを使用して、DOM内の一意ではない動的に生成された要素をターゲットにする方法は?

  18. 18

    data.tableは、一意のIDの最初と最後の行に基づいた間隔でシーケンスを生成します

  19. 19

    pysparkの一意の行のシーケンス列を生成します

  20. 20

    localStorageに保存するテーブル内の選択した行に一意のIDを設定します

  21. 21

    localStorageに保存するテーブル内の選択した行に一意のIDを設定します

  22. 22

    Beautifulsoup4-一意にタグ付けされていない複数のテキスト文字列を取得してリストに保存する

  23. 23

    一意の列ごとにネストされたjsonを使用してcsvをjsonに変換します

  24. 24

    可変個引数テンプレートのネストされた値が一意であることを静的にアサートします

  25. 25

    Django Rest Framework:IDフィールドから一意の難読化されたIDを生成します

  26. 26

    メニュー項目リストに一意のIDを追加します

  27. 27

    オブジェクトをFirebaseArrayにプッシュしたときに生成される一意のキー/ IDを制御できますか?

  28. 28

    postgresのjsonで一意のネストされたキー/値をカウントしますか?

  29. 29

    jQueryと生成されたSVGポリゴン-各ポリゴンに一意のクラスを与えるためのループを作成しますか?

ホットタグ

アーカイブ