軟件測試 | LDAP常見操作指南
擴(kuò)展LDAP采樣器被設(shè)計用來支持非常復(fù)雜的測試目標(biāo),它會盡可能地支持各項LDAP操作。在本節(jié)中將會介紹共有多少LDAP操作,以及它們的作用。針對每一種操作,會簡要地介紹它們是如何實現(xiàn)的。
LDAP服務(wù)器可以被視為某種分級的數(shù)據(jù)庫,它們會將對象(條目)存入樹中。樹的最高部分稱為樹的根節(jié)點。
例如,如果樹以dc=com作為開始,那么根節(jié)點就是dc=com。
下一級可以存在于根節(jié)點之下,例如dc=siemens。那么對象的全名(DN),就是“dc=siemens,dc=com”。當(dāng)然,還可以添加下一級,在dc=siemens,dc=com下添加“cn=admin”。這樣一來,該對象的DN就是“cn=admin,dc=siemens,dc=com”。
相對DN是DN的最后部分,例如cn=admin.
對象的特性是由objectClass決定,objectClass可以被視為屬性的結(jié)合。對象的類型由“structural objectClass”決定,例如person、organizationalUnit或者country。屬性中包含有對象的數(shù)據(jù),例如mailadress、name、streetaderss等。每一個屬性可以包含0、1或者更多值。
1.綁定操作(Bind)
任何與LDAP服務(wù)器之間的通信,都必須以綁定請求作為開始。LDAP是一種依賴于狀態(tài)的協(xié)議。如果沒有打開與LDAP服務(wù)器之間的會話,那么其他后續(xù)請求都無法被處理。由于Java庫的一些古怪特性,所以總共有兩種不同的綁定操作實現(xiàn)。
1)線程綁定(Thread Bind)
這種綁定意味著打開一個LDAP服務(wù)器之間的會話,任何測試計劃都應(yīng)該使用這種操作為會話的起點。對于每一個線程(每一個虛擬用戶)而言,需要與LADP服務(wù)器建立不同的連接,因此需要執(zhí)行不同的線程綁定操作。
2)單一綁定/解除綁定(Single Bind/Unbind)
這種綁定主要被用于用戶驗證確認(rèn)。一個正確設(shè)計的LDAP客戶端,通常會需要驗證用戶,因此會使用DN和密碼來執(zhí)行綁定操作。單一綁定/解除綁定就是為這一目標(biāo)而實現(xiàn)的。它會通過執(zhí)行綁定操作,來創(chuàng)建LDAP客戶端的獨立連接,并在后續(xù)關(guān)閉該連接(通過單一解除綁定操作)。
2.解除綁定操作(Unbind)
要關(guān)閉一個與LDAP服務(wù)器之間的連接,需要執(zhí)行一個解除綁定操作。由于單一綁定/解除綁定已經(jīng)執(zhí)行過一次解除綁定操作看,因此只需要執(zhí)行一下線程解除綁定操作。這一線程解除綁定操作只是關(guān)閉連接,并清楚連接所占用的資源。
3.比較操作(Compare)
比較操作需要LDAP對象的完整DN,以及一個屬性和該屬性的值。它會簡單地檢查這個LDAP對象是否包含有指定的屬性,且該屬性的值是否符合預(yù)期。一個典型的用法是,檢驗指定用戶內(nèi)的特定用戶的成員。
4.搜索操作(Search)
搜索操作就是使用給定的過濾器尋找符合條件的對象。例如,所有滿足“employeeType=inactive”的人或者所有userID=user1的人。
5.添加操作(Add)
該操作會簡單地在LDAP目錄中添加一個對象。當(dāng)然,屬性組合和DN都應(yīng)該是正確的。
6.修改操作(Modify)
該操作會修改指定對象的一個或者多個屬性。該操作需要知道待修改對象的DN,和需要修改的屬性及其值。
修改操作分為3種。
添加:添加一個屬性值
替換:使用一個新值來代替舊的屬性值
刪除:從一個屬性中刪除某個值,或者刪除一個屬性的所有值
7.刪除操作(Delete)
這一操作從LDAP服務(wù)器中刪除某個對象,它需要待刪除對象的DN
8.修改DN(modDN)
這一操作會修改某個對象的DN(它會移除該對象)
該操作可能帶來兩種效果。第一種,僅僅重命名一條數(shù)據(jù),接著知名一個新的RND(相對DN,就是DN的最后部分)。
例如,測試人員可以將“cn=admin,dc=siemens,dc=com”重命名為“cn=administrator,dc=Siemens,dc=com”。
第二種,通過指定一個新的上級,來命名一個完整的分支。
例如,測試人員可以將完整的分支“ou=retires,ou=people,dc=siemens,dc=com”調(diào)整為“or=retired people,dc=siemens,dc=com”。只需指定一個新的RUN“ou=retired people”,并制定一個新的上級“dc=siemens,dc=com”。