原創|行業資訊|編輯:鄭恭琳|2020-06-17 13:50:00.017|閱讀 241 次
概述:對于最終用戶,他們并不關心您網站上發生的后端瘋狂。用戶最關心的是完成任務,無論他們要完成網頁上的任務的順序是什么。可以模擬這種行為的虛擬服務將允許進行更早的端到端測試,更好地覆蓋所有業務邏輯要求以及向產品經理進行有效的產品演示。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
對于最終用戶,他們并不關心您網站上發生的后端瘋狂。用戶最關心的是完成任務,無論他們要完成網頁上的任務的順序是什么。可以模擬這種行為的虛擬服務將允許進行更早的端到端測試,更好地覆蓋所有業務邏輯要求以及向產品經理進行有效的產品演示。
在我們不那么迷人的沖刺評論中,一名產品經理對我們團隊的演示感到沮喪,因為我們只能單獨顯示新實施的功能/服務,而不能顯示端到端的工作流程。這樣做的原因僅是因為尚未實現足夠的功能來跨不同服務鏈接數據。對于特定的用戶故事,產品經理不希望看到難題的各個部分,而是希望將各個部分整合在一起:業務邏輯。
因此,這是一家制造軟件測試工具的公司,我們使用其中一種工具向我們的產品經理提供了他想要的東西。從那時起,我們在許多演示和整個工作流程中都利用了服務虛擬化(不知道這是什么?了解有關服務虛擬化的更多信息)。服務虛擬化使我們能夠使用虛擬服務來表示不可用的服務,這些服務仍由其他以不同的sprint節奏工作的團隊在開發中。它使我們能夠站起來表現出現實的依賴行為或完全虛構的行為的“智能存根”,以滿足我們的需求。通過模擬演示中不可用的部分,我們可以提供產品管理演示,以顯示整個工作流程以獲取我們所需的反饋,而不會陷入范圍之外。
虛擬化單個服務調用非常容易,但是確保這些單個調用作為整個系統的一部分進行相應的操作又是另一回事。當其中一些服務需要在兩次調用之間維護持久性數據時,該主題會變得更加有趣。當涉及持久性數據時,對于虛擬服務來說,跨不同狀態管理數據并真正模擬真實服務的行為以更準確地表示應用程序背后的業務邏輯至關重要。我們稱此為“狀態虛擬化”,您可以在我們的博客上閱讀有關它的全部內容,以通過狀態和狀態轉換測試為服務虛擬化增添生命。這是數據存儲庫CRUD工具出現的地方。
Parasoft Virtualize(我們的服務虛擬化解決方案)具有一項稱為數據存儲庫CRUD工具的功能。創建了數據存儲庫CRUD(創建,讀取,更新,刪除)工具來處理通常與需要狀態轉換的Web服務相關的數據持久性問題。
考慮傳統的購物車體驗。假設購物車系統由3種網絡服務組成:庫存服務,購物車服務和付款服務。這些服務中的每一個都有自己的數據集,但是它們的記錄共享一個元素或屬性(庫存ID,購物車ID,交易ID),需要遵循這些元素或屬性才能進行下游服務。除共享元素外,購物車中的物品記錄,它們的數量以及總的計算價格還需要在整個購物體驗中進行維護,以完成結帳過程。
最小的解決方案是虛擬化固定方案,在該方案中,用戶搜索靜態商品,將商品添加到購物車,最后完成結帳。但是,我們知道在線購物可能會更加復雜。當真實服務與虛擬服務交換時,該行為對于與之交互的所有其他服務應該是無縫且透明的。因此,我們不能認為這是唯一針對虛擬服務運行的方案。
用戶可能會突然感到不滿或購物疲勞,決定添加其他商品,更新原始商品或將其全部刪除。人類的行為是無法預測的。數據存儲庫CRUD工具允許我們通過動態創建和修改記錄并在用戶操作之間進行維護來模擬這種不可預測性。這使我們能夠輕松完成在虛擬服務上引發的任何事件序列。該工具將輕松處理任何算術或其他邏輯。
除了我們的sprint演示,今年我有幸協助了兩個單獨的項目,這些項目證明了Data Repository CRUD工具的功能極為寶貴。讓我一窺你。
在性能測試過程中穩定動態環境數據
與多個第三方服務集成的應用程序需要性能測試。開發團隊已經擁有一兩個靜態記錄,他們可以用來驗證應用程序在整個測試過程中的表現是否符合預期。但是,為了使性能測試有效,在測試中執行的數據和操作將需要具有高可變性的隨機數據,以正確模擬實際場景。各個數據集(包括第三方服務)之間的狀態需要保持一致。對于開發團隊來說,將新的數據庫記錄注入到每個依賴的第三方服務中就已經足夠簡單了,但是不幸的是,訪問沙箱環境的成本很高,并且有很多潛在的麻煩。
該團隊能夠使用服務虛擬化和數據存儲庫CRUD工具成功實施其性能測試。在運行時虛擬化服務中不存在的任何記錄都將由該工具以“全部捕獲”配置以其初始狀態創建。然后,虛擬服務將使用新創建的記錄來成功響應該請求,并在測試的整個生命周期內對其進行修改。該設置令人驚訝地輕松,并為性能測試工具生成的每個唯一用戶保證了真實可靠的端到端流程。
將實時數據注入被測系統
第二種情況不尋常,但是虛擬化當然很有趣。該案涉及測試與國有車輛登記系統配合使用的應用程序。每當將新的VIN(車輛識別號)添加到應用程序時,它都會向注冊系統發送異步調用,以請求車輛的完整信息。如果系統中不存在該VIN,它將以未注冊的形式返回。不幸的是,注冊系統有一項強制性政策,要求一個人(是的,活著的,呼吸的人)手動插入新的車輛信息。如果在一定數量的請求后未注冊所請求VIN的信息,系統將做出不同的響應。
對于異步服務,此一般行為是常見的。從本質上講,這相當于一個孩子問“我們到了嗎?”在旅途中——除非他們真的很近,否則通常會忽略一個問題。
一旦該人手動注冊了信息,系統將以確認有效載荷進行響應。這里的目標是模擬車輛注冊系統,以獨立測試應用程序。面臨的挑戰是確定如何配置虛擬服務以在不同時間對相同請求做出不同響應。為實現此目的,我們使用了數據存儲庫CRUD工具來統計同一請求的調用次數。在達到特定計數值之后,CRUD工具將更新記錄狀態,以使虛擬資產做出不同的響應。 CRUD工具還配置為在預期的時間窗口內隨機為任何請求的VIN創建新記錄,以模擬手動注冊過程。最初看起來很困難的事情可以通過正確的工具輕松完成。
事實是,當涉及到最終用戶或產品經理時,在簡單的網頁操作期間發生的后端瘋狂是可以忽略的。用戶最主要的擔心是,無論他們要在網頁上完成什么工作,無論到達那一步需要采取什么步驟,都將成功完成。可以模擬此行為的虛擬服務將允許進行更早的端到端測試,改善對所有業務邏輯要求的覆蓋范圍以及有效的產品演示。通過對Parasoft Virtualize CRUD工具用戶界面和配置設計的最新增強,現在可以更輕松地處理復雜的場景并盡早提供涉眾,產品經理和測試人員想要的真實功能。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn