| Назад: 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 | Содержание | Дальше: Больше ничего нет 🙂 |