對於乙個開發人員來說,沒有什麼比不斷地從頭開始重建事物更令人沮喪的了。物件導向設計的乙個核心原則是能夠為每一項工作建立乙個物件或乙個可參考的點,所以你永遠不必重複自己。
儘管有這個核心原則,但當涉及到模擬時,開發人員經常發現自己在不斷地重複同樣的過程。
但為什麼呢?當開發人員在編寫應用程式**時,他們經常與相同的外部api進行通訊,並以不同的方式對同一服務進行相同的呼叫。傳統的mock的問題在於,它們是在**層面編寫的,而且它們是專門為與正在開發的功能一起工作而設計的。因此,每次需要行使該功能時,都必須建立乙個新的mock。
在使用傳統的mock框架時,很難共享已經建立的mock,不僅因為可能不知道它們存在於**庫中的什麼位置,而且也很難理解乙個特定的mock是與哪個需求繫結的。因此,最終發生的情況是,個別團隊成員經常建立與坐在他們旁邊的人相同的mock。這簡直是在浪費開發者的精力和時間。
一旦開發人員建立了乙個mock,協作也變得很有挑戰性。因為沒有乙個神奇的儀表板存在,你可以在那裡發布關於已經建立的模擬的通知,讓團隊了解情況。
我最近有一家醫療機構的客戶,該機構將模擬作為一種常見的開發實踐,他們有乙個服務提供商總是離線,這使得它成為模擬的常見目標。因此,各個開發人員都在自己的**庫中為它做了乙個模擬介面。它們都略有不同,但達到了同樣的目的。當我與這些開發者溝通時,我發現大約有20個相同的mock存在。這甚至也讓他們感到驚訝。當被問及重複工作的問題時,他們的回答,卻是語氣沉穩,並不完全出乎意料。「我們太忙了,沒時間溝通。」
聽起來很熟悉?(我希望我在這裡有乙個實際統計的資料能讓你感覺好一些)
但模擬是必要的,正如任何開發人員或測試人員會解釋的那樣,因為你在進行開發時需要有能力將自己與其他世界脫鉤。模擬是一種用可保護的環境來包圍你的應用程式的方法——但這個解決方案有其固有的挑戰,包括:
進入:服務虛擬化。通過這種測試實踐,你可以簡化模擬的過程,並建立乙個可重用的虛擬服務庫,共享核心功能。所以你可以停止反覆建立虛擬服務。
我們來看乙個例子。比方說,有乙個現有的服務,通過接收乙個傳入的賬號,為這個人提供身份資訊,並返回乙個響應,同時需要開發乙個新的虛擬服務,在這個服務中,根據賬號,返回財務細節。
通過服務虛擬化,在建立新的虛擬服務時,可以利用原有服務的很多內容。唯一能將兩個服務分開的是模式和資料。而隨著企業建立越來越多的虛擬服務,他們可以重用的工件庫也會變得更大。這就解決了最初不得不反覆建立相同虛擬服務的挑戰。
與mock不同,虛擬服務具有高度的可共享性,內部模組也可以重複使用。虛擬服務或pva檔案可以以xml的形式儲存,並且可以很容易地檢查到原始碼控制中。如果服務模擬特定api的特定功能,你可以在原始碼控制中搜尋工件,或者更容易在共享虛擬化伺服器上搜尋。隨著團隊對服務虛擬化使用的增長,他們可以利用現有的伺服器共享功能,直接將自己的桌面連線到伺服器上搜尋自己需要的工件,直接拉到自己的桌面上,並立即開始使用。這就解決了發現已經建立的虛擬服務並立即訪問的難題。
parasoft virtualize還提供了乙個從常見的虛擬化用例建立的私有和公共構件市場。這使你可以快速啟動並在整個組織中建立乙個內部知識庫,以簡化未來虛擬服務的建立。當你開始利用虛擬服務時,你可以輕鬆地將該虛擬服務與其初始 api 命名慣例或通過描述或標記聯絡在一起。
然後,你的開發夥伴可以直接在 web 瀏覽器中搜尋為他們想要模擬的 api 所建立的任何虛擬資產,並準確地看到已建立的虛擬資產,並立即部署到他們的桌面:
這就解決了將虛擬服務與其特定的api和要求聯絡在一起的挑戰。
最後,鑑於以上所有的解決方案,你的團隊可以建立乙個可持續的工作流程,讓開發人員和測試人員在意識到需要模擬時有選擇。他們不必花時間來回奔波,而是可以在parasoft生態系統中查詢適合他們特定需求的mock,如果存在乙個,他們可以立即獲得它。如果沒有,他們可以建立乙個虛擬服務,團隊可以重複使用,並且未來任何需要它的人都可以發現。這就解決了相關協作的難題。
服務虛擬化測試
forrester 服務虛擬化測試是乙個新興市場,旨在消除應用開發人員和測試人員在當今交付活動中遇到的諸多開發和測試限制。列舉一些這個市場上的產品供參考 calisa 2011年ca斥資3.3億美金全現金收購的it服務模擬解決方案提供商interativetko公司 itko hpservice v...
vsftpd服務虛擬使用者配置
所謂虛擬使用者就是沒有使用真實的帳戶,但ftp登入需要乙個使用者身份,這個時候我們可以給它建立乙個使用者,專門來給這些虛擬的使用者用ok拉。建立虛擬使用者 useradd d home ftpsite virtual chown virtual.virtual home ftpsite 修改 etc...
vsftpd服務虛擬使用者訪問配置
1 建立虛擬使用者 sudo vi etc vsftpd vuser.txt 在vsuer.txt中新增使用者名稱密碼 如 tom 需要安裝db4 util 2 根據vuser.txt建立資料庫檔案 將文字轉換成資料庫認證檔案 sudo load db t t 指定演算法 hash f 指定檔案 e...