Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3 модуль тест.docx
Скачиваний:
3
Добавлен:
18.09.2019
Размер:
34.17 Кб
Скачать
  1. Язык SQL – назначение, структура.

Назначение языка SQL

Любой язык работы с базами данных должен представлять пользователю следующие возможности:

  • Создавать базы данных и таблицы с полным описанием их структуры;

  • Выполнять основные операцииманипулирования данными, такие как вставка, модификация и удаление данных из таблиц;

  • Выполнять простые и сложные запросы;

Кроме того, язык работы с базами данных должен решать все указанные выше задачи при минимальных усилиях со стороны пользователя, а структура и синтаксис его команд должны быть достаточно просты и доступны для изучения. И, наконец,он должен быть универсальным, т.е. отвечать некоторому признанному стандарту, что позволит использовать один и тот же синтаксис и структуру команд при переходе от одной СУБД к другой. Язык SQL удовлетворяет практически всем этим требованиям.

SQL является примером языка преобразования данных, или же языка предназначенного для работы с таблицами с целью преобразования входных данных к требуемому выходному виду. Язык SQL, который определён стандартом ISO, имеет два основных компонента:

  • язык DDL (Data Definition Language), предназначенный для определения структур базы данных и управления доступом к данным;

  • язык DML (Data Manipulation Language), предназначенный для выборки и обновления данных.

До появления стандарта SQL3 язык SQL включал только команды определения и манипулирования данными; в нём отсутствовали какие-либо команды управления ходом вычислений. Другими словами, в этом языке не было команд IF ... THEN ... ELSE, GO TO, DO ... WHILE и любых других, предназначенных для управления ходом вычислительного процесса. Подобные задачи должны были решаться программным путём (с помощью языков програмирования или управления заданиями) либо интерактивно (в результате действий, выполняемых самим пользователем). По причине подобной незавершённости (с тоски зрения организации вычислительного процесса) язык SQL мог использоваться двумя способами. Первый предусматривал интерактивный работу, заключающуюся во вводе пользователем с терминала отдельных операторов SQL. Второй состоял во внедрении операторов SQL в программы на процедурных языках.

Язык SQL относительно прост в изучении.

  • Это непроцедурный язык, поэтому в нём необходимо указывать, какая информация должна быть получена, а не как её можно получить. Иначе говоря, язык SQL не требует указания методов доступа к данным.

  • Как и большинство современных языков, SQL поддерживает свободный формат записи операторов. Это означает, что при вводе отдельные элементы операторов не связаны с фиксированными позициями на экране.

  • Структура команд задаётся набором ключевых слов, представляющих собой обычные слова английского языка, такие как CREATE TABLE (Создать таблицу), INSERT (Вставить), SELECT (Выбрать).

    • CREATE TABLE Staff (staffNo VARCHAR(5), lName VARCHAR(15), salary DECIMAL(7,2));

    • INSERT INTO Staff VALUES ('SG16', 'Ivanov', 8000);

    • SELECT staffNo, lName, salary FROM Staff WHERE salary > 10000;

  • Язык SQL может использоваться широким кругом пользователей, включая администраторов баз данных (АБД), руководящий персонал компани, прикладных программистов и множество других конечных пользователей разных категорий.

В настоящее время для языка SQL существует международные стандарты, формально определяющие его как стандартный язык создания и манипулирования реляционными базами данных, каковым он фактически и является.

Структура языка SQL Язык SQL, соответствующий последним стандартам SQL:2003, SQL:1999 (и даже SQL/92), это очень богатый и сложный язык, все возможности которого трудно сразу осознать и тем более понять. Поэтому приходится разбивать язык на уровни, или слои, такие, что каждый уровень языка включает все конструкции, входящие в более низкие уровни (см. Приложение А, рисунок 3). В стандарте определяется несколько способов разбиения языка на уровни. В одной из классификаций язык разбивается на базовый (entry), промежуточный (intermediate) и полный (full) уровни. Эта классификация ориентирована, прежде всего, на производителей СУБД, в которых поддерживается SQL. Реализация базового уровня языка является обязательным условием хотя бы какого-то соответствия стандарту. Реализация промежуточного уровня желательна, и обычно именно такой уровень языка поддерживается ведущими компаниями-производителями SQL-ориентированных СУБД. Наконец, полный уровень языка является целью, к достижению которой следует стремиться. В данной классификации критерием отнесения той или иной возможности языка к некоторому уровню является оцениваемая создателями стандарта SQL (большая часть которых является сотрудниками ведущих компаний, производящих SQL-ориентированные СУБД) техническая сложность реализации этой возможности. Конечно, такая классификация важна и для программистов приложений баз данных, но только для того, чтобы оценить реальные возможности конкретной СУБД. Для понимания языка SQL это разбиение на уровни несущественно. Среди всех конструкций языка SQL можно выделить такие конструкции, которые можно было использовать при прямом (direct) взаимодействии конечного пользователя с СУБД. На следующем уровне, уровне встраиваемого (embedded) SQL, язык расширяется конструкциями, позволяющими использовать возможности прямого SQL в программах, написанных на традиционных языках программирования. На уровне динамического (dynamic) SQL во встраиваемый SQL добавляются конструкции, позволяющие приложениям обращаться к СУБД с конструкциями прямого SQL, которые динамически образуются во время выполнения программы.

  1. Основные составляющие команды select .

В Selenium существует три типа команд:

  • Действия – функциональное действие над тестируемым веб-приложением в браузере. Например, заполнение полей, нажатие на кнопку и другие;

  • Проверки – выполнение проверок на тестируемой странице. Например, проверка того, что определенное поле формы имеет указанное значение, или проверка заголовка окна;

  • Ожидания – организация как, сколько и какое событие Selenium будет дожидаться (ожидания загрузки страницы, ajax и т.д.).

Действия (actions). Синтаксис команд-действий в Selenium RC и Selenium IDE мало чем отличается, в примерах я буду приводит синтаксис для Selenium RC . Набор действий в Selenium достаточно широк,   основные  (самые используемые) действия:

  • open – открыть страницу в браузере по определенному адресу. Синтаксис команды – Open(string url). Пример использования – selenium.Open("http://blogs.logicsoftware.net/qa/");

  • click – произвести нажатие по элементу страницы. Синтаксис  команды  – Click(string locator). Пример использования – selenium.Click("LoginButton");

  • type – ввести значение в текстовое поле страницы. Синтаксис  команды  – Type(string locator, string value). Пример использования – selenium.Type("id_TextField_1", "test");

  •  select  – выбрать значение из выпадающего списка. Синтаксис  команды  –  Select (string selectLocator, string optionLocator). Пример использования – selenium. select  (TimeEntryTaskList, "Activity1") . В качестве опции для выбора элемента можно использовать следующие локаторы: label, value, id, index. При использовании локатора label для optionLocator, можно искать элемент по частичному совпадению label=regexp:Locator;

  • selectWindow – переключить фокус на другое окно. Синтаксис команды – SelectWindow(string windowID). Пример использования – selenium.selectWindow("id_dashboard");

  • getTitle – возвращает Title для текущей страницы. Синтаксис команды – GetTitle(). Пример использования – selenium.GetTitle();

  • getValue – возвращает значение элемента страницы. Синтаксис команды – GetValue(string locator). Пример использования – selenium.GetValue("id_TextBox1");

  • goBack – вернуться на предыдущую страницу. Синтаксис команды – GoBack(). Пример использования – selenium.GoBack();

  • close – закрыть текущее окно. Синтаксис команды – Close(). Пример использования - selenium.Close().

При использовании команд Selenium, вам сперва стоит научится работать с локаторами. Локатор (locator) – это строка, уникально идентифицирующая элемент веб-страницы. То есть то, с помощью чего ищется ищутся элементы на странице. Для того, чтобы выполнить действие на странице Selenium необходимо знать, с каким элементом на странице ему нужно выполнить требуемое действие. Для этого и служат локаторы. Практически для всех команд первым параметром идет именно локатор, поэтому стоит сразу учиться правильно подбирать локаторы. Типы локаторов в Selenium:

  • id – в качестве локатора используется атрибут id (уникальный идентификатор) элемента страницы;

  • name – в качестве локатора используется атрибут name элемента страницы;

  • identifier – используется атрибут id элемента, если по id-у элемент не найден, то поиск будет вестись по атрибуту name;

  • dom – поиска элемента происходит по DOM выражению;

  • xpath – используется для поиска элемента по XPath выражению;

  • link – поиск ссылок с указанным текстом;

  • css – данный тип локаторов основан на описаниях таблиц стилей (CSS).

Проверки (checks). Проверки одна из главных  составляющих  при написании теста. В Selenium IDE выделяется два типа проверок – assert и verify. Различие между ними заключается в том, что если тест “падет” при выполнении проверки assert, то тест прекращает свою работу и помечается как failed. А если не выполняется проверка verify, то тест отметит данную проверку как failed, но продолжит свою работу. В Selenium RC имена  команд-проверок  немного отличаются, нету деления проверок на assert и verify, вызов проверки начинается с Is. Например, команда в Selenium RC – IsElementPresent(string locator), в Selenium IDE данная команда будет иметь следующий вид verifyElementPresent (locator). Набор проверок в Selenium также достаточно широк. Команды, представленные для Selenium IDE:

  • verifyLocation / assertLocation – проверить адрес текущей страницы. Синтаксис команды – verifyLocation(URL);

  • verifyTitle / assertTitle – проверить значение Title страницы. Синтаксис команды – verifyTitle (Title);

  • verifyValue / assertValue – проверить значение элемента страницы. Синтаксис команды – verifyValue (locator, value);

  • verifyTextPresent / assertTextPresent – проверить, что страница содержит указанный в команде текст. Синтаксис команды – verifyTextPresent (value);

  • verifyElementPresent / assertElementPresent – проверить, есть ли на странице указанный элемент. Синтаксис команды – verifyElementPresent (locator).

Ожидания (wait). При выполнении некоторых команд, необходимо дожидаться загрузки страницы, или ее определенных элементов. Для этого предназначены команды-ожидания.

  • WaitForCondition – ожидание выполнения определенного события на странице, указанного в параметре script (например, загрузка определенного элемента страницы, или страницы в целом). Синтаксис команды – WaitForCondition(string script, string timeout);

  • WaitForFrameToLoad – ждет загрузки фрэйма на странице указанное количество времени. Синтаксис команды – WaitForFrameToLoad(string frameAddress, string timeout);

  • WaitForPageToLoad – ждет загрузки страницы указанное количество времени. Синтаксис команды – WaitForPageToLoad(string timeout);

  • WaitForPopUp – ждет появления PopUp элемента страницы указанное количество времени. Синтаксис команды – WaitForPopUp(string windowID, string timeout);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]