如何创建设备和目标

HTTP/S 监控会检查单个 URL 的可用性、性能、适当内容和错误。 它支持所有流行的请求类型、Cookie、表单提交、自定义标头、密码保护站点(基本 HTTP/S 授权以及 Cookie/脚本授权机制)和超时阈值。

HTTP/S 监控验证安全证书、检查证书颁发机构并执行证书过期检查。 它可以配置为在证书到期日期临近时向您发送提醒。

您可以将 HTTP (S) 请求参数转换为 上下文参数 以传递值,例如,从监控设备中其他请求的响应中检索。 您可以为 URL、标头、请求正文和准备/发布脚本设置上下文参数。 有关详细信息,请参阅 如何在 HTTP (S) 请求中使用上下文参数

批量导入

要一键为多个设备创建监控,请在“选择监控类型”页面上选择为 HTTP/S 监控类型提供的“批量导入”选项。 有关更多详细信息,请参阅 批量导入 |网页监控,HTTP/S和PING/ICMP设备 文章。

配置请求

URL

输入要执行任务的页面的 URL。 其格式应为:www.example.com。 您可以通过单击部分顶部的 “详细 切换器”打开视觉友好的输入模式。

SSL/证书检查

安全插座层 SSL 证书检查是 HTTP (S) 测试的一个标准方面。

提供以下其他选项:

  • 授权: 验证证书链是否包含可信或不信任的根证书。
  • 通用名称 (CN): 验证您导航的地址是否与地址签名的地址证书相匹配。
  • 日期: 验证证书到期日期。
  • 撤销: 验证证书的信任链不包含被撤销的证书。
  • 使用: 验证证书链,以不当使用中间证书。
  • 天中的过期提醒: 通知(作为错误)有关证书过期的提醒。
  • 客户证书:客户证书名称。

另请参阅:目标主机名或 IP 地址

时间验证阈值(秒内)

输入系统在结束任务并返回错误之前应等待网页响应的最大秒数。

最大超时值限制为 70 秒。 如果未设置阈值,则将默认的 70 秒超时应用于任务。

请求类型

您可以向网页发送获取或开机自检请求。 选择 GET 请求只需从 Web 服务器检索数据即可。 选择 POST 请求表示您包括一组数据供服务器执行。

如果您将请求类型设置为 POST,但未在下面的其他参数部分指定 POST 参数,则 POST 值将默认在保存任务后返回 GET。

网址重定向

如果 “关注重定向 “选项设置为 “是“,系统将遵循带有 301 响应发送的 URL 路径,并将每个重定向视为单独的 HTTP 请求。 它使您能够按照测试结果中的完整重定向链(请求重定向通过的所有链接)进行跟踪,包括初始 URL 和后续响应的响应时间。

如果您不仅需要测试初始 URL,还需要测试链中的所有 URL,我们建议您保留 “关注重定向 “选项。 例如,在重定向链中对每个 URL 执行 SSL 证书检查可能很有用。

在仅要测试初始 URL 的情况下,禁用 “关注重定向” 选项。

请注意,默认重定向限制设置为 10 重定向。 如果您希望系统执行特定数量的重定向(少于 10),则可以指定要在 准备脚本 字段中的重定向链中测试的 URL 数量:

string url;
url = "http://wtatour.com/";
(current.Task).TaskMaxRedirectAttempts = N;

N是我们要关注的重定向位置的数目的位置。 要遵循无重定向,只需将重定向位置的数目设置为 0。

内容验证

内容验证关键字用于确保预期内容加载到网页上。 在 关键字 字段中,您可以指定希望在网页内容中搜索的一个或多个单词或短语。 如果找不到预期的关键字,则任务将返回错误。

您可以在关键字字段中输入多个字符串。 输入的值可以通过逻辑表达式分隔,如下所示:

{[("keyword1"&"keyword2")|!"keyword3"]}

哪里:
[ ] 关键字表达式开始;
* = 关键字表达式结束;
() = 对括号进行分组;
和 = 逻辑和;
|• 逻辑 OR;
!• 逻辑不;
“字符串”–关键字。

成功的关键字表达必须包括以下开头和结尾括号:

{["keyword"]}

基本身份验证

基本身份验证计划用于允许用户访问某些网站上的内容。 一旦提供登录凭据,将随请求标题一起传递到 Web 服务器。

  • 用户名: 包含 HTTP/S 基本或摘要访问身份验证的用户名。
  • 用户密码: 包含 HTTP/S 基本或摘要访问身份验证的密码。

不要将基本身份验证与其他身份验证计划混淆,例如涉及无记名令牌的无记名身份验证和使用权限令牌的 OAuth 2.0。

阅读有关 基本身份验证用户名和密码 以及 监控基于 OAuth 2.0 的 API 的文章,了解更多信息。

该选项允许添加任何其他自定义标题。 例如,您可以定义与内容类型标题中的请求一起发送的数据的 MIME 类型:

Content-Type: text/html

如果没有为请求指定内容类型标题,则请求将使用默认内容类型 应用程序/x-www-形式-ulencode 发送

The default User-Agent header is set to:

User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0; .NET CLR 1.1.4322; .NET CLR 1.0.3705; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) DMBrowser/2.1 (SV)

However, the user-agent string can be replaced with any other string. To do this, add a custom header with the name “user-agent” and the specific value needed.

请求正文

如果选择了 POST、PUT 或修补程序方法之一,则可以在此指定有效载荷。 HTTP 请求主体内的内容可作为”原始”数据(JSON、XML 等)或静态名称值收集(表单数据)发送。

要处理名称值集合,您可以使用部分顶部的详细切换器打开 详细 的输入模式,并在相应的字段中提供请求参数名称和值。

要将”原始”数据与请求一起发送(如 JSON 对象),请在输入字段中输入 JSON 有效载荷。 您还可以动态更改请求主体。 例如,如果您需要将当前日期和时间作为 POST 请求的一部分发送,或将 JSON 有效载荷中的当前会话 ID 传递给远程服务器。 Dotcom-Monitor 使用剃刀语法和数据口罩实现动态更改 HTTP 请求有效负载。

  • 例。用于 HTTP 帖子请求的动态 JSON 机构

    要更好地了解动态 JSON 机构在 HTTP 请求中的工作原理,请查看以下示例。 假设我们需要在网站上提交订单,提交交易包括按顺序执行的三个基本步骤:

    1. 登录
    2. 入住
    3. 订单提交

    要设置按顺序执行的这些步骤的测试,我们需要 在一个监控设备内创建三个 HTTP 任务 (或负载测试,如果进行负载测试)。

    让我们假设我们需要发送当前时间和JSON中唯一的GUID,并请求HTTP以签入应用程序。 此外,要提交订单,应用程序还需要在登录时生成用户会话 ID 和订单时间。

    要实施此测试,我们首先需要将具有基本身份验证参数的登录请求配置到 Web 应用程序 Web 服务器。 接下来,我们需要配置一个 HTTP 请求,以便通过实际办理登机手续的时间和独特的 GUID 以及 JSON 机构。 例如,我们将使用 JSON 体内的剃刀语法输入以下字符串:

    { "CheckInTime": "@Model["CurrentTime"]", "GenGuid": "@Model["Guid"]" }

    @Model[” < 参数名称 > “] 在剃刀表达式中引用必要的上下文参数名称时。

    我们必须声明上下文参数,并指定在准备脚本字段中应如何处理邮政数据:

    context.Guid = Guid.NewGuid().ToString(); // uniq random string
    context.CurrentTime = DateTime.Now.ToUniversalTime().ToString("yyyy-MM-dd\Thh:mm:ss") + ".0Z"; // get current time in UTC
    ProcessPostDataByRazor(currentTask); // the call to process the Post Data content with the Razor engine

    结果 HTTP 请求将看起来与此类似:

    03:15:23
    POST http://www.dotcom-monitor.com/CheckIn
    { "CheckInTime": "2021-03-30T08:15:22.0Z", "GenGuid": "5c5e3d23-66fd-49d0-bd57-62c516aea7e7" }

    在下一步,我们需要配置 HTTP 请求以提交订单。 为此,我们将通过订单当前时间和会话 ID,以及项目的模型识别号,在 JSON 主体到目标终点。 请参阅以下请求的 JSON 机构:

    { "OrderTime": "@Model["OrderTime"]",   "VIEWSTATE": "@Model["Session"]",  "ModelID": "2128506" }

    要传递当前会话 ID 变量的价值,我们需要使用”查看状态”方法从第一个登录步骤中调用的登录页面检索该变量。 它可以在准备脚本中编码。 此外,为了模拟真实用户的思考时间,我们将用三分钟的偏移设置订单时间变量。 因此,准备脚本字段将包含以下字符串:

    context.OrderTime = DateTime.Now.AddMinutes(3).ToUniversalTime().ToString("yyyy-MM-dd\Thh:mm:ss") + ".0Z"; // order time + 3 min
    context.Session = (Tasks["Login"] as Http).body["//INPUT[@ID='__VIEWSTATE']", "VALUE"]; // track state value from Login page 
    ProcessPostDataByRazor(currentTask);

    由此产生的 HTTP 请求将看起来与此类似:

    03:15:45
    POST http://www.dotcom-monitor.com/Order
    { "OrderTime": "2021-03-30T08:18:45.0Z", "VIEWSTATE": "<Server Generated ViewState>", "ModelID": "2128506" }
                        

要了解如何配置具有动态更改有效载荷的 HTTP 请求,请参阅 HTTP 请求中如何动态更改有效载荷

DNS 选项

DNS 选项功能允许用户选择在监控任务期间如何执行域名服务器 (DNS) 请求。

要指定解决主机名的模式,请在 DNS 解析模式 部分选择可用模式之一。 有关功能配置的更多详细信息,请参阅 DNS 模式选项

自定义 DNS 主机部分包含主机名的 IP 地址映射。

要指定映射,请在相应的字段中输入 IP 地址和主机名称。

例子:

192.168.107.246 example.com user.example.com userauth.example.com tools.example.com
192.168.107.246 example.com
192.168.107.246 user.example.com
192.168.107.246 userauth.example.com

另请参阅 :DNS 模式选项

准备脚本和发布脚本

字段可以包含 C# 代码,可用于特定的 POST、GET、URL 数据或验证或发布自定义标题。 请参阅” 使用准备脚本”和”后脚本” 文章,或联系技术支持以了解有关使用的更多详细信息。