本章包含:
配置 HTTP 1.1 设置
当选择 HTTP 1.1 作为传输协议时,你可以指定是否希望客户端请求使用 Keep-Alive 连接(NTLM 和 Digest HTTP 身份验证所需)。它还将被重用,用于从 GUI 或命令行调用测试套件。你将能够从适当工具的 Transport 选项卡向 SOAP 请求添加、修改和删除自定义 HTTP 数据头。此外,你还可以指定 HTTP Chunking,它允许将 HTTP 消息分成几个部分。Chunking 通常用于服务器响应,但客户机也可以对大型请求进行块处理。
从合适工具的 Transport 选项卡内的 Transport 下拉菜单选中 HTTP 1.1 之后,将在 Transport 选项卡的左窗格显示以下选项:常规
常规页面选项包括:
路由器端点:端点是服务端点的 URL。 默认情况下,端点被设置为 WSDL中定义的端点。除了 WSDL,还有其他三个端点选项:
- Default: 当选择此选项时,端点将是拥有该工具的测试套件中定义的端点。若要查看测试套件中定义端点的 GUI,请单击测试套件节点并单击工具的 Options 选项卡:
单击 Apply Endpoint to All Tests 按钮将把测试套件中所有工具的端点设置为 GUI 中定义的端点。 - Custom: 允许设置任何自定义端点。
- UDDI serviceKey: 描述在首选项面板的 WSDL/UDDI 选项卡中指定的 UDDI 注册中心中,使用 UDDI serviceKey 引用此服务器端点。
- Default: 当选择此选项时,端点将是拥有该工具的测试套件中定义的端点。若要查看测试套件中定义端点的 GUI,请单击测试套件节点并单击工具的 Options 选项卡:
- SOAP Action: 指定服务器处理请求的方式。如果选择了 Constrain to WSDL 复选框,则禁用该字段。只适用于 SOAP 客户机
Method: 指定用于处理请求的方法。如果选择了 Constrain to WSDL 复选框,则禁用该字段。只适用于消息传递客户机。调用的方法也可以指定为固定值、参数化值或脚本化值。
关于参数化值的更多详情, 请查阅 使用数据源、变量或来自其他测试的值对测试进行参数化。
使用固定值,可以使用
关于脚本化值的更多详情,请查阅 扩展和脚本基础${var_name}
语法对数据源值进行访问。也可以使用指定的环境变量。有关环境的更多详情,请查阅 在不同的环境中配置测试。消息切换模式:预计同步反应:指定是否需要响应主体。 总是期望 HTTP 响应数据头。 如果未选择此选项,则产品将发送单向消息并等待通知数据头(通常为“HTTP/1.1 202 Accepted”)。
- 连接设置:指定所选传输协议的保持连接或关闭连接。
- 保持连接:添加一个 "ConnectionKeep-Alive" 数据头文件。如果服务器支持,则请求保持活动连接。NTLM 和 Digest HTTP 身份验证需要这一内容。有关更多信息,请查阅 Error Handling。
- 关闭连接(默认):不输出额外的 HTTP 数据头,并执行常规的 HTTP 1.0 交换。这是 HTTP 1.0 的默认行为。
- HTTP Chunking: 以 块 的形式发送HTTP消息。SOAtest 和 Virtualize 不是从内存发送整个消息,而是一次读取一个块,然后发送该块。在每个块之前添加一个数字,以便接收端知道需要多少字节。
- 重定向设置 (只适用于消息传递客户机。比如,REST、SOAP、Messaging、EDI clients):指定是否自动遵循 HTTP 重定向。如果希望对原始请求和响应流量执行操作或验证(而不是只处理最终的 request/response 对),请禁用此选项。
- 压缩设置 (只适用于消息传递客户机。比如,REST、SOAP、Messaging、EDI clients):指定是否压缩请求和解压缩响应。
- Gzip 请求负载:Gzips 通过网络发送的请求有效负载。发送到附加工具的数据不会被压缩。注意,压缩不适用于配置为发送附件或 MTOM 模式的 SOAP 客户机。
- 解压 gzip 编码的响应负载:解压具有“Content-Encoding: gzip”作为数据头字段的响应有效负载。附加工具将接收未压缩的数据。
URL 参数
URL 参数 页面 (仅适用于消息传递客户机工具)选项包含:
- URL 参数:允许向 GET 请求的 URL 添加参数。单击 Add 按钮之后,可以在打开的对话框中指定 Parameters/Value 对。如果数据源可用,那么也可以参数化该值。
安全
Security> Client side SSL 页选项包括:
- 使用客户端密匙库:指定用于完成与服务器握手的密钥存储区。
Security> HTTP Authentication 页面选项包括:
- 执行身份验证:若要设置 basic、NTLM、Digest 或 Kerberos 身份验证,请选择 Perform Authentication 复选框,然后选择 Basic, NTLM, Kerberos, 或从 Type 下拉列表选择 Digest 。
- 对于 Basic, NTLM, 或 Digest,请输入 Username 和 Password 对请求进行身份验证。
- 对于 Kerberos,请输入 Service Principal 以对请求进行身份验证。如果未使用正确的用户名和密码,或者没有使用正确的服务主体,则不会对请求进行身份验证。
- 使用全局首选项:或者,如果在安全首选项中设置了全局 HTTP 身份验证属性,那么可以选择 Use Global Preferences 。 有关更多信息,请查阅 安全设置。
Security> OAUth Authentication 页面选项包括:
- 执行身份验证:启用此选项表明应该执行 Oauth 身份验证。包含 Oauth 特定信息的身份验证字段将被添加到 HTTP 数据头。
- Consumer Key and Secret Configuration: Consumer Key 和 Consumer Secret 都是客户端用来与服务器验证自身的凭证。Consumer Key 对每个使用它的用户来说都是唯一的。这两个步骤在所有步骤中都是必需的。
- Oauth 身份验证模式:指定要执行 Oauth 场景的哪个步骤。
- 获得请求令牌:使用 Consumer Key 和 Secret 从服务器请求 Request Token。
- 作用域:限制可以访问哪些信息。这些信息嵌入到 Consumer Key 中。
- Exchange Request Token for Access Token: 交换请求令牌和访问令牌的验证代码。
- 请求令牌:指定从服务器获得的临时请求令牌凭据(用于交换访问令牌)。
- Request Token Secret: 指定从服务器获得的临时请求令牌凭据(用于交换访问令牌)。
- 验证码:指定服务器提供的验证码;这将确认资源所有者将授予权限。
- Oauth 认证的签名请求:使用指定的访问令牌和访问令牌机密来让客户机访问用户的私有资源。
- Oauth 参数:允许你在 Oauth 令牌上指定其他参数。例如:时间戳和 nonce。
有关使用 Oauth 授权的详细信息,请参见 Using OAuth Authentication。
HTTP 数据头
HTTP Headers 页面选项包括:
- 添加:单击该选项以添加自定义 HTTP 数据头。
- 修改:单击该选项以修改所选定的 HTTP 数据头。将显示一个对话框,允许你修改标题的名称和值。如果工具使用数据源,则可以从数据源访问数据头的值。
- 删除:单击该选项,删除所选定的 HTTP 数据头。
这些控件用于覆盖数据字段。例如,你可以通过这些控件指定所需的名称和值来覆盖 Content-Type 数据头字段。
默认情况下,添加的以下数据头字段可以通过这些 UI 控件覆盖
Host
该值将包含来自 HTTP 端点或资源 URL 的主机名和端口号。
Content-Type
传出消息的媒体类型。 只有当传出消息包含由 HTTP 方法控制的主体时,才会发送此数据头。发送主体的是 POST、PUT 和 DELETE 方法,而不是 GET、OPTIONS、HEAD 或 TRACE。
默认值是根据发送的消息类型确定的。SOAP 消息的内容类型将根据 SOAP 版本的不同而有所不同,SOAP 1.1 使用“text/xml”,SOAP 1.2 使用“application/ SOAP +xml”。其他 XML 消息默认使用“text/ XML”。JSON 消息将使用 "application/json"。使用表视图配置的消息将使用 "application/x-www-form-urlencoded"。使用 MIME 附件发送的消息将包含“多部分”内容类型,其中包含“start”和“boundary”参数。属于EDI、固定长度、CSV 或自定义消息格式的消息将具有消息格式的媒体类型。
Content-Length
输出消息的大小(以字节为单位)。如果启用了“分块”传输编码,则不会发送此数据头。
下面的 HTTP 数据头是有条件配置的。它们是在该表之外配置的,或者具有必须动态生成的值。
SOAPAction
只有 SOAP 1.1 才发送该 HTTP 数据头。其设置在 General 页面的 SOAPAction 字段中。
Authorization
该数据头是根据首选项中指定的 HTTP 身份验证和 Oauth 设置构造的(在 Security> HTTP Authentication and Oauth 下)。NTLM、Digest 和 Kerberos 身份验证的值因各种因素而异,包括动态生成的挑战响应和安全令牌。
Connection
如果启用了 Close connection ,那么将该数据头添加到值为 close 的消息中。如果启用了 Keep-Alive connection (默认),那么不会发送该数据头。NTLM 和 Digest HTTP 身份验证必须启用 Keep-Alive。
Proxy-Authorization
此数据头是基于首选项中的代理身份验证设置以及服务器是否指示需要代理身份验证来构造的。
Cookies
Cookies 页面选项包括:
- 发送请求前重置现有 cookie:允许你清除当前会话,以便下一个 HTTP 调用启动一个新会话。
错误处理
在正常情况下,使用 HTTP 1.1 Keep-Alive 的测试用例将在场景期间重用单个连接。当使用 HTTP 1.1 Keep-Alive 的测试用例在试图发送或接收数据时超时,客户机将发出一个优雅的关闭传输连接的命令。场景中的下一个测试将启动一个新的连接,测试执行将正常继续。