gpt4 book ai didi

visual-studio - 如何为 Visual Studio Web 性能测试请求设置 "Content-Length"?

转载 作者:行者123 更新时间:2023-12-02 03:20:06 26 4
gpt4 key购买 nike

我已经在 VS 2015 中创建了一个网络性能测试,并且正在尝试设置请求 header 。当设置诸如“Referer”或“User-Agent”之类的 header 时,一切似乎都可以正常工作。我只是通过右键单击请求并添加新 header 来设置 header ,当我运行测试并检查请求时,我可以看到新 header 已添加。但是,如果我尝试添加一个名为“Content-Length”的新 header ,然后运行测试,则请求中会缺少此 header 。我收到一个 http 错误,我认为这是因为 VS 没有使用“Content-Length” header :

HTTP Error 411. The request must be chunked or have a content length.

最佳答案

我也遇到了这个问题。这些在线问题的一致趋势似乎是内容长度为 0 时。否则 VS 似乎会自行动态提出内容长度 header 。

问题说明
基本上,我不认为您可以手动添加它。 VS 想自己添加这个,所以真正的问题是为什么 VS 不添加这个?

问题来自请求只是一个“请求”而不是“Web 服务请求”,这里的显着区别在于后者包括“字符串主体”组件。我假设 VS 这样做是因为它记录的内容长度为 0。我在 Fiddler 中记录了我的工作流程并得到了相同的结果。我还假设添加 Content-Length header 不起作用的原因是,这是由 Visual Studio 计算的如果请求中有正文。

解决方法
使请求成为“Web 服务请求”,以便它包含 String Body 组件。在测试中,右击选择“Insert Web Service Request”。

我是从下面的帖子(其中还包括一个编码的 UI 测试示例)中了解到这一点的: https://social.msdn.microsoft.com/Forums/en-US/da492346-760e-4971-a666-8897ae7b35e3/length-required-error?forum=vstswebtest

插件选项
我找不到将现有请求转换为 Web 服务请求的方法,所以我创建了一个 WebTestRequestPlugin可以添加到请求中以动态地向请求添加正文。

  1. 将以下内容添加到您的项目中
  2. 更改命名空间以匹配您的项目名称
  3. 构建您的解决方案。
  4. 右键单击有问题的请求并单击“添加请求插件”,然后选择此插件。
using Microsoft.VisualStudio.TestTools.WebTesting;
using System.ComponentModel;

namespace YourProjectName
{
[DisplayName("Add Request Body")]
[Description("If a request is intended to have a content-length of 0, the Web Test won't include an empty String Body and the Content-Length header won't " +
"be added during test execution. This may result in a 411 - Length required error. This plugin can be added to that request to add a body to the request" +
"during test execution.")]
public class AddBodyToRequestPlugin : WebTestRequestPlugin
{
public AddBodyToRequestPlugin()
{

}

public override void PreRequest(object sender, PreRequestEventArgs e)
{
// Add string body if it doesn't exist yet.
if ( e.Request.Body == null )
{
e.Request.Body = new StringHttpBody();
}
}
}
}

关于visual-studio - 如何为 Visual Studio Web 性能测试请求设置 "Content-Length"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34129564/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com