C# 如何以编程方式将数据绑定添加到Web性能测试?

C# 如何以编程方式将数据绑定添加到Web性能测试?,c#,web-testing,C#,Web Testing,假设如下: [DataSource("SomeDataSource", "Microsoft.VisualStudio.TestTools.DataSource.XML", "|DataDirectory|\\SomeDataSource.xml", Microsoft.VisualStudio.TestTools.WebTesting.DataBindingAccessMethod.Sequential, Microsoft.VisualStudio.TestTools.WebTesting.

假设如下:

[DataSource("SomeDataSource", "Microsoft.VisualStudio.TestTools.DataSource.XML", "|DataDirectory|\\SomeDataSource.xml", Microsoft.VisualStudio.TestTools.WebTesting.DataBindingAccessMethod.Sequential, Microsoft.VisualStudio.TestTools.WebTesting.DataBindingSelectColumns.SelectOnlyBoundColumns, "SomeTable")]
[DataBinding("SomeDataSource", "SomeTable", "SomeColumn", "SomeContextParamter")]
public abstract WebTestBase: WebTest
{
     protected IList<WebTestRequest> _requests = new List<WebTestRequest>();

     public WebTestBase()
     {
         this.PreAuthenticate = true;
         this.Proxy = "default";
     }

    public override IEnumerator<WebTestRequest> GetRequestEnumerator()
    {
         // Error: Parameter doesn't exist in context.
         string parameter = this.Context["SomeContextParameter"].ToString();

         this.CreateRequests();

         // Some more code.
    }

    protected abstract IEnumerable<WebTestRequest> CreateRequests();
}

[CodedWebTest]
public DerivedWebTest: WebTestBase
{
     protected override IEnumerable<WebTestRequest> CreateRequests()
     {
          // Error: Parameter doesn't exist in context.
          string parameter = this.Context["SomeParameter"].ToString();

          // Some more code.
     }
}
[数据源(“SomeDataSource”、“Microsoft.VisualStudio.TestTools.DataSource.XML”、“DataDirectory”\SomeDataSource.XML”、Microsoft.VisualStudio.TestTools.WebTesting.DataBindingAccessMethod.Sequential、Microsoft.VisualStudio.TestTools.WebTesting.DataBindingSelectColumns.SelectOnlyBoundColumns、“SomeTable”)]
[数据绑定(“SomeDataSource”、“SomeTable”、“SomeColumn”、“SomeContextParameter”)]
公共摘要WebTestBase:WebTest
{
受保护的IList_请求=新列表();
公共WebTestBase()
{
this.PreAuthenticate=true;
this.Proxy=“default”;
}
公共重写IEnumerator GetRequestEnumerator()
{
//错误:上下文中不存在参数。
字符串参数=this.Context[“SomeContextParameter”].ToString();
这个.CreateRequests();
//更多的代码。
}
受保护的抽象IEnumerable CreateRequests();
}
[编码韦伯测试]
公共衍生WebTest:WebTestBase
{
受保护的重写IEnumerable CreateRequests()
{
//错误:上下文中不存在参数。
字符串参数=this.Context[“SomeParameter”].ToString();
//更多的代码。
}
}
这是正确地从数据源加载到上下文属性,就像应用DataBindingAttribute时一样


有什么想法吗?

您是否收到任何错误消息?此外,这似乎不是一个完整的代码示例。看到它是完整的,因为大部分重物都是由框架完成的。在DerivedWebTest类中,有一个名为Context的索引器属性,该属性使用属性中提供的数据填充。错误在于上下文属性没有使用数据源中的数据填充,尽管我可以验证属性DataSources是否已通过DataSourceAttribute加载数据。唯一没有显示它的是GetEnumerator方法,它在从WebTest派生的派生类中被重写;如果有帮助,我会添加它。添加更多代码以获取更多信息。