我正在使用這個項目,它使用EventHub -> Stream Analytics Job -> Storage Table/Blob
結構,我想爲它編寫幾個單元測試。單元測試Azure EventHub,流分析作業和存儲表
我可以測試EventHub
發送者狀態以查看查詢是否具有預期的行爲,但我怎樣才能檢查數據是否發送到表存儲,因爲整個過程不會立即發生,並且有一個漂亮的從我點擊EventHub的那一刻起,數據被保存在存儲中的那一刻,就有很長的延遲。
我正在使用這個項目,它使用EventHub -> Stream Analytics Job -> Storage Table/Blob
結構,我想爲它編寫幾個單元測試。單元測試Azure EventHub,流分析作業和存儲表
我可以測試EventHub
發送者狀態以查看查詢是否具有預期的行爲,但我怎樣才能檢查數據是否發送到表存儲,因爲整個過程不會立即發生,並且有一個漂亮的從我點擊EventHub的那一刻起,數據被保存在存儲中的那一刻,就有很長的延遲。
首先創建一個新的Azure表存儲帳戶,然後在該帳戶內創建一個新的Azure表。在您的流分析作業中添加表格存儲的新輸出。設置輸出詳細信息時,您需要指定存儲帳戶,帳戶密鑰,表名以及事件中的哪些列名稱將代表Azure表分區和行密鑰。舉個例子,我定住了這樣的:輸出設置
後,您可以創建一個簡單的分析數據的查詢,從事件中心輸入事件映射到Azure Table中輸出。我還有一個名爲'eventhub'的具有發送/監聽權限的事件中心輸入。我的查詢如下所示:
SELECT
*
INTO
tableoutput
FROM
eventhub
此時,點擊Azure門戶中的'開始'按鈕以運行流分析作業。要生成事件,您可以按照指示here但改變事件消息是:
string guid = Guid.NewGuid().ToString();
var message = "pk,rk,value\n" + guid + ",1,hello";
Console.WriteLine("{0} > Sending message: {1}", DateTime.Now, message);
eventHubClient.Send(new EventData(Encoding.UTF8.GetBytes(message)));
眼球的Azure Table中的結果,請下載TableXplorer工具,輸入存儲帳戶的詳細信息。雙擊你的Azure Table,你應該看到類似下面的內容。請記住,您可能需要在TableXplorer查詢中定期點擊F5 10-60秒,直到數據被推送完畢。當它顯示了它看起來像下面這樣:
對於編程單元測試,你需要在你的事件中心的代碼生成的分區鍵/行鍵的值推入一個數據結構,並有職工使用點查詢輪詢Azure表。 Azure Table使用情況的好概述是here。