Azure 负载测试不报告数据驱动的 url
Azure Load test does not report data driven urls
我有一个简单的负载测试,基本上是在恒定负载下执行单个网络测试。该 webtest 连接到一个 xml 文件数据源,该数据源包含 url 到我的整个站点。
当我从本地环境执行负载测试时,测试摘要页面报告 "Top 5 slowest pages" 中的个人 url,即“https://mysite.or/page”。但是当我从 Azure 执行相同的测试时(即将测试 运行 位置更改为 .testsettings 中的 VSTS),链接报告为 "https://{{Enviroment}}{{Sitemap.url.loc}}"。这似乎只是一个报告问题,我可以验证 azure 是否正确地从数据源调用 urls。为什么来自 Azure 的测试不报告从数据源构建的 url?
负载测试摘要:从本地执行
在 Azure 上执行相同的测试
网络测试:
<?xml version="1.0" encoding="utf-8"?>
<WebTest Name="GenericSitemap" Id="02954e81-f3a7-4c9c-94f5-3a4304f88361" Owner="" Priority="2147483647" Enabled="True" CssProjectStructure="" CssIteration="" Timeout="0" WorkItemIds="" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010" Description="" CredentialUserName="" CredentialPassword="" PreAuthenticate="True" Proxy="default" StopOnError="False" RecordedResultFile="" ResultsLocale="">
<Items>
<Request Method="GET" Guid="01c37ffa-92db-42e8-9d25-a042dcd0123d" Version="1.1" Url="https://{{Enviroment}}{{Sitemap.url.loc}}" ThinkTime="0" Timeout="300" ParseDependentRequests="True" FollowRedirects="True" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="utf-8" ExpectedHttpStatusCode="0" ExpectedResponseUrl="https://{{Enviroment}}{{Sitemap.url.loc}}" ReportingName="" IgnoreHttpStatusCode="False" />
</Items>
<DataSources>
<DataSource Name="Sitemap" Provider="Microsoft.VisualStudio.TestTools.DataSource.XML" Connection="|DataDirectory|\..\Data\sitemap.xml">
<Tables>
<DataSourceTable Name="url" SelectColumns="SelectOnlyBoundColumns" AccessMethod="Random" />
</Tables>
</DataSource>
</DataSources>
<ContextParameters>
<ContextParameter Name="Enviroment" Value="mysite.net" />
</ContextParameters>
</WebTest>
感谢@AdrianHHH。我通过创建一个 requestPlugin 并将其设置在数据驱动的请求上来让它工作。
这是我的插件:
[DisplayName("Set Request Params")]
[Description("Fix request urls when run from Azure")]
public class SetRequestParams : WebTestRequestPlugin
{
public override void PreRequest(object sender, PreRequestEventArgs e)
{
e.Request.ReportingName = e.Request.Url;
}
}
我有一个简单的负载测试,基本上是在恒定负载下执行单个网络测试。该 webtest 连接到一个 xml 文件数据源,该数据源包含 url 到我的整个站点。
当我从本地环境执行负载测试时,测试摘要页面报告 "Top 5 slowest pages" 中的个人 url,即“https://mysite.or/page”。但是当我从 Azure 执行相同的测试时(即将测试 运行 位置更改为 .testsettings 中的 VSTS),链接报告为 "https://{{Enviroment}}{{Sitemap.url.loc}}"。这似乎只是一个报告问题,我可以验证 azure 是否正确地从数据源调用 urls。为什么来自 Azure 的测试不报告从数据源构建的 url?
负载测试摘要:从本地执行
网络测试:
<?xml version="1.0" encoding="utf-8"?>
<WebTest Name="GenericSitemap" Id="02954e81-f3a7-4c9c-94f5-3a4304f88361" Owner="" Priority="2147483647" Enabled="True" CssProjectStructure="" CssIteration="" Timeout="0" WorkItemIds="" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010" Description="" CredentialUserName="" CredentialPassword="" PreAuthenticate="True" Proxy="default" StopOnError="False" RecordedResultFile="" ResultsLocale="">
<Items>
<Request Method="GET" Guid="01c37ffa-92db-42e8-9d25-a042dcd0123d" Version="1.1" Url="https://{{Enviroment}}{{Sitemap.url.loc}}" ThinkTime="0" Timeout="300" ParseDependentRequests="True" FollowRedirects="True" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="utf-8" ExpectedHttpStatusCode="0" ExpectedResponseUrl="https://{{Enviroment}}{{Sitemap.url.loc}}" ReportingName="" IgnoreHttpStatusCode="False" />
</Items>
<DataSources>
<DataSource Name="Sitemap" Provider="Microsoft.VisualStudio.TestTools.DataSource.XML" Connection="|DataDirectory|\..\Data\sitemap.xml">
<Tables>
<DataSourceTable Name="url" SelectColumns="SelectOnlyBoundColumns" AccessMethod="Random" />
</Tables>
</DataSource>
</DataSources>
<ContextParameters>
<ContextParameter Name="Enviroment" Value="mysite.net" />
</ContextParameters>
</WebTest>
感谢@AdrianHHH。我通过创建一个 requestPlugin 并将其设置在数据驱动的请求上来让它工作。
这是我的插件:
[DisplayName("Set Request Params")]
[Description("Fix request urls when run from Azure")]
public class SetRequestParams : WebTestRequestPlugin
{
public override void PreRequest(object sender, PreRequestEventArgs e)
{
e.Request.ReportingName = e.Request.Url;
}
}