0
我一直在編寫測試來驗證我的Java日誌流是BigQuery。我用dsunit(golang)使用jdsunit(dsunit的Java客戶端),但我有一個問題,因爲爲了驗證BiqQuery中的流數據,我必須指定唯一標識符,我的日誌沒有時間標記旁邊的唯一標識符(難以使用) 。測試Java客戶端的dsunit
如何用dsunit測試數據而沒有唯一字段?任何建議表示讚賞!
我一直在編寫測試來驗證我的Java日誌流是BigQuery。我用dsunit(golang)使用jdsunit(dsunit的Java客戶端),但我有一個問題,因爲爲了驗證BiqQuery中的流數據,我必須指定唯一標識符,我的日誌沒有時間標記旁邊的唯一標識符(難以使用) 。測試Java客戶端的dsunit
如何用dsunit測試數據而沒有唯一字段?任何建議表示讚賞!
在你的測試案例中,我會假設一個記錄器順序地輸入條目,所以你可以使用記錄順序的位置按時間戳。如果是這樣,請使用以下SQL作爲FromQuery來源:
SELECT
ROW_NUMBER() OVER() position, eventId, param1, param2, param3, requestTimestamp FROM LogHistory
ORDER BY requestTimestamp
在您的驗證數據集只需添加位置即
[
{"position":1, "eventId":123,"param1":"p1.1",....,"requestTimestamp":t1 },
{"position":2, "eventId":123,"param1":"p1.2",....,"requestTimestamp":t2 }
{"position":3, "eventId":345,"param1":"p1.1",....,"requestTimestamp":t3 }
]
請刪除您周圍的文字編碼格式。如果您將測試代碼與獨特的字段一起發佈,它也會有所幫助。 – kabanus
這是我的datastore_init.json配置文件,其中包含唯一唯一列requestTimestamp(以毫秒爲單位)的表。 {「DatastoreConfigs」:[{「Datastore」:「MyDataStore」,「AdminDbName」:「MyDataStore」,「ClearDatastore」:true,「ConfigUrl」:「test://resources/bq/config/store.json」 ,「描述符」:[{「Table」:「LogHistory」,「PkColumns」:[「requestTimestamp」],「Columns」:[「eventId」,「param1」,「param2」,「requestTimestamp」], :「SELECT eventId,param1,param2,param3,requestTimestamp FROM LogHistory」}]}]} – StackTest