Visual studio 2015 Visual Studio性能测试文件上载参数前缀日期

Visual studio 2015 Visual Studio性能测试文件上载参数前缀日期,visual-studio-2015,performance-testing,Visual Studio 2015,Performance Testing,我有一个问题,希望有一个简单的解决方案,我忽略了。。。这是我第一次在VisualStudio性能测试工具中使用文件上载参数。当我第一次运行web性能测试时,我的测试发现了该文件,并按照我的预期上传了它。但是,当我现在重新运行测试时,在结果的“详细信息”部分出现了500个内部服务器错误,我注意到我的文件名在请求中包含了一个前缀为正确名称的时间戳。由于我的文件名没有更改,这会导致visual studio无法找到我的文档 我为这个测试生成了代码,因为我需要手动重置SSL设置。我的文档被移动到test

我有一个问题,希望有一个简单的解决方案,我忽略了。。。这是我第一次在VisualStudio性能测试工具中使用文件上载参数。当我第一次运行web性能测试时,我的测试发现了该文件,并按照我的预期上传了它。但是,当我现在重新运行测试时,在结果的“详细信息”部分出现了500个内部服务器错误,我注意到我的文件名在请求中包含了一个前缀为正确名称的时间戳。由于我的文件名没有更改,这会导致visual studio无法找到我的文档

我为这个测试生成了代码,因为我需要手动重置SSL设置。我的文档被移动到testresults文件夹,因为我用它作为DeploymentItem修饰了方法。Visual studio在我生成代码时自动完成了这项工作,这很好,但可能是问题所在。。。任何帮助都将不胜感激!以下是我的发帖请求:

WebTestRequest request11 = new WebTestRequest((this.Context["Environment"].ToString() + "/Submit/Upload"));
request11.Method = "POST";
request11.Headers.Add(new WebTestRequestHeader("Referer", (this.Context["Environment"].ToString() + "/Submit/Index/fakefolder456")));
FormPostHttpBody request11Body = new FormPostHttpBody();
request11Body.FormPostParameters.Add(new FileUploadParameter("files", "Test3.pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation", true));
request11Body.FormPostParameters.Add("folderId", "fakeId123");
request11Body.FormPostParameters.Add("fileNamePairs", "[{\"OriginalFileName\" : \"Test3.pptx\",\"NewFileName\" : \"Test3.pptx\"}]");
request11Body.FormPostParameters.Add("__RequestVerificationToken", this.Context["$HIDDEN1.__RequestVerificationToken"].ToString());
request11.Body = request11Body;
yield return request11;
request11 = null;

解决了我的问题——我的文件上传参数将“生成唯一名称”设置为“true”。VisualStudio使文件名唯一的方法是将今天的日期和时间加在给定文件名的前面。此外,您需要确保要上载的文件已传输到输出文件夹。为此,我双击testsettings文件,选中“启用部署”框,然后将我的文件添加到要部署的文件中。我相信这将为每个测试部署该文件。。。最好只为我的测试部署该文件。这些链接有助于我的研究:

,

对于阅读Adrianhh在评论中的出色帮助的读者,我学习了如何使用Ben Day的Pluralsight课程“使用Visual Studio进行负载测试”编写web测试插件,我的插件如下所示:

namespace WebTestPlugins
{
    public class SsoAuth : WebTestPlugin
    {
        public override void PreWebTest(object sender, PreWebTestEventArgs e)
            {
            // Set the security protocol to TLS 1.2
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
            }
    }
}

哪个文件名?显示的代码中有3个
Test3.pptx
。还有
OriginalFileName
NewFileName
。测试运行时的请求和响应是什么?我只是出于调试/诊断的原因才将web测试转换为代码。我所需要的一切都通过插件做得更好。转换为代码会使测试的其余部分更难管理和修改。如果您确实需要通过转换为C代码来执行整个请求,那么我建议使用web测试的上下文(右键单击)菜单命令
Extract web test
,然后转换该请求。您知道我是否可以使用插件设置请求SecurityProtocolType吗?我以前从未使用过插件,但会研究。。。我必须添加这行代码以使性能测试正常工作,这指示我的请求使用TLS 1.2进行SSL加密:
ServicePointManager.SecurityProtocol=SecurityProtocolType.Tls12插件比转换为编码测试要容易得多。我想不出为什么
ServicePointManager…=代码不能在插件中使用。谢谢Adrianhh!我自学了如何使用这些插件,效果非常好。你说得对--这是一个比生成代码好得多的设计