qtp что это такое

Наливные полы QTP

Записей не найдено.

Разновидности полимерных полов.

Наливные полы бывают нескольких видов, отличающихся друг от друга связующим компонентом, который входит в состав материала, толщиной и степенью наполнения. По типу связующего элемента в смеси, они делятся на:

По толщине покрытия и степени наполнения бывают:

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

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

Стоимость м2 готового полимерного напольного покрытия зависит от страны-производителя материала. К примеру, отечественные смеси могут быть в 3-4 раза дешевле импортных аналогичного качества. Особое место среди напольных покрытий, выполненных с использованием полимеров, занимают 3d наливные полы. По своим эксплуатационным характеристикам они ничем не отличаются от других видов. Но по эстетичности им равных не существует.

Технология их изготовления уникальна. Она позволяет создать на поверхности любое трёхмерное изображение, которое изменит помещение до неузнаваемости, подчеркнёт хороший вкус его хозяев и их социальный статус. Цены на наливные 3д полы несколько выше, чем на обычные, поскольку при их устройстве необходимо использовать дополнительные материалы, с помощью которых можно воссоздать трёхмерный рисунок.

Преимущества промышленных наливных полов.

К основным преимуществам относятся:

Как выбрать состав для наливного пола.

Выбор той или иной смеси зависит от многих критериев. Лучший вариант возможен при знании следующих факторов:

Любые затруднения с выбором полимеров могут быть решены сотрудниками компании QTP. У нас вы можете купить наливной пол для любого объекта. Мы предлагаем широкий ассортимент продукции собственного производства для укладки полов и ухода за ними, а также услуги по их заливке в Москве. Мы гарантируем высокое качество выпускаемой продукции, что может обеспечить хороший результат даже в тех случаях, когда покупатель примет решение сделать наливной пол своими руками. Это возможно при строгом соблюдении всех пунктов прилагаемой к материалу инструкции. Однако целесообразней всего воспользоваться услугами опытных профессионалов, успешно выполнивших большое количество заказов и, к тому же, имеющих специальное оборудование для их устройства.

Работа наших мастеров безупречна. Отзывы, носящие положительный характер, благодарные клиенты оставляют на сайте постоянно. Фотографии представленные на сайте довольно красноречиво свидетельствуют об профессионализме и работе предприятия в целом. Компанией предлагается доступная для большинства покупателей цена на наливной пол. Это возможно благодаря тому, что предприятие является производителем предлагаемой продукции. Наши сотрудники рассчитают оптимальный расход составов, что поможет клиенту значительно сократить его затраты. Обратившись к нам, вы сделаете правильный выбор и достойное вложение средств, о котором жалеть не придётся!

Сообщение отправлено успешно

В ближайшее время наши менеджеры свяжутся с вами.

Источник

Qtp что это такое

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Что пишут в блогах

Продолжу хвастаться статусом книги.

I’m sticking with “bug” rather than adopt another word such as “fault,” which is the current fad in publications because:

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Онлайн-тренинги

Что пишут в блогах (EN)

Разделы портала

Про инструменты

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такоеАвтор: Сергей Талалаев
Оригинальная публикация: QTP: Универсальный класс для работы с данными

1. Введение

У меня уже был опыт работы с продуктами HP Mercury, но он относился к предыдущей линейке, я имею в виду WinRunner. Естественно я ожидал некоторого сходства в процессах скриптостроения и организации самого фреймворка. Поэтому по свежим следам постараюсь изложить замеченные мною интересные моменты и привести свои примеры реализации некоторых функций.

2. Работа с Excel-данными

Еще работая с WinRunner, я убедился, что встроенная реализация Excel хранилища не настолько гибка, как мне бы хотелось. Поэтому, как всегда, я приготовился к миграции своих процедур для работы с Excel. И был немного удивлен отсутствию встроенных средств работы с БД. Но эта задача вполне по силам, когда за плечами вся мощь VB 🙂

2.1. Основные задачи

Итак, для начала определимся, зачем нам это нужно.
Я всегда выступал за то, чтобы подготовка тестовых данные для автоматических тестов была максимально упрощена с одной стороны, и, по возможности, исключала возможность ошибок при вводе с другой.

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

Было до вмешательства из QTP:

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Стало после редактирования из QTP:

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Чтобы избежать подобных казусов я давно применяю прямую вычитку из Excel файлов в массивы, используя для этого стандартные ODBC источники. Данная техника успешно прижилась уже на следующих тестовых фреймворках: Rational Robot, IBM Rational Functional Tester, WinRunner и надеюсь QTP

Помимо решения вышеперечисленных проблем мы избегаем также серьезного, на мой взгляд, ограничения по использованию одной таблицы для одного Excel sheet.

2.2. Предварительные шаги

В Excel документах имеется функциональность которая позволяет выделять значимые для пользователя подмножества ячееек в специальные структуры. Такие структуры называемые “именованными диапазонами” обеспечивают возможность обращаться к ним к ним через логические имена.
Кроме того (что гораздо более значимо для нас) такие диапазоны становятся видны как стандартные ODBC таблицы из внешних приложений.

Итак, для оформления требуемой совокупности ячеек в качестве “именованного диапазона” необходимо выполнить следющую последовательность действий:

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

или напрямую введя имя диапазона в Navigation Bar.

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Для проверки корректности вновь созданного именованного диапазона – выделите все ячейки диапазона и проверьте значение в Navigation Bar. Он должен содержать логическое имя вместо A1 нотации.

Важно отметить одно требование обязательно при использовании именованных диапазонов в качестве источника данных:
— первая строка нашего диапазона должна содержать имена столбцов, а не данные

2.3. Со стороны функциональной библиотеки

После всех подготовительных шагов осталось совсем немного поработать руками, а точнее пописать код.

Раз уж QTP 9.5 предоставил нам замечательную возможность работать c “почти” объектами – грех было бы ей не воспользоваться. Поэтому весь наш функционал мы гордо завернем в класс с благозвучным названием TestData.

Стоит напомнить, что QTP не видит напрямую классы, объявленные во внешних библиотеках, поэтому для каждого класса должна присутствовать функция создания экземпляра класса, в данном случае – CreateTestData

Кроме того мы должны иметь возможность инициировать наш класс не только через загрузку из Excel источника но и напрямую из кода. Именно для этих целей появились два метода: SetData и GetData

Public Function CreateTestData ()
Set CreateTestData = new TestData
End Function

Class TestData
Private mTestTable()

Private Sub Class_Initialize()
End Sub

Private Sub Class_Terminate()
Erase mTestTable
End Sub

ReDim mTestTable( UBound(DataArr, 1), UBound(DataArr, 2))
For i=0 to UBound(DataArr, 1)
For j=0 to UBound(DataArr, 2)
mTestTable(i,j) = DataArr(i,j)
Next
Next
End Sub

ReDim DataArr( UBound(mTestTable, 1), UBound(mTestTable, 2))
For i=0 to UBound(mTestTable, 1)
For j=0 to UBound(mTestTable, 2)
DataArr(i,j) = mTestTable(i,j)
Next
Next
End Sub

Итак, мы вплотную подобрались к центральной части нашего функционала – вычитке данных из Excel источника.
За данную часть функционала отвечают два взаимосвязанных метода: GetArrayFromStore и LoadFromStore
Первый позволяет нам выгрузить вычитанные данные во внешний массив, минуя наш класс, а второй наоборот – инициирует наш класс вычитанными данными.

‘ @Documentation Extracts test data from the Excel store
‘——————————————————
Public Sub GetArrayFromStore(Arr(), TableName, StoreName)
Dim Connection
Dim i, j, fieldcount, rowsfetched
Dim ArrTemp()

Set Connection = CreateObject(«ADODB.Connection»)
Connection.ConnectionString = «DBQ=» + StoreName + _
«;Driver=» + _
«;DriverId=790;FIL=excel 8.0;MaxBufferSize=2048» + _
«;MaxScanRows=8;PageTimeout=5;ReadOnly=1» + _
«;SafeTransactions=0;Threads=3;UserCommitSync=Yes»
Connection.Open

Set ConnRs = CreateObject(«ADODB.Recordset»)
ConnRs.CursorType = 3
Call ConnRs.Open(«select * from » + TableName, Connection)

‘matrix transposition
Redim Arr( UBound(ArrTemp,2), UBound(ArrTemp,1))
for i= LBound(ArrTemp,1) to UBound(ArrTemp,1)
for j= LBound(ArrTemp,2) to UBound(ArrTemp,2)
Arr(j,i) = ArrTemp(i,j)
next
next

‘ @Documentation Loads test data from Excel store to the TestData object
‘————————————————————————
Public Sub LoadFromStore (TableName, StoreName)
call GetArrayFromStore(mTestTable, TableName, StoreName)
End Sub

Как вы можете заметить, ничего сверхъестественного в реализации данного функционала нет. Более того очевидно, что с небольшими модификациями такую же процедуру можно применять для вычитки данных из любого ODBC источника.
Нам осталось добавить несколько сервисных методов, чтобы наш класс стал действительно удобным в использовании: GetCellByIndex, GetCellByName, ColumnCount, RowCount

‘ @Documentation Gets cell value by row-column indexes
‘——————————————————
Public Function GetCellByIndex (RowIndex, ColumnIndex)
GetCellByIndex = mTestTable(RowIndex+1, ColumnIndex)
End Function

‘ @Documentation Gets cell value by column name and row index
‘————————————————————-
Public Function GetCellByName (ColumnName, RowIndex)
Dim j

GetCellByName = mTestTable(RowIndex+1, j)
End Function

‘ @Documentation Returns number of columns into the test data table
‘——————————————————————
Public Function ColumnCount()
ColumnCount = UBound(mTestTable, 2)
End Function

2.4. Со стороны тестового скрипта

Как же будет выглядеть минимально необходимый набор операций для инициализации нашего класса и вычитки данных на стороне скрипта.

Dim TestArr() ‘Dynamic array
Dim TestD

Set TestD = CreateTestData()

Сall TestD.LoadFromStore(«NamedRange», «C:\ExcelStore.xls»)
Сall TestD.GetArrayFromStore(TestArr, «NamedRange», «C:\ExcelStore.xls»)
‘Call TestD.GetArrayFromURL(TestArr, «OrgChart@»+ «C:\ExcelStore.xls»)

Call TestD.SetData(TestArr)
Erase TestArr
Call TestD.GetData(TestArr)

Print TestArr(1,1)
Print TestD.GetCellByIndex(2,2)
Print TestD.GetCellByName(«Name», 2)
Print TestD.RowCount
Print TestD.ColumnCount

Обращаю ваше внимание, что массив (если вы решите выгружать данные из TestData объекта) должен быть динамическим, а не статическим.

Для более глубокого понимания функционала предлагаю пройтись по нему в режиме отладки и внимательно проконтролировать весь процесс.

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

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Предлагаю вам реализовать данную функциональность самостоятельно.

3. Выводы

Возможно, кого-то, во время прочтения статьи, не покидало ощущение бесполезности реализации дополнительной функциональности имея стандартные средства работы с Eхcel. Частично я уже объяснял причины необходимости этого выше (Основные задачи). Но кроме этого хотелось бы еще добавить в копилку знаний несколько замечаний.

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

Источник

Работа на площадке

Хранение

Заполнители (включая любые красители)

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такоеМешки с заполнителем и другими измельченными компонентами должны оставаться сухими и храниться в крытом помещении.Если пол бетонный, мешки должны быть уложены в штабель на паллетах в отдалении от стен.Заполнители должны храниться при температуре 15-20ºC, чтобы в последующем смесь продуктов для напольного покрытия имела корректные характеристики.

Смола и отвердитель как компоненты смеси

Контейнеры со смолой и отвердителем должны храниться в закрытом помещении при температуре 15-20°C, если производитель не заявлял о других условиях хранения для установленного срока годности.Продукты с низким значением температуры вспышки должны храниться в условиях, соответствующих специальным требованиям по их хранению.Порядок хранения должен быть организован таким образом, чтобы продукты могли использоваться в порядке номера партии.Важно, чтобы этикетки не срывались с контейнеров.

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

Подготовка фундаментной плиты, мелкозернистой бетонной стяжки и модифицированной полимером стяжки

Бетонное основание или стяжка должны быть подготовлены в соответствии с требованиями раздела «Подготовка бетонного основания и стяжки из мелкозернистого бетона».

Защита фундаментной плиты, мелкозернистой бетонной стяжки и модифицированной полимером стяжки
от повреждений и/или загрязнения

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

Смешивание

Общие положения

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

Функциональность или долговечность смешанного продукта будет зависеть от начальной температуры каждого компонента и смеси. Большинство реакций, в которые вступают смолы, являются экзотермическим, то есть в процессе отвердевания генерируется тепло, и неупакованный смешанный продукт станет очень горячим, что в свою очередь сократит его время жизни. В инструкциях производителей должны быть точные указания о долговечности при хранении надлежащим образом смешанного продукта при разных температурах. Ориентировочно повышение температуры на 10°C уменьшает долговечность в два раза, а понижение температуры на 10°C, увеличивает долговечность состава в два раза. Однако нежелательно смешивать и хранить продукты на основе эпоксидных или полиуретановых смол вне температурного диапазона 10-25°C, если данный продукт не был разработан специально для хранения при более широком температурном диапазоне.

Если рабочая зона, в которой производится смешивание, не примыкает к зоне хранения, нужно предусмотреть время, необходимое на перемещение смешиваемых материалов, чтобы точно рассчитать надлежащее время жизни.

Смешивание систем без заполнителя

Смешивание систем с заполнителем

Сначала нужно полностью перемешать жидкие компоненты, а затем постепенно добавлять заполнители, не прерывая процесс перемешивания. После добавления всех заполнителей нужно продолжать процесс перемешивания, чтобы обеспечить полное «смачивание» заполнителей смолой. Необходимо избегать чрезмерно энергичного перемешивания, поскольку оно может привести к нежелательному захвату воздуха. Важно обеспечить, чтобы любой материал, пристающий к боковинам, дну и углам смесительной емкости, также был полностью перемешан.

Укладка напольного покрытия

Грунтовка бетонного основания

Нужно выбрать такую грунтовку, которая соответствует характеру и влагосодержанию основания. После смешивания компонентов грунтовки ее нужно использовать для нанесения на подготовленное бетонное основание как можно скорее в течение ее времени жизни. Грунтовку нужно наносить равномерно жесткой кистью, меховым валиком, раклей с эластичной вставкой или кельмой. Бетонное основание должно быть полностью покрыто грунтовкой, важно, чтобы грунтовка максимально проникла внутрь основания. Желательно полное увлажнение поверхности, но не допустимо образование луж грунтовки.

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

Эти покрытия обычно наносятся щеткой, ракелем с эластичной вставкой или валиком в два или несколько слоев в соответствии с рекомендациями производителя. Как правило, процесс высыхания первого слоя длится не более 16-24 часов при температуре 15-20°C, причем наносить второй слой нельзя до тех пор, пока не исчезнет липкость первого слоя.

Многослойное напольное покрытие (тип 3)

Системы из наливного материала (тип 4)

Эти составы разработаны для обеспечения гладкой поверхности наливных полов. Они разливаются равномерно по всей поверхности с использованием зубчатой кельмы, ракеля или резинового шпателя. Немедленно после нанесения состава его нужно разгладить с помощью игольчатого валика, стараясь удалить попавший внутрь воздух. Нельзя использовать игольчатый валик там, где начинается загущение или частично начинается полимеризация. Качество обработки полученной поверхности в случае использования систем наливного материала сильно зависит от температуры, поэтому нужно строго соблюдать все рекомендации производителя относительно минимизации разницы температуры воздуха и плиты.

Затертые полимерные напольные покрытия (типы 5 и 6)

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

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

Упрочнение (армирование)

В исключительных случаях в систему напольных покрытий можно включить упрочнение, например, стеклоткань, чтобы минимизировать риски появления трещин или стыков бетонного основания. После грунтовки наносится тонкий слой наливного напольного покрытия, и армируется стекловолокном с нахлестом над стыками на 20-50 см. Затем наносится заключительный слой наливного напольного покрытия (до того, как полностью отвердеет первый слой).

Полимеризации напольных покрытий

Готовое напольное покрытие должно пройти этап полной полимеризации в соответствии с инструкциями производителя. Как правило, нужно 1-2 дня при температуре 15-20°C прежде, чем разрешить движение, и 3-7 дней до влажной уборки, использования химикатов и до запуска грузонапряженного трафика. На площадке при температуре ниже 10°C эти показатели будут существенно увеличены. Температура для полимеризации наливного напольного покрытия должна поддерживаться на уровне, по крайней мере, 3°C выше точки росы или ниже 75% относительной влажности, чтобы понизить риск образования матового налёта на напольном покрытии.

Некоторые наливные покрытия, особенно основанные на метилметакрилатной смоле, могут отвердевать намного быстрее, достигая рабочего уровня своих характеристик всего лишь за несколько часов.

Нужно всегда дожидаться требуемого уровня полимеризации, в частности, перед выполнением испытаний водой.

Источник

QTP — Краткое руководство

HP QTP использует Visual Basic Scripting (VBScript) для автоматизации приложений. Скриптовый движок не нужно устанавливать исключительно, так как он доступен как часть ОС Windows. Текущая версия VBScript — 5.8, которая доступна как часть Win 7. VBScript — это НЕ объектно-ориентированный язык, а объектно-ориентированный язык.

Инструменты тестирования

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

Классификация инструментов

Инструменты могут быть классифицированы по нескольким параметрам. Включает в себя —

Типы инструментов

Sr.No.Тип инструментаИспользуется дляИспользован
1Инструмент управления тестированиемУправление тестированием, планирование, регистрация дефектов, отслеживание и анализ.Тестеры
2Инструмент управления конфигурациейДля реализации, исполнения, отслеживания измененийВсе члены команды
3Инструменты статического анализаСтатическое ТестированиеРазработчики
4Тестовые данные Preperation ИнструментыАнализ и проектирование, генерация тестовых данныхТестеры
5Инструменты выполнения тестаРеализация, ИсполнениеТестеры
6Тестовые компараторыСравнение ожидаемых и фактических результатовВсе члены команды
7Инструменты измерения покрытияОбеспечивает структурное покрытиеРазработчики
8Инструменты для тестирования производительностиМониторинг производительности, время откликаТестеры
9Инструменты планирования и отслеживания проектаДля планированияМенеджеры проекта
10Инструменты управления инцидентамиДля управления тестамиТестеры

Где QTP подходит?

QTP — это инструмент функционального тестирования, который лучше всего подходит для регрессионного тестирования приложений. QTP — это лицензированный / коммерческий инструмент, принадлежащий HP, который является одним из самых популярных инструментов, доступных на рынке. Он сравнивает фактический и ожидаемый результат и сообщает о результатах в сводке выполнения.

QTP — история и эволюция

HP Quick Test Professional изначально принадлежал Mercury Interactive и был приобретен HP. Первоначально он назывался Astra Quick Test, а затем назывался Quick Test Professional, но последняя версия называется Unified Functional Tester (UFT).

История версий

Теперь давайте посмотрим на историю версий QTP.

ВерсииХронологические
Быстрый тест Astra v1.0 до v5.5 — Mercury InteractiveС мая 1998 по август 2001
QuickTest Professional v6.5 до v9.0 — Mercury InteractiveС сентября 2003 года по апрель 2006 года
Hp-QuickTest Professional v9.1 до v11.0 — приобретено и выпущено компанией HPС февраля 2007 по сентябрь 2010
Hp-унифицированное функциональное тестирование v11.5 до v11.53С 2012 по ноябрь 2013

преимущества

Разработка автоматизированных тестов с использованием VBScript не требует высококвалифицированного кодера и относительно проста по сравнению с другими объектно-ориентированными языками программирования.

Простота в использовании, простота навигации, проверка результатов и генерация отчетов.

Легко интегрируется с инструментом управления тестированием (Hp-Quality Center), который позволяет легко планировать и контролировать.

Может также использоваться для тестирования мобильных приложений.

Поскольку это продукт HP, HP и его форумы предоставляют полную поддержку для решения технических проблем.

Разработка автоматизированных тестов с использованием VBScript не требует высококвалифицированного кодера и относительно проста по сравнению с другими объектно-ориентированными языками программирования.

Простота в использовании, простота навигации, проверка результатов и генерация отчетов.

Легко интегрируется с инструментом управления тестированием (Hp-Quality Center), который позволяет легко планировать и контролировать.

Может также использоваться для тестирования мобильных приложений.

Поскольку это продукт HP, HP и его форумы предоставляют полную поддержку для решения технических проблем.

Недостатки

В отличие от Selenium, QTP работает только в операционной системе Windows.

Поддерживаются не все версии Браузеров, и тестировщикам нужно ждать выпуска исправления для каждой из основных версий.

Сказав, что это коммерческий инструмент, стоимость лицензирования очень высока.

Несмотря на то, что время сценариев меньше, время выполнения относительно выше, так как оно загружает ЦП и ОЗУ.

В отличие от Selenium, QTP работает только в операционной системе Windows.

Поддерживаются не все версии Браузеров, и тестировщикам нужно ждать выпуска исправления для каждой из основных версий.

Сказав, что это коммерческий инструмент, стоимость лицензирования очень высока.

Несмотря на то, что время сценариев меньше, время выполнения относительно выше, так как оно загружает ЦП и ОЗУ.

QTP — автоматизированный процесс тестирования

Для любой автоматизированной реализации инструмента, следующие этапы / этапы этого. Каждый из этапов соответствует определенному виду деятельности, и каждый этап имеет определенный результат.

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Анализ возможности автоматизации тестирования — Первый шаг — проверить, может ли приложение быть автоматизировано или нет. Не все приложения могут быть автоматизированы из-за его ограничений.

Выбор подходящего инструмента — Следующим наиболее важным шагом является выбор инструментов. Это зависит от технологии, в которой построено приложение, его возможностей и использования.

Оцените подходящую структуру. После выбора инструмента следующим действием будет выбор подходящей структуры. Существуют различные виды структур, и каждая структура имеет свое значение. Мы подробно рассмотрим фреймворки позже в этом уроке.

Создайте подтверждение концепции — Подтверждение концепции (POC) разработано по сквозному сценарию, чтобы оценить, может ли инструмент поддерживать автоматизацию приложения. Это выполняется по сквозному сценарию, который обеспечивает автоматизацию основных функций.

Разработка Automation Framework — После создания POC выполняется разработка инфраструктуры, которая является важным шагом для успеха любого проекта автоматизации тестирования. Структура должна быть построена после тщательного анализа технологии, используемой приложением, а также его основных функций.

Разработка тестового сценария, выполнение и анализ. После завершения разработки сценария выполняются сценарии, анализируются результаты и регистрируются дефекты, если таковые имеются. Тестовые сценарии обычно контролируются версией.

Анализ возможности автоматизации тестирования — Первый шаг — проверить, может ли приложение быть автоматизировано или нет. Не все приложения могут быть автоматизированы из-за его ограничений.

Выбор подходящего инструмента — Следующим наиболее важным шагом является выбор инструментов. Это зависит от технологии, в которой построено приложение, его возможностей и использования.

Оцените подходящую структуру. После выбора инструмента следующим действием будет выбор подходящей структуры. Существуют различные виды структур, и каждая структура имеет свое значение. Мы подробно рассмотрим фреймворки позже в этом уроке.

Создайте подтверждение концепции — Подтверждение концепции (POC) разработано по сквозному сценарию, чтобы оценить, может ли инструмент поддерживать автоматизацию приложения. Это выполняется по сквозному сценарию, который обеспечивает автоматизацию основных функций.

Разработка Automation Framework — После создания POC выполняется разработка инфраструктуры, которая является важным шагом для успеха любого проекта автоматизации тестирования. Структура должна быть построена после тщательного анализа технологии, используемой приложением, а также его основных функций.

Разработка тестового сценария, выполнение и анализ. После завершения разработки сценария выполняются сценарии, анализируются результаты и регистрируются дефекты, если таковые имеются. Тестовые сценарии обычно контролируются версией.

QTP — Настройка среды

QTP является коммерческим инструментом, и пробную версию можно загрузить непосредственно с сайта HP. Для загрузки доступна только текущая версия, которая является Единым функциональным тестированием (11.5x). Ниже приводится URL-адрес, с которого можно загрузить пробную версию.

Процесс установки

Шаг 1. Нажмите ссылку «Испытания и демонстрации» и выберите «Единое функциональное тестирование HP 11.50 CC English SW E-Media Evaluation», как показано ниже —

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Шаг 2. После выбора «HP Unified Functional Testing 11.50» откроется мастер загрузки. Заполните Личные данные и нажмите Далее.

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Шаг 3 — Прочтите «Условия использования» и нажмите «ДАЛЕЕ».

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Шаг 4 — Откроется окно загрузки. Теперь нажмите кнопку «Скачать».

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Шаг 6 — После выполнения установочного файла, для установки, выберите «Unified Functional Testing Seting» из списка, как показано ниже —

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Шаг 7 — Затем нажмите Далее, чтобы продолжить.

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Шаг 9 — После выбора необходимых плагинов для установки нажмите Далее. После завершения установки у вас появится окно Готово.

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Шаг 10. После завершения установки открывается диалоговое окно «Дополнительные требования для установки». Выберите все в списке, кроме «Запустить мастер установки лицензии» и нажмите «Выполнить». Нам НЕ нужно выбирать «Запуск мастера установки лицензии», потому что мы устанавливаем пробную версию, которая по умолчанию дает лицензию на 30 дней.

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Шаг 11 — После выполнения дополнительных требований к установке отображается галочка, которая, в свою очередь, указывает, что компоненты установлены успешно. Теперь нажмите Закрыть.

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Запуск UFT и страницы добавления модулей

Шаг 1 — После установки приложение можно запустить из меню «Пуск», как показано на рисунке.

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Шаг 2 — Появится страница лицензии. Вы можете нажать Продолжить, так как мы установили пробную лицензию.

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Шаг 3 — Откроется диалоговое окно «Надстройки», в котором пользователь может выбрать необходимые надстройки.

Примечание. Не загружайте все надстройки, а только необходимые надстройки и нажмите кнопку «ОК».

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Шаг 4 — После загрузки необходимых надстроек для пользователя открывается инструмент UFT 11.5, и первый взгляд на UFT выглядит, как показано ниже —

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

QTP — запись и воспроизведение

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

Шаги для записи и воспроизведения следующие —

Шаг 1 — Нажмите «Новый» тест на стартовой странице, как показано ниже —

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Шаг 2 — Нажав «Новая» ссылка, откроется новое окно теста, и пользователь должен выбрать тип теста. Выберите «Тест GUI», дайте имя для теста и место, где его нужно сохранить.

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Шаг 3. После создания нового теста открывается новый экран теста, как показано ниже. Теперь перейдите на вкладку «Action1», которая создается с 1 действием по умолчанию.

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Шаг 4 — Откройте меню «Запись» и выберите «Настройки записи и запуска», как показано ниже —

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Шаг 5 — Откроется диалоговое окно «Параметры записи и запуска», и в зависимости от типа приложения можно выбрать «Веб-приложения», «Java» или «Windows». Например, здесь мы запишем веб-приложение (http://easycalculation.com/).

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Шаг 6 — Нажмите Запись. Internet Explorer открывается автоматически с веб-адресом https://www.easycalculation.com/ в соответствии с настройками. Нажмите ссылку «Числа» в разделе «Алгебра», введите число и нажмите «Рассчитать». После завершения действия нажмите кнопку «Стоп» на панели записи. Вы заметите, что скрипт генерируется, как показано ниже —

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Шаг 7 — Теперь воспроизведите сценарий, нажав кнопку воспроизведения. Сценарий воспроизводится, и результат отображается.

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Шаг 8 — По умолчанию открывается окно результатов, в котором точно отображается метка времени выполнения, пройденных и неудачных шагов.

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Значение записи и воспроизведения

Он используется в качестве метода предварительного расследования, чтобы проверить, может ли UFT поддерживать технологию / приложение.

Используется для создания теста базовой функциональности приложения или функции, которая не требует длительного обслуживания.

Он может использоваться для записи как движений мыши, так и ввода с клавиатуры.

Он используется в качестве метода предварительного расследования, чтобы проверить, может ли UFT поддерживать технологию / приложение.

Используется для создания теста базовой функциональности приложения или функции, которая не требует длительного обслуживания.

Он может использоваться для записи как движений мыши, так и ввода с клавиатуры.

Режимы записи

Обычная запись — это режим записи по умолчанию, в котором записываются объекты и операции, выполняемые в тестируемом приложении.

Аналоговая запись — записывает не только действия клавиатуры, но и движения мыши относительно экрана или окна приложения.

Запись низкого уровня — записывает точные координаты объектов, независимо от того, распознает ли UFT объект или НЕ. Он просто записывает координаты, следовательно, НЕ записывает движения мыши.

Запись Insight — UFT записывает операции, основываясь на его внешнем виде, а не на его собственных свойствах.

Обычная запись — это режим записи по умолчанию, в котором записываются объекты и операции, выполняемые в тестируемом приложении.

Аналоговая запись — записывает не только действия клавиатуры, но и движения мыши относительно экрана или окна приложения.

Запись низкого уровня — записывает точные координаты объектов, независимо от того, распознает ли UFT объект или НЕ. Он просто записывает координаты, следовательно, НЕ записывает движения мыши.

Запись Insight — UFT записывает операции, основываясь на его внешнем виде, а не на его собственных свойствах.

Как выбрать режим записи

После нажатия кнопки «Запись» пользователь может выбрать режим записи из области записи, которая появляется на экране, как только начинается запись. Выбор может быть сделан из любого из тех, что были обсуждены выше.

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

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

Сценарий, записанный в режимах «По умолчанию», «Аналоговый» и «Низкий уровень», приведен ниже —

Записи, использующие режим записи Insight, будут такими, как показано ниже —

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

QTP — Хранилище объектов

Хранилище объектов

Репозиторий объектов — это набор объектов и свойств, с помощью которых QTP сможет распознавать объекты и воздействовать на них. Когда пользователь записывает тест, объекты и его свойства захватываются по умолчанию. Без понимания объектов и их свойств QTP НЕ сможет воспроизводить сценарии.

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

Sr.No.Тема и описание
1Объект Spy и его особенности

Чтобы понять использование объекта шпиона и связанных с ним функций.

Добавление, редактирование, удаление объектов из репозитория объектов и связанных с ним функций.

Имеет дело с общим объектом и локальным репозиторием объектов и их контекстом в отношении сценариев.

Имеет дело с обстоятельствами для использования пользовательских объектов.

Имеет дело с преобразованием OR в XML и использованием репозитория объектов в качестве XML.

Такие операции, как Compare OR ‘, Merge OR для эффективной работы с репозиторием объектов.

Обстоятельства, в которых используются порядковые идентификаторы, и их преимущества.

Использование дочерних объектов для эффективного написания сценариев

Чтобы понять использование объекта шпиона и связанных с ним функций.

Добавление, редактирование, удаление объектов из репозитория объектов и связанных с ним функций.

Имеет дело с общим объектом и локальным репозиторием объектов и их контекстом в отношении сценариев.

Имеет дело с обстоятельствами для использования пользовательских объектов.

Имеет дело с преобразованием OR в XML и использованием репозитория объектов в качестве XML.

Такие операции, как Compare OR ‘, Merge OR для эффективной работы с репозиторием объектов.

Обстоятельства, в которых используются порядковые идентификаторы, и их преимущества.

Использование дочерних объектов для эффективного написания сценариев

QTP — Действия

Действия помогают тестировщикам разделять скрипты на группы операторов QTP. Действия аналогичны функциям в VBScript; Однако есть несколько отличий. По умолчанию QTP создает тест с одним действием.

Доступ к свойствам действия можно получить, щелкнув правой кнопкой мыши в окне редактора сценариев и выбрав «Свойства».

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Свойства действия содержат следующую информацию —

Типы действий

Есть три типа действий —

Одноразовое действие — действие, которое может быть вызвано только в том конкретном тесте, в котором оно было разработано, и может быть вызвано только один раз.

Повторно используемое действие — действие, которое может вызываться несколько раз, для любого теста, в котором оно находится, а также может использоваться любыми другими тестами.

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

Одноразовое действие — действие, которое может быть вызвано только в том конкретном тесте, в котором оно было разработано, и может быть вызвано только один раз.

Повторно используемое действие — действие, которое может вызываться несколько раз, для любого теста, в котором оно находится, а также может использоваться любыми другими тестами.

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

Работа с действиями

Есть три варианта для вставки действия. Нажмите на каждый из них, чтобы узнать больше о выбранном типе действия.

Sr.No.Тип действия и описание
1Вставить призыв к новому действию

Вставляет новое действие из существующего действия

Вставляет копию существующего действия

Вставляет вызов в существующее повторно используемое действие

Вставляет новое действие из существующего действия

Вставляет копию существующего действия

Вставляет вызов в существующее повторно используемое действие

QTP — Datatables

DataTable, похожий на Microsoft Excel, помогает тестировщикам создавать управляемые данными тестовые случаи, которые можно использовать для многократного запуска действия. Есть два типа Datatables —

Local DataTable — Каждое действие имеет свой собственный частный источник данных, также известный как локальный источник данных, к которому также можно получить доступ через действия.

Global DataTable — каждый тест имеет одну глобальную таблицу данных, которая доступна для всех действий.

Local DataTable — Каждое действие имеет свой собственный частный источник данных, также известный как локальный источник данных, к которому также можно получить доступ через действия.

Global DataTable — каждый тест имеет одну глобальную таблицу данных, которая доступна для всех действий.

Лист данных можно открыть на вкладке «Данные» QTP, как показано ниже —

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Чтобы выполнить тестовый набор для определенного количества итераций, можно установить итерации с глобальными данными в диалоговом окне «Настройки теста», доступ к которому можно получить с помощью «Файл» → «Настройки» → «Выполнить» (вкладка), как показано ниже —

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

пример

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Операции с данными

Существует три типа объектов для доступа к DataTable. Операции с DataTable можно понять, пройдя через следующее:

Sr.No.Тип объекта и описание
1Методы таблицы данных

Предоставляет подробную информацию о методах таблицы данных.

Предоставляет подробную информацию о методах DTParameter.

Предоставляет подробную информацию о методах DTSheet.

Предоставляет подробную информацию о методах таблицы данных.

Предоставляет подробную информацию о методах DTParameter.

Предоставляет подробную информацию о методах DTSheet.

QTP — CheckPoints

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

Типы контрольных точек

Стандартная контрольная точка

Проверяет значения свойств объекта в тестируемом приложении и поддерживается всеми средами надстроек.

Проверяет область вашего приложения как растровое изображение

Проверка содержимого файла

Проверяет информацию в таблице. Не все среды поддерживаются.

Текстовая контрольная точка

Убедитесь, что текст, отображаемый в определенной области в приложении для Windows, соответствует заданным критериям.

Контрольная точка области текста

Проверяет, отображается ли текстовая строка в определенной области в приложении для Windows в соответствии с указанными критериями.

Контрольная точка доступности

Проверяет страницу и сообщает области сайта, которые могут не соответствовать Рекомендациям по доступности веб-контента Консорциума World Wide Web (W3C).

Контрольная точка страницы

Проверяет характеристики веб-страницы. Он также может проверить наличие битых ссылок.

Контрольная точка базы данных

Проверяет содержимое базы данных, к которой обращается тестируемое приложение.

Контрольная точка XML

Стандартная контрольная точка

Проверяет значения свойств объекта в тестируемом приложении и поддерживается всеми средами надстроек.

Проверяет область вашего приложения как растровое изображение

Проверка содержимого файла

Проверяет информацию в таблице. Не все среды поддерживаются.

Текстовая контрольная точка

Убедитесь, что текст, отображаемый в определенной области в приложении для Windows, соответствует заданным критериям.

Контрольная точка области текста

Проверяет, отображается ли текстовая строка в определенной области в приложении для Windows в соответствии с указанными критериями.

Контрольная точка доступности

Проверяет страницу и сообщает области сайта, которые могут не соответствовать Рекомендациям по доступности веб-контента Консорциума World Wide Web (W3C).

Контрольная точка страницы

Проверяет характеристики веб-страницы. Он также может проверить наличие битых ссылок.

Контрольная точка базы данных

Проверяет содержимое базы данных, к которой обращается тестируемое приложение.

Контрольная точка XML

Вставка CheckPoint

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

Ниже приведено меню контрольных точек, когда пользователь НЕ находится в режиме записи.

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

Ниже приведено меню контрольной точки, когда пользователь находится в режиме записи.

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

пример

Контрольные точки добавляются для тестируемого приложения — «http://easycalculation.com/»

Просмотр свойств контрольной точки

После вставки, если тестировщик хочет изменить значения, мы можем сделать это, щелкнув правой кнопкой мыши на ключевом слове «контрольная точка» скрипта и перейдя к «Свойствам контрольной точки», как показано ниже —

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

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

qtp что это такое. Смотреть фото qtp что это такое. Смотреть картинку qtp что это такое. Картинка про qtp что это такое. Фото qtp что это такое

QTP — Синхронизация

Точка синхронизации — это временной интерфейс между Инструментом и Тестируемым приложением. Точка синхронизации — это функция для указания времени задержки между двумя шагами тестового сценария.

Например, нажатие на ссылку может загрузить страницу за 1 секунду, иногда 5 секунд, или даже может потребоваться 10 секунд для ее полной загрузки. Это зависит от различных факторов, таких как время отклика сервера приложений, пропускная способность сети и возможности клиентской системы.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *