跳到主要内容

构建扩展的 LDAP 测试计划

在本节中,你将学习如何创建一个基本的测试计划来测试 LDAP 服务器。

由于扩展 LDAP 采样器是高度可配置的,这也意味着构建正确的测试计划需要一些时间。但是,你可以根据自己的需要对其进行调整。

你将创建 1 个用户,在 LDAP 服务器上发送九个测试的请求。此外,你将告诉用户运行他们的测试一次。因此,请求总数为(1 个用户)x(9 个请求)x(重复 1 次)= 9 个 LDAP 请求。要构建测试计划,你将使用以下元素:
线程组
添加 LDAP 扩展请求默认值
添加 LDAP 请求
添加侦听器以查看/存储测试结果

此示例假定 LDAP 服务器在 ldap.test.com 上可用。

对于经验较少的 LDAP 用户,我构建了一个 小型 LDAP 教程 ,其中简要说明了可用于构建复杂测试计划的几个 LDAP 操作。

在专有名称中使用 LDAP 特殊字符时要小心,在这种情况下(例如,你想在专有名称中使用+号),你需要通过在该字符前添加\\符号来转义该字符。额外的例外:如果要在专有名称中添加\字符(在添加或重命名操作中),则需要使用 4 个反斜杠。

例子:

cn=dolf\+smits

添加/搜索名称如 cn=dolf+smits 的条目

cn=dolf \\ smits

搜索名称为 cn=dolf \ smits 的条目

cn=c:\\\\log.txt

添加一个名称类似于 cn=c:\log.txt 的条目

8b.1 添加用户

你想要对每个 JMeter 测试计划执行的第一步是添加一个线程组元素。线程组告诉 JMeter 你想模拟的用户数量,用户应该多久发送一次请求,以及他们应该发送多少个请求。

继续添加 Thread Group 元素,首先选择 Test Plan,单击鼠标右键以获取 Add 菜单,然后选择 Add → Threads (Users) → Thread Group。你现在应该在 Test Plan 下看到 Thread Group 元素。如果你没有看到该元素,则通过单击测试计划元素展开测试计划树。

图 8b.1。 具有默认值的线程组

图 8b.1。具有默认值的线程组

8b.2 添加 LDAP 扩展请求默认值

首先选择 LDAP Ext Users 元素。单击鼠标右键以获取 Add 菜单,然后选择 Add → Config Element → LDAP Extended Request Defaults。然后,选择这个新元素以查看其控制面板。

与大多数 JMeter 元素一样,LDAP 扩展请求默认值控制面板有一个你可以修改的名称字段。在此示例中,将此字段保留为默认值。

图 8b.2 我们的测试计划的 LDAP 默认值

图 8b.2 我们的测试计划的 LDAP 默认值

对于每个不同的操作,可以填写一些默认值。在所有情况下,填写默认值时,这用于 LDAP 扩展请求。对于每个请求,你可以通过填写 LDAP 扩展请求采样器中的值来覆盖默认值。当没有输入测试所需的值时,测试将以不可预知的方式失败!

我们不会在此处输入任何默认值,因为我们将构建一个非常小的测试计划,因此我们将在添加 LDAP 扩展采样器时解释所有不同的字段。

8b.3 添加 LDAP 请求

在我们的测试计划中,我们希望使用所有 9 个 LDAP 请求。

  1. 线程绑定
  2. 搜索测试
  3. 比较测试
  4. 单一绑定/解绑测试
  5. 添加测试
  6. 修改测试
  7. 重命名条目 (moddn)
  8. 删除测试
  9. 线程解绑

JMeter 按照你将请求添加到树中的顺序发送请求。

添加请求始终从以下步骤开始:
将 LDAP 扩展请求添加到 LDAP 扩展用户元素(添加 → 采样器 → LDAP 扩展请求)。然后,在树中选择 LDAP Ext Request 元素并编辑以下属性。

8b.3.1 添加线程绑定请求

  1. 重命名元素: 1. 线程绑定
  2. 选择线程绑定按钮。
  3. 在 Servername 字段中输入来自 LDAP 服务器的主机名值
  4. 在端口字段中输入来自 LDAP 服务器的端口号(636:ldap over SSL)
  5. (可选)在 DN 字段中输入 baseDN,此 baseDN 将用作搜索、添加、删除等的起点。
    注意这必须是所有请求的最高共享级别,例如,当所有信息都存储时在 ou=Users, dc=test, dc=com 下,你可以在 basedn 中使用此值。
  6. (可选)输入你要用于身份验证的用户的专有名称。当此字段为空时,将建立匿名绑定。
  7. (可选)输入你要进行身份验证的用户的密码,空密码也会导致匿名绑定。
  8. (可选)输入与 LDAP 的连接超时值
  9. (可选)如果你使用 LDAP over SSL (ldaps) 访问,请选中使用安全 LDAP 协议框
  10. (可选)如果你希望客户端信任所有证书,请选中 TrustAll 框

图 8b.3.1。 线程绑定示例

图 8b.3.1。线程绑定示例

8b.3.2 添加搜索请求

  1. 重命名元素:2. Search Test
  2. 选择搜索测试按钮。
  3. (可选)输入要在其下执行搜索的搜索库,相对于在线程绑定请求中使用的 basedn。
    当留空时,basedn 用作搜索库,如果你想使用base-entryone-level搜索,这个文件很重要(见下文)
  4. 输入 searchfilter,任何像样的 LDAP 搜索过滤器都可以,但现在,使用简单的东西,例如(sn=Doe)或(cn=*)
  5. (可选)在范围字段中输入范围,它有三个选项:
    1. baseobject search
      仅使用给定的搜索库,仅用于检查属性或存在。
    2. 单级搜索
      仅使用给定搜索库下一级的搜索
    3. 子树搜索
      在给定的 basedn 下的任意点搜索对象
  6. (可选)大小限制,指定返回条目的最大数量,
  7. (可选)时间限制,指定服务器可用于执行搜索的最大毫秒数。这不是应用程序等待的最长时间。
    当从非常快的服务器通过非常慢的线路返回非常大的返回集时,你可能需要等待很长时间才能完成搜索请求,但此参数不会影响这一点。
  8. (可选)搜索答案中所需的属性。这可用于限制答案的大小,尤其是当对象具有非常大的属性时(例如 jpegPhoto)。有三种可能:
    1. 留空(默认设置也必须为空) 这将返回所有属性。
    2. 放入一个空值(""),它会请求一个不存在的属性,所以实际上它不返回任何属性
    3. 放入属性,用分号隔开。它只会返回请求的属性
  9. (可选)返回对象。Checked 将返回所有 java-object 属性,它会将这些添加到请求的属性中,如上所述。
    未选中将意味着不会返回 java-object 属性。
  10. (可选)取消引用别名。选中将意味着它将遵循参考,未选中则表示不会。
  11. (可选)解析搜索结果?。选中将意味着它会在响应数据中获得所有结果,未选中则表示不会。

图 8b.3.2。 搜索请求示例

图 8b.3.2。搜索请求示例

8b.3.3 添加比较请求

  1. 重命名元素: 3.比较测试
  2. 选择比较按钮。
  3. 输入你希望比较操作在其上工作的对象的条目名称,相对于 basedn,例如cn=jdoe,ou=Users
  4. 输入比较过滤器,格式必须为attribute=value,例如mail=jdoe@test.com

图 8b.3.3。 比较示例

图 8b.3.3。比较示例

8b.3.4 添加单个绑定/取消绑定

  1. 重命名元素:4. Single bind/unbind Test
  2. 选择单一绑定/解除绑定按钮。
  3. 输入你要用于身份验证的用户的完整专有名称。
    例如 cn=jdoe,ou=Users,dc=test,dc=com 当此字段为空时,将建立匿名绑定。
  4. 输入你要进行身份验证的用户的密码,空密码也会导致匿名绑定。

注意:这个单一的绑定/取消绑定实际上是两个独立的操作,但不能轻易拆分!

图 8b.3.4。 单个绑定/取消绑定示例

图 8b.3.4。单个绑定/取消绑定示例

8b.3.5 添加添加请求

  1. 重命名元素: 5. 添加测试
  2. 选择添加按钮。
  3. 输入要添加的对象的专有名称,相对于 basedn。
  4. 添加测试表 中添加一行,填写属性和值。
    当你多次需要相同的属性时,只需添加一个新行,再次添加该属性,以及一个不同的值。
    必须指定所有必要的属性和值才能通过测试,见图!
    (有时服务器会添加属性objectClass=top,这可能会产生问题。

图 8b.3.5。 添加请求示例

图 8b.3.5。添加请求示例

8b.3.6 添加修改请求

  1. 重命名元素: 6.修改测试

  2. 选择修改测试按钮。

  3. 输入要修改的对象的专有名称,相对于 basedn。

  4. 修改测试表 中添加一行,使用添加按钮。

  5. 你需要输入要修改的属性、(可选)值和操作码。该操作码的含义:

    添加

    这意味着属性值(在这种情况下不是可选的)将被添加到属性中。
    当属性不存在时,将创建它并添加值
    。当它存在并定义多值时,将添加新值。
    当它存在但单值时,它将失败。

    代替

    这将用给定的新值覆盖属性(这里不是可选的)
    当属性不存在时,将创建它并添加值
    当它存在时,删除旧值,添加新值。

    删除

    当没有给定值时,将删除所有值
    当给定值时,仅
    在给定值不存在时删除该值,测试将失败

  6. (可选)在`修改测试`表中添加更多修改。
    指定的所有修改都必须成功,才能通过修改测试。当一项修改失败时,将不进行任何修改,条目将保持不变。

图 8b.3.6。 修改示例

图 8b.3.6。修改示例

8b.3.7 添加重命名请求 (moddn)

  1. 重命名元素:7.重命名条目(moddn)
  2. 选择重命名条目按钮。
  3. 旧条目名称 -字段中输入条目的名称,相对于 baseDN 。
    即如果要重命名cn=Little John Doe,ou=Users,并且将 baseDN 设置为dc=test,dc=com,则需要输入cn=John Junior Doe,ou=Users " 在旧条目名称- 字段中。
  4. 新专有名称 -字段中输入条目的新名称,相对于 baseDN 。
    当你只更改 RDN 时,当你还添加不同的子树时,它只会重命名条目
    ,例如,你从 cn=john doe,ou=Users 更改为 cn=john doe,ou=oldusers,它将移动条目。你还可以移动一个完整的子树(如果你的 LDAP 服务器支持这个!),例如 ou=Users,ou=retired,到 ou=oldusers,ou=users,这将移动完整的子树,加上子树中的所有退休人员到树上的新位置。

图 8b.3.7。 重命名示例

图 8b.3.7。重命名示例

8b.3.8 添加删除请求

  1. 重命名元素: 8.删除测试
  2. 选择删除按钮。
  3. 在 Delete -Field 中输入相对于 baseDN 的条目名称。
    即如果要删除cn=John Junior Doe,ou=Users,dc=test,dc=com,并将 baseDN 设置为dc=test,dc=com,则需要输入` cn =John Junior Doe,ou=Users " 在 Delete 字段中。

图 8b.3.8。 删除示例

图 8b.3.8。删除示例

8b.3.9 添加解绑请求

  1. 重命名元素:9\. Thread unbind
  2. 选择线程解除绑定按钮。这已经足够了,因为它只是关闭了当前的连接。系统已经知道所需的信息

图 8b.3.9。 解绑示例

图 8b.3.9。解绑示例

8b.4 添加监听器以查看/存储测试结果

你需要添加到测试计划的最后一个元素是侦听器。此元素负责将 LDAP 请求的所有结果存储在一个文件中并呈现数据的可视化模型。选择线程组元素并添加一个查看结果树(添加 → 侦听器 → 查看结果树)

图 8b.4。 查看结果树侦听器

图 8b.4。查看结果树侦听器

在此侦听器中,你可以查看三个选项卡,即采样器结果、请求和响应数据。

  1. 采样器结果只包含响应时间、返回码和返回消息
  2. 该请求对所提出的请求进行了简短描述,实际上此处不包含相关信息。
  3. 响应数据包含已发送请求的完整详细信息,以及接收到的答案的完整详细信息,这以(自定义)xml 样式给出。 完整的描述可以在这里找到。