- •Введение
- •Спецификация на систему (тестовый пример):
- •Составление TestCases (далее тс) для тестирования системы
- •Язык скриптов написания автоматизированных тестов в среде Rational Robot
- •Элементы интерфейса и их функции
- •ImageButton
- •Вспомогательные функции
- •Автоматизация приложения-примера
- •1. Создание нового проекта
Язык скриптов написания автоматизированных тестов в среде Rational Robot
Язык скриптов – это программный язык, позволяющий настраивать и оптимизировать скрипты. Будучи скомпилированным в машинный код, язык скриптов заставляет тестируемую программу поверить в то, что пользователь выполняет определенные действия, и соответственно на них реагировать. Язык Rational Robot – SQABasic – модифицированная версия языка VisualBasic.
Переменные
Язык SQABasicпо своей структуре является языком с обязательным указанием типа переменной. Подобная архитектура языка подразумевает четкое определение типа переменной. Синтаксис определения переменной является следующим:
Dim [ Shared ] variableName [As type],
где Shared– флаг доступности переменной несколькими процессами одновременно. Принимает значенияShared, если доступ разрешен, иnull– если нет. Доступ контролируется операторомaccess;
variableName– имя переменной;
type– тип данных.
SQABasicтакже поддерживает определение констант. Синтаксис объявления константы является следующим:
[Global] Const constantName [As Type]= expression,
где Global– флаг определения глобальности переменной;
type – типа данных (Number или String);
constantName– имя константы;
expression– инициализирующее выражение.
Тип данных |
Описание |
Граничные значения |
Integer |
Короткое целое число |
Минимальное: -32768 Максимальное: 32767 |
Long |
Длинное целое число |
Минимальное: -2147483648 Максимальное: 2147483647 |
Single |
Короткая дробь |
От -3,402Е38 до -1,401Е-45 – отрицательные значения От 1,401Е-45 до 3,402Е38 – положительные значения |
Double |
Длинная дробь |
От -1,797Е308 до -4,94Е-324 – отрицательные значения От 4,94Е-324 до 1,797Е308 – положительные значения |
Currency |
Время |
Минимальное: -992337203685477,5808 Максимальное: 992337203685477,5807 |
STRING |
Строка |
Минимальное: нет символов Максимальное: 32767 символов |
STRING |
Строка фиксированной длины |
Минимальное: 1 символ Максимальное: 32767 символов |
Массивы данных
SQABasicподдерживает как жестко определенные массивы с возможностью изменять в дальнейшем количество элементов, так и динамические массивы. Массивы могут быть как одномерными, так и многомерными.
Объявление массива имеет следующий синтаксис:
Dim Array_name (Dim1, Dim2, …) as data-type,
где Array_name– имя массива;
Dim1,Dim2,…- измерения массива;
data-type– тип данных массива.
Обращение к элементам такого массива осуществляется посредством указания имени массива и порядкового номера элемента (начиная с 0):
Dim MyArray (10,100) as Integer
temp_var = MyArray[1.99]
Операторы
SQABasicподдерживает следующие операторы:
Оператор |
Значение |
+ |
Сложение |
- |
Вычитание |
* |
Умножение |
/ |
Деление |
Mod |
Деление нацело (остаток от деления) |
^ |
Возведение в степень |
Логические операторы
SQABasicподдерживает следующие логические операторы:
Оператор |
Значение |
And |
И |
Or |
ИЛИ |
Not |
НЕ |
Xor |
Бинарное И |
Eqv |
Бинарное ИЛИ |
Imp |
Бинарное НЕ |
Операторы сравнения
SQABasicподдерживает следующие операторы сравнения:
Оператор |
Значение |
> |
Больше |
>= |
Больше или равно |
< |
Меньше |
<= |
Меньше или равно |
= |
Равно |
<> |
Не равно |
Условные операторы
SQABasicподдерживает как условный операторIF…ELSE, так и условный операторSWITCH.
Условный оператор IF… ELSEимеет следующий синтаксис:
If condition Then statement_block
[ ElseIf expression then statement_block]…
[ Else statement_block ]
End If
При этом оператор Ifможет использоваться как с операторамиElseIfиElse, так и без них.
Условный оператор SWITCHимеет следующий синтаксис:
Select Case testexpression
[ Case expressionlist [statement_block] ]
[ Case expressionlist [statement_block] ]
[ Case expressionlist [statement_block] ]
End Select
Операторы цикла
SQABasicподдерживает все три оператора цикла,FOR, WHILEиDO…WHILE. При этом в операторахWHILEиDO…WHILEпоявляется операторUNTIL. При использовании этого оператора цикл будет исполняться до тех пор, пока не наступит ситуация, описанная в логическом выражении оператораUNTIL.
Оператор цикла FORимеет следующий синтаксис:
For counter = start TO end [STEP increment]
[statement_block]
[Exit For]
[statement_block]
Next [counter]
Оператор цикла WHILEимеет следующий синтаксис:
Do [{While | Until}condition]
[statement_block]
[Exit Do]
[statement_block]
Loop
Оператор цикла DO…WHILE имеет следующий синтаксис:
Do
[statement_block]
[Exit Do]
[statement_block]
Loop [{While | Until}condition]
Функции приведения типов
SQABasic по своей структуре является языком с обязательным указанием типа переменной. SQABasic предоставляет пользователю следующие функции приведения типов:
sNum=Str$( number ),
где sNum– переменная типа STRING, полученная приведениемnNum;
number– переменная, содержащая цифровое представление символьного значения.
Функция приводит переменную, содержащую цифровое представление символьного значения, в переменную типа STRING, содержащую соответствующее символьное значение.
nNum = Val (string$ ),
где nNum– цифровая переменная, полученная приведениемsToConvert;
string$ - переменная типа STRING, содержащая символьное представление цифрового значения.
Функция приводит переменную типа STRING, содержащую символьное представление цифрового значения, в цифровую переменную, содержащую соответствующее цифровое значение.
Существуют также следующие функции, которые не полностью попадают под определение «функции приведения типов», но при этом имеют большое значение для работы:
Функция |
Описание |
Asc (string$) |
Возвращает ASCII-код символаstring$ |
Chr (charocode$) |
Возвращает символ со значением ASCII-кода, равнымcharcode$ |
Ccur (expression) |
Трансформирует выражение expressionв значение типаCurrency |
CDbl (expression) |
Трансформирует выражение expressionв значение типаDouble |
Cint (expression) |
Трансформирует выражение expressionв значение типаInteger |
CLng (expression) |
Трансформирует выражение expressionв значение типаLong |
CSng (expression) |
Трансформирует выражение expressionв значение типаSingle |
CStr (expression) |
Трансформирует выражение expressionв значение типаString |
CVDate (expression) |
Трансформирует выражение expressionв значение типаVariantDate |
Функции работы с массивами
SQABasicпредоставляет пользователю следующие функции работы с массивами:
Erase Array [, Array]
Функция удаляет все элементы массива (реинициализирует их).
ReDim [Preserve] variableName (subscriptRange, …)
[As [New] type], …
где variableName– имя изменяемого массива;
subscriptRange– новые границы массива;
type – тип данных массива.
Функция изменяет заданные границы массива. Если опция Preserveуказан, то значения массива сохраняются. В противном случае переделанный массив реинициализируется.
Option Base lowerBound%
Функция устанавливает нижнюю границу массива по умолчанию (0 или 1).
LBound ( arrayName [, dimension] ),
где arrayName – имя массива;
dimension– измерение массива.
Функция возвращает нижнюю границу массива.
UBound ( arrayName [, dimension] )
Функция возвращает верхнюю границу массива.
Функции работы со строками
SQABasicпредоставляет пользователю следующие функции работы со строками:
GetField$ ( string$, field_number$, separator_chars$ ),
где string$- искомая строка;
field_number%- номер возвращаемого сегмента;
separator_chars%- флаг разбиения (символ, на основе которого будет произведена разбивка).
Функция возвращает сегмент строки по заданным параметрам.
Len( string$ )
Функция возвращает длину строки
Left$ (string$, length%)
Функция возвращает заданное количество символов length%, начиная от самого левого символьного значения.
Right$ (string$, length%)
Функция возвращает заданное количество символов length%, начиная от самого правого символьного значения.
LTrim$ (expression)
Функция возвращает строку с удаленными начальными пробелами.
RTrim$ (expression)
Функция возвращает строку с удаленными конечными пробелами.
Trim$ (expression)
Функция возвращает строку с удаленными пробелами.
LCase$( string$ )
Функция возвращает данную строку в нижнем регистре.
UCase$( string$ )
Функция возвращает данную строку в верхнем регистре.
Space$ (number)
Функция возвращает строку с заданным количеством пробелов.
String$ (number, string$)
Функция возвращает количество строки заданное количество раз.
InStr( [start$], string1$, string2$ )
Функция возвращает положение string2$вstring1$, гдеstart$- индекс начала поиска (0 если не найдена).
StrComp( string1$, string2$, [,compare%])
Функция сравнивает две строки, compare%- флаг учета регистра (0 – с учетом, 1 – без учета регистра).
SetField$( string$, field_number%, field$, separator_chars$),
где field_number%- начальная позиция изменения;
field$- новое значение символа;
separator_chars$- символ-разделитель.
Функция заменяет символы от field_number%до следующегоseparator_chars$наfield$вstring$.
string$ LIKE pattern$
Оператор проверяет строку на присутствие маски поиска pattern$.
Hex$ ( number )
Функция конвертирует десятичное число в восьмеричное и возвращает его строковое значение.
Oct$ ( number )
Функция конвертирует десятичное число в шестнадцатеричное и возвращает его строковое значение.
Mid$ ( string%, start% [, length%] ),
где start%- позиция в данной строке;
length%- длина вырезаемой части.
Функция возвращает часть данной строки длиной length%, начиная отstart%.