нулевая ссылка в закодированном веб-тесте с system.datetime

Я был очень рад опробовать новую функцию в VS 2012 Ultimate, которая позволяет запускать полные нагрузочные тесты с закодированными веб-тестами.

К сожалению, я столкнулся с небольшой проблемой. Пытаясь отладить веб-тест, который я создал (и впоследствии отредактировал), я продолжаю получать 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, находится в последних двух строках, где я пытаюсь присвоить значения своим параметрам SessionTime и CreatedTime.

Этого не происходит при назначении на SessionID, так что это никоим образом не о WebTestIteration. Это также происходит, если я пытаюсь назначить другую строку (любую случайную строку, такую ​​как, скажем, «блабла») тем же параметрам.

Буду очень признателен за любую помощь! Заранее спасибо! :)


person Urliamo    schedule 05.06.2013    source источник


Ответы (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";
person Matt Johnson-Pint    schedule 05.06.2013