0

我很高兴能在 VS 2012 Ultimate 中试用新功能,它允许您使用编码的 Web 测试运行整个负载测试。

不幸的是,我遇到了一些问题。在尝试调试我生成(并在之后编辑)的 Web 测试时,我一直NullReferenceException在一个简单的声明行上得到一个。我根本无法理解为什么会发生这种情况。这是代码:

[Priority(0)]
public class CreateSessionCoded : WebTest
{
    public string[] SessionID;
    public string[] SessionTime;
    public string[] CreatedTime;

    public CreateSessionCoded()
    {
        this.Context.Add("Parameter1", "");
        this.PreAuthenticate = true;
    }

    public override IEnumerator<WebTestRequest> GetRequestEnumerator()
    {

        //string CurrentITR = this.Context.WebTestIteration.ToString();
        SessionID[this.Context.WebTestIteration] = Guid.NewGuid().ToString();
        SessionTime[this.Context.WebTestIteration] = System.DateTime.UtcNow.ToString();
        CreatedTime[this.Context.WebTestIteration] = System.DateTime.Now.ToString();

    ...

代码继续,但我得到 NRE 的部分是在最后两行,我尝试为我的SessionTimeCreatedTime参数分配值。

分配给 时不会发生这种情况SessionID,因此WebTestIteration无论如何都与 无关。如果我尝试将不同的字符串(任何随意的字符串,例如“blabla”)分配给相同的参数,也会发生这种情况。

我真的很感激任何帮助!提前致谢!:)

4

1 回答 1

1

您定义了三个数组:

public string[] SessionID;
public string[] SessionTime;
public string[] CreatedTime;

但是,在您尝试使用它们之前,它们并没有被初始化。

基本上,您正在这样做:

string[] foo;
foo[1] = "bar";

你需要这样做:

string[] foo = new string[10]; // sized appropriately
foo[1] = "bar";
于 2013-06-05T15:45:18.623 回答