22. Использование TestRecorder

Назад: 21 Использование TestExecute Содержание Дальше: Больше ничего нет :)

TestRecorder – это набор библиотек для разных типов приложений (.NET, Java и т.п.), которые можно подключить к тестируемому приложению. После этого все действия пользователя с приложением можно сохранить в специальном бинарном формате, а затем в TestComplete импортировать этот бинарный файл и преобразовать его в тестовый скрипт.

Инструмент этот очень удобен тем, что пользователю необязательно запоминать порядок своих действий и для тестирования вполне можно использовать обезьянку :)

Рассмотрим пример использования TestRecorder в приложении .NET. Для примера возьмем приложение из прилагаемого архива (nUnitTestingApp.exe).

Прежде всего добавим новый компонент на панель инструментов (меню Tools – Choose Toolbox Items, вкладка COM Components, компонент TestRecorder Class).

Теперь модифицируем метод Form1_Load таким образом, чтобы сразу при открытии главной формы приложения начинал работать TestRecorder:

private void Form1_Load(object sender, EventArgs e)

        {

            this.axTestRecorder1.Start(true);

        }

Единственный параметр метода Start указывает, какую модель Object Tree Model необходимо использовать для записи. Если вы попытаетесь вставить в проект TestComplete-а бинарный скрипт с неправильным Object Tree Model, TestComplete выдаст ошибку:

В нашем случае мы везде пользуемся моделью Flat, поэтому передаем параметр true.

Дальше нам необходимо преобразовать метод button1_Click , который вызывается при нажатии на кнопку Plus, таким образом, чтобы он перехватывал исключения:

private void button1_Click(object sender, EventArgs e)

        {

            try

            {

                txtResult.Text = (PlusMethod(Convert.ToInt32(this.txtVar1.Text),

                    Convert.ToInt32(this.txtVar2.Text))).ToString();

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.Message + “\n\n” + @”Script is saved to file ‘c:\trdata1.bin'”, “Exception”);

                this.axTestRecorder1.Stop();

                this.axTestRecorder1.SaveDataToFile(@”c:\trdata1.bin”);

            }

        }

Теперь мы можем запустить приложение, ввести какие-то цифры в поля ввода, понажимать кнопки Plus и Minus, а затем ввести в одно из полей текст (не число) и нажать Plus. При этом программа попытается конвертировать текст из этого поля в тип Int32, что и вызовет исключение

Теперь мы можем открыть TestComplete и выбрать в нем пункт меню File – Import – TestRecorder Data – Record Script, выберем файл c:\trdata1.bin и в результате получим следующий вполне работоспособный скрипт:

function Test3()

{

  var  nUnitTestingApp_vshost;

  var  form1;

  var  button;

  var  textBox;

  nUnitTestingApp_vshost = Sys.Process(“nUnitTestingApp.vshost”);

  form1 = nUnitTestingApp_vshost.Form1;

  button = form1.WinFormsObject(“button1″);

  button.ClickButton();

  textBox = form1.WinFormsObject(“txtVar1″);

  textBox.Drag(82, 10, 43, 0);

  textBox.wText = “1”;

  button.ClickButton();

  textBox = form1.WinFormsObject(“txtVar2″);

  textBox.Drag(66, 7, 82, 0);

  textBox.wText = “\\\\”;

  button.ClickButton();

  nUnitTestingApp_vshost.Window(“#32770″).Window(“Button”, “OK”).ClickButton();

}

Из него ясно видно, что в поле txtVar2 были введены 2 слеша (“\\\\”) вместо числа, из-за чего и произошло исключение.

Назад: 21 Использование TestExecute Содержание Дальше: Больше ничего нет :)