扩展LDAP采样器被设计用来支持非常复杂的测试目标,它会尽可能地支持各项LDAP操作。在本节中将会介绍共有多少LDAP操作,以及它们的作用。针对每一种操作,会简要地介绍它们是如何实现的。
LDAP服务器可以被视为某种分级的数据库,它们会将对象(条目)存入树中。树的最高部分称为树的根节点。
例如,如果树以dc=com作为开始,那么根节点就是dc=com。
下一级可以存在于根节点之下,例如dc=siemens。那么对象的全名(DN),就是“dc=siemens,dc=com”。当然,还可以添加下一级,在dc=siemens,dc=com下添加“cn=admin”。这样一来,该对象的DN就是“cn=admin,dc=siemens,dc=com”。
相对DN是DN的最后部分,例如cn=admin.
对象的特性是由objectClass决定,objectClass可以被视为属性的结合。对象的类型由“structural objectClass”决定,例如person、organizationalUnit或者country。属性中包含有对象的数据,例如mailadress、name、streetaderss等。每一个属性可以包含0、1或者更多值。
1.绑定操作(Bind)
任何与LDAP服务器之间的通信,都必须以绑定请求作为开始。LDAP是一种依赖于状态的协议。如果没有打开与LDAP服务器之间的会话,那么其他后续请求都无法被处理。由于Java库的一些古怪特性,所以总共有两种不同的绑定操作实现。
1)线程绑定(Thread Bind)
这种绑定意味着打开一个LDAP服务器之间的会话,任何测试计划都应该使用这种操作为会话的起点。对于每一个线程(每一个虚拟用户)而言,需要与LADP服务器建立不同的连接,因此需要执行不同的线程绑定操作。
2)单一绑定/解除绑定(Single Bind/Unbind)
这种绑定主要被用于用户验证确认。一个正确设计的LDAP客户端,通常会需要验证用户,因此会使用DN和密码来执行绑定操作。单一绑定/解除绑定就是为这一目标而实现的。它会通过执行绑定操作,来创建LDAP客户端的独立连接,并在后续关闭该连接(通过单一解除绑定操作)。
2.解除绑定操作(Unbind)
要关闭一个与LDAP服务器之间的连接,需要执行一个解除绑定操作。由于单一绑定/解除绑定已经执行过一次解除绑定操作看,因此只需要执行一下线程解除绑定操作。这一线程解除绑定操作只是关闭连接,并清楚连接所占用的资源。
3.比较操作(Compare)
比较操作需要LDAP对象的完整DN,以及一个属性和该属性的值。它会简单地检查这个LDAP对象是否包含有指定的属性,且该属性的值是否符合预期。一个典型的用法是,检验指定用户内的特定用户的成员。
4.搜索操作(Search)
搜索操作就是使用给定的过滤器寻找符合条件的对象。例如,所有满足“employeeType=inactive”的人或者所有userID=user1的人。
5.添加操作(Add)
该操作会简单地在LDAP目录中添加一个对象。当然,属性组合和DN都应该是正确的。
6.修改操作(Modify)
该操作会修改指定对象的一个或者多个属性。该操作需要知道待修改对象的DN,和需要修改的属性及其值。
修改操作分为3种。
- 添加:添加一个属性值
- 替换:使用一个新值来代替旧的属性值
- 删除:从一个属性中删除某个值,或者删除一个属性的所有值
7.删除操作(Delete)
这一操作从LDAP服务器中删除某个对象,它需要待删除对象的DN
8.修改DN(modDN)
这一操作会修改某个对象的DN(它会移除该对象)
该操作可能带来两种效果。第一种,仅仅重命名一条数据,接着知名一个新的RND(相对DN,就是DN的最后部分)。
例如,测试人员可以将“cn=admin,dc=siemens,dc=com”重命名为“cn=administrator,dc=Siemens,dc=com”。
第二种,通过指定一个新的上级,来命名一个完整的分支。
例如,测试人员可以将完整的分支“ou=retires,ou=people,dc=siemens,dc=com”调整为“or=retired people,dc=siemens,dc=com”。只需指定一个新的RUN“ou=retired people”,并制定一个新的上级“dc=siemens,dc=com”。
标签:指南,DN,绑定,dc,LDAP,操作,com,软件测试 From: https://blog.51cto.com/u_15605684/7606423