如何替换的 URL 请求中的参数
适用对象:System Center 2012 R2 Operations Manager, System Center 2012 - Operations Manager, System Center 2012 SP1 - Operations Manager
在捕获 web 应用程序通过使用 Web 应用程序编辑器时,它可以在您连接到该应用程序每次更改的一个或多个请求中包括的唯一信息。 此信息通常包含在对请求的响应,然后由一个或多个后续请求。
例如,应用程序可能会创建一个唯一的会话 ID 在用户登录时。 在每个请求中后登录过程应包含此会话 ID。 不正确的会话 ID 的情况下每个请求将失败。 因为您不知道这个值是什么直到运行时的第一个请求,它不能显式包含在请求的配置。 如果通过记录浏览器会话来创建 web 应用程序,在每个请求的 URL 中收集的会话 ID。 但是,当运行该应用程序时,请求失败,因为会话 ID 将具有一个值,不同于录制的会话 id。
若要配置这样的应用程序,可以从一个请求的响应的正文中提取上下文参数并在一个或多个后续请求中使用该参数的值。 您然后替换一个变量来表示该参数在后续请求中的显式值。 每次运行综合事务时,在其中定义该请求中填充参数。 当在后续请求中使用该变量时,则替换它收集的值与之前的请求发送到该应用程序。
单个应用程序可以使用任意数量的上下文参数。 任意数量的请求可以使用单个参数但必须运行的请求之后在其中定义该参数。
会话 ID 示例
请考虑应用程序在用户登录时在其中创建一个会话 ID 的示例。 此会话 ID 是登录页面后在每个请求所需。 若要实现这种情况下,您需要捕获的会话 ID 时首次生成的数据,然后在每个后续请求中使用该值。
通过使用中所述的过程启动 如何捕获 Web 应用程序记录 来捕获登录和后续操作。 用于登录到该应用程序和执行某些操作录制的会话可能类似于下面的示例。
http://www.myapp.com/home.aspx
http://www.myapp.com/search.aspx?query=testing&sessionid=32793279321721
http://www.myapp.com/results.aspx?sessionid=32793279321721
http://www.myapp.com/submit.aspx?sessionid=32793279321721
在此请求序列中,会话 ID 是由第一个请求中创建和使用第二个、 第三个和第四个请求。 当您运行此监视器时,它失败,因为第一个请求将生成一个无法匹配时捕获会话时所使用的会话 ID 的新的会话 ID。
若要配置与参数替换此请求序列,您必须在要为会话 id。 创建上下文参数的第一个请求上创建提取规则 提取规则将检查要查找的值的请求正文 sessionid 变量。 然后,您将修改的后续请求要此参数而不是值用于会话 id。
已修改的请求的外观类似于下面的示例。
http://www.myapp.com/home.aspx
http://www.myapp.com/search.aspx?query=testing&sessionid=$ParametersContext/sessionID$
http://www.myapp.com/results.aspx?sessionid=$ParametersContext/sessionID$
http://www.myapp.com/submit.aspx?sessionid=$ParametersContext/sessionID$
创建提取规则
上下文参数收集的 提取规则, ,并且每个提取规则收集单个上下文参数。 创建提取规则中的 属性 最初生成所需的数据的请求的对话框。 若要标识要提取的值,您必须查看从特定的请求返回的响应的正文。 可以查看该浏览器中返回的页面的源代码或使用一种工具,允许您检查 HTTP 响应的详细信息。 不能通过使用 Web 应用程序编辑器中查看的文本。
如果确定了包含的信息的请求需要提取、 您查看 提取规则 选项卡上的属性中的该请求并创建一个或多个提取规则。 下表中显示的每个提取规则的详细信息。
选项 |
描述 |
---|---|
上下文参数名称 |
输入要为提供的上下文参数的名称。 |
开头为 |
在标识的参数值开始的响应正文中输入的文本。 您应指定足够的字符以确保此字符串是唯一的。 参数的值启动立即在上一次指定字符之后。 |
结尾为 |
在标识参数值的末尾的响应正文中输入的文本。 参数的值为结束之前指定的第一个字符。 |
索引 |
如果在文本 开头 框出现不止一次,此值指示要使用的值。 如果文本仅出现一次,或它的第一个匹配项显示要提取的文本,则该值应为 0。 如果应提取第二个值,该值应为 1,依此类推。 |
匹配文本的搜索期间忽略大小写 |
指定是否忽略由要搜索的字符的大小写 开头 和 结尾 框。 |
执行提取的字符串的编码 URI |
指定是否要收集的提取的字符串进行编码。 |
将参数插入到一个请求
通过将显式值替换变量表示的参数来在请求中使用参数。 该变量的格式是 $ParametersContext/<ContextParameterName>$。 当运行请求时,该变量替换参数中提取的数据。
您可以通过使用两个以下方法之一来插入到请求的变量:
在 请求属性 对话框中,单击 常规 选项卡,然后依次 请求 URL 来修改用于请求的请求 URL。
在 请求属性 对话框中,单击 常规 选项卡,然后依次 插入参数 按钮。 使用 插入参数 请求的对话框。 这从访问 插入参数 按钮 常规 选项卡中 请求属性 请求的对话框。
使用参数提取的示例 Web 应用程序
以下过程提供了一个 web 应用程序中使用参数提取的示例。 此示例执行一个查询中的第一个条目 现在流行 Bing 主页部分。 由于定期更改此值,您必须首先连接到主页面并从响应的正文中收集的搜索词。 然后可以使用此术语来构建请求以执行实际搜索。
Bing 主页与如下所示 现在流行 突出显示的部分。
若要确定搜索词的响应正文中的位置显示,您可以查看页面的源代码。 源的一部分使用的 HTML 代码如下所示 现在流行 部分。 在此 HTML 代码中,您只需要在下图中突出显示的搜索字符串。 请求形成的 https://www.bing.com 跟此字符串。
您可能只是提取出这一术语本身,但它是在参数中包括整个字符串变得更加简单。 此字符串前都附有字符 现在 < h 3 > 常用 < / h 3 >< u l >< i >< href =" 和结尾的下一个匹配项 "。 这些都是定义参数提取时,将使用的值。
若要记录示例 web 应用程序
-
使用过程在 如何捕获 Web 应用程序记录 来记录 web 应用程序。
-
在录制,时连接到 https://www.bing.com。
-
(可选) 使用您的浏览器上的选项查看 Bing 主页上的源并找到 现在流行 的 HTML 代码段。
-
单击第一次搜索字词下 现在流行。
-
将记录保存到 web 应用程序。
-
删除最后一个请求,因为这不是必需。 若要删除的最后一个请求,选择请求,然后依次 删除 中 操作 窗格。 生成的请求应类似于以下 Url:
若要创建提取规则
-
选择的第一个请求,然后单击 属性 中 操作 窗格。
-
选择 提取规则 选项卡。
-
单击“添加”。添加提取规则 对话框随即打开。
-
在 添加提取规则 对话框中,在 上下文参数名称 框中,键入 SearchString。
-
在 开头 框中,键入 现在 < h 3 > 常用 < / h 3 >< u l >< i >< href ="。
-
在 结尾 框中,键入 "。 提取规则应与下图类似。
-
单击 确定 以保存并关闭提取规则。
-
单击 确定 以保存并关闭请求。
若要放置在请求中插入参数
-
选择第二次请求,然后单击 属性 中 操作 窗格。
-
在上 常规 选项卡上,单击 插入参数。
-
在 字符串 框中,将其删除之后的所有文本 **www.bing.com/**。
-
与光标就定位在 URL 的末尾,紧后面 www.bing.com, ,选择 SearchString 中 参数 框,然后再单击 插入。 这会插入该变量 $ParametersContext/SearchString$。 在最终请求外观与下图类似。
-
单击“确定”关闭对话框。
-
单击 确定 以保存并关闭请求。 修改过的请求序列应类似于下图。
-
单击 应用 以应用更改,然后关闭 Web 应用程序编辑器。