SlideShare a Scribd company logo
Фокус на тестирование
Paralect QA BarCamp
Uladzimir Kryvenka
Май 2013
Обо мне
Владимир Кривенко
Инструменты: Selenium, Coded UI Test
Один из основателей:Пишу блог :
В тестировании 6+ лет
Автор портала:
Автоматизацией занимаюсь 3+ года
Это я:
Работаю:
Head of QA в Paralect
Опыт:
План
• Введение в MongoDB
• Особенности при тестировании
• Рассмотрим в деле
• Инструменты
Определение
Документо-ориентированная база данных с
открытым исходным кодом, не требующая
описания схемы таблиц. Написана на языке
C++. Название происходит «humongous —
огромный. Управляет наборами JSON-
подобных документов, хранимых в двоичном
виде в формате BSON.
Основные возможности
• Документо-ориентированное хранилище, нет схем
данных
• Гибкий язык (JSON) для формирования запросов
• Полная поддержка индексов
• Профилирование запросов
• Эффективное хранение данных больших объемов
• Репликация и поддержка отказоустойчивости
• Профилирование, административный интерфейс,
серверные функции, Map/Reduce
Термины MongoDB vs РСУБД
• База данных – База данных
• Таблица – Коллекция
• Индекс – Индекс
• Строка – Документ
• Join – Embedding and Linking
• Primary key -_id field
• Group by – Aggregation
Характерные особенности
• Денормализация данных
• Избыточность данных
• Распределение данных
• Не используется SQL
• Контроль данных из приложения, а не из
базы
Типы данных
• String
• Integer
• Double
• Byte array
• Boolean
• Null
• BSON Object
Сервер & Консоль
• mongod.exe – сервер базы данных
(основное приложение)
> mongod --dbpath=”D:db1” --port=27017
• mongo.exe – консоль управления базой
данных
> mongo --port=27017 admin
Авторизация в MongoDB
> db.addUser(‘user’, ‘pass’)
{“n” : 0, “connectionId” : 16, “err” “ null, “ok” : 1}
{ "user" : "user",
"readOnly" : false,
"pwd" : "e0c4a7b97d4db31f5014e9694e567d6b",
"_id" : ObjectId("51a32a72c9aa9a049d203c37")
}
> mongo --port=27017 --username=user --password= pass test
Пример коллекции
{
"_id" : "b8b589-8c96-4f1e-ab51-0aa7946b4c",
"FirstName" : "test",
"LastName" : "test",
"MiddleName" : null,
"UserName" : "ttest151",
"Email" : "aasdf@asdasd.aaa",
"Notes" : null,
"IsArchived" : false,
}
Примеры. Вставка данных
SQL:
INSERT INTO db1.students SET fname = ‘Johnny’;
MongoDB:
> db.students.insert({fname:” Johnny”})
Примеры. Запросы
SQL:
SELECT * FROM students
MongoDB:
> db.students.find()
SQL:
SELECT * FROM students WHERE SchoolId =’5179b17c’
MongoDB:
> db.students.find({"SchoolId":"51710cb990bd7515ec79b17c"})
Примеры. Запросы
SQL:
SELECT id, FullName FROM students WHERE SchoolId = 517115ec79b17c’
MongoDB:
> db.students.find({"SchoolId":"517115ec79b17c"},{_id:1, FullName:2 })
Операторы условий
• $gt — больше, чем
• $lt — меньше, чем
• $gte — больше, чем или равно
• $lte — меньше, чем или равно
> db.students.find({Age:{$lte:18}})
> db.students.find({Age:{$gt:18}})
Операторы
• $exists – используется для проверки наличия или
отсутствия поля.
• $type – вернет все поля с заданным типом.
• $where – передача JS
• $in & $nin - выборка по конкретным значениям
> db.students.find({referrals: {$exists: false}})
> db.teachers.find({ student_in_class: { $in : [20, 30, 40]}});
Логические операторы
• $or
• $and
• $not
• $nor
> db.students.find({$and:[{"SchoolId":"51710c17c"},{"FName": "Dave Gan" }]})
> db.сlasses.find( { total: { $not: { $gt: 5 } } } )
Sort, limit, skip
> db.students.find().sort({Age: 1})
> db.students.find().sort({FullName: -1, Age: 1})
> db.students.find().limit(3);
> db.students.find({"Age":{$gt:9}} ).limit(5).skip(5).sort({"FName":1} )
Пример. Обновление
SQL:
UPDATE students SET fname = “Johnny” WHERE lname = “Jacobs”
MongoDB:
> db.students.update({fname:” Johnny”}, {$set:{lname:” Jacobs”}})
Удаление данных
SQL:
DELETE FROM students WHERE ID=1
DELETE FROM students WHERE fname=”Johnny”
MongoDB:
> db.students.remove ({_id:ObjectID(“1”)})
> db.students.remove({fname:”Johnny”})
Инструменты управления
• Robomongo
• MongoVUE
• Opricot
• Database Master
• MongoVision
• …
Robomongo
Robomongo
• Shell-centric
• Использует официальный MongoDB движок
• Mac, Win, Linux
• Tree mode, text mode
• Бесплатный
MongoVUE
MongoVUE
• Лог shell – команд
• «ключ:значение» для поиска
• Ограниченная бесплатная версия
Примеры поиска:
{"Title" : "test"}
{"username": new RegExp("^a")} или то же самое
{"Title":/se/}
MongoDB. Фокус на тестирование
А теперь ваши
-ы
Пообщаемся? 
http://bugscatcher.net/
u.kryvenka@gmail.com
u.kryvenka

More Related Content

PPTX
Introduction to es6
NexThoughts Technologies
 
PDF
9 klas algebra_prokopenko_2017
Daniel Movchan
 
DOCX
Geometri analitik-datar1
Sriwijaya University
 
PPTX
자바 성능 강의
Terry Cho
 
PPT
JUnit 4
Sunil OS
 
PPTX
6.4 inverse matrices
math260
 
PPT
interpolasi
Defitio Pratama
 
Introduction to es6
NexThoughts Technologies
 
9 klas algebra_prokopenko_2017
Daniel Movchan
 
Geometri analitik-datar1
Sriwijaya University
 
자바 성능 강의
Terry Cho
 
JUnit 4
Sunil OS
 
6.4 inverse matrices
math260
 
interpolasi
Defitio Pratama
 

What's hot (20)

PDF
SPM PHYSICS FORM 5 radioactivity
Max Wong
 
PPT
Limit2
guest3aa9cb21
 
PDF
Materi program linear
Achmad Shokhib
 
PPT
危機處理
guest0b2a87
 
PPTX
Turunan Fungsi Trigonometri
Asrifida Juwita Tanjung
 
PDF
Unit testing with JUnit
Thomas Zimmermann
 
PPT
Куля і сфера переріз кулі площиною. дотична площина до сфери
Людмила Яхно
 
PDF
Chat Room System using Java Swing
Tejas Garodia
 
DOC
Урок №7 Розкладання чисел на прості множники
sveta7940
 
PPT
функція у=коріньх
Гергель Ольга
 
PPT
Trigonometri 3-(bentuk cos x + sin x)
Dian Fery Irawan
 
PPTX
백엔드 서버 개발과 코틀린의 조합
Daeseok Kim
 
PPT
Resource Bundle
Sunil OS
 
PDF
1
booksss5
 
PPT
Функція. Область визначення та область значення. Способи задання функції
NataliaGrychko
 
PDF
Tutorial geogebra
Khaireni Puspaningtyas
 
PDF
Использование GNU OCTAVE для инженерных и математических расчетов
Транслируем.бел
 
PPTX
persamaan dan pertidaksamaan linear satu variabel yang memuat nilai mutlak (p...
Franxisca Kurniawati
 
PPTX
Refleksi transformasi geometri
Dadang Arifin
 
PPTX
MATERI TRANSFORMASI GEOMETRI KELAS 11 SEMESTER 1
EkaNurul16
 
SPM PHYSICS FORM 5 radioactivity
Max Wong
 
Materi program linear
Achmad Shokhib
 
危機處理
guest0b2a87
 
Turunan Fungsi Trigonometri
Asrifida Juwita Tanjung
 
Unit testing with JUnit
Thomas Zimmermann
 
Куля і сфера переріз кулі площиною. дотична площина до сфери
Людмила Яхно
 
Chat Room System using Java Swing
Tejas Garodia
 
Урок №7 Розкладання чисел на прості множники
sveta7940
 
функція у=коріньх
Гергель Ольга
 
Trigonometri 3-(bentuk cos x + sin x)
Dian Fery Irawan
 
백엔드 서버 개발과 코틀린의 조합
Daeseok Kim
 
Resource Bundle
Sunil OS
 
Функція. Область визначення та область значення. Способи задання функції
NataliaGrychko
 
Tutorial geogebra
Khaireni Puspaningtyas
 
Использование GNU OCTAVE для инженерных и математических расчетов
Транслируем.бел
 
persamaan dan pertidaksamaan linear satu variabel yang memuat nilai mutlak (p...
Franxisca Kurniawati
 
Refleksi transformasi geometri
Dadang Arifin
 
MATERI TRANSFORMASI GEOMETRI KELAS 11 SEMESTER 1
EkaNurul16
 
Ad

Similar to MongoDB. Фокус на тестирование (20)

PPT
MongoDB basics in Russian
Oleg Kachan
 
PDF
TDD или как я стараюсь писать код
MoscowDjango
 
PDF
Моделирование для NoSQL БД
Andrew Sovtsov
 
PPTX
Основы MongoDB + NodeJS
Alexander Konovalov
 
PPTX
Industrial Programming Java - Lection Pack 03 - Relational Databases - Lavren...
Fedor Lavrentyev
 
PPTX
Python Meetup
iQSpace
 
PDF
TDD: когда нужно и, самое главное, когда не нужно / Павел Калашников (SimbirS...
Ontico
 
PDF
Nosql and Mongodb
Eduard Antsupov
 
PDF
Компонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
MoscowJS
 
PDF
09 - Web-технологии. MVC фреймворки
Roman Brovko
 
PDF
Дмитрий Долгов
CodeFest
 
PPTX
ClickHouse как решение для бизнес аналитики. Дмитрий Кузьмин
HOWWEDOIT
 
PPTX
Повышение качества тестов и автоматическая валидация REST API документации
CEE-SEC(R)
 
PDF
FrontTalks: Роман Дворнов (Ostrovok.ru), «Basis.js: почему я не бросил разраб...
Yandex
 
PDF
Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)
Roman Dvornov
 
PPTX
Migrating from PHP/MySQL to Redis/Lua, my talk on High load++ (Russian)
Dmitry Degtyarev
 
PDF
Web осень 2013 лекция 6
Technopark
 
PPTX
MongoDB - About Performance Optimization, Ivan Griga - Smart Gamma
Evgeniy Kuzmin
 
PPTX
Что, зачем и каким образом следует проверять и тестировать перед запуском сай...
Alexey Kostin
 
PDF
2014.12.23 Николай Самохвалов, Ещё раз о JSON(b) в PostgreSQL 9.4
Nikolay Samokhvalov
 
MongoDB basics in Russian
Oleg Kachan
 
TDD или как я стараюсь писать код
MoscowDjango
 
Моделирование для NoSQL БД
Andrew Sovtsov
 
Основы MongoDB + NodeJS
Alexander Konovalov
 
Industrial Programming Java - Lection Pack 03 - Relational Databases - Lavren...
Fedor Lavrentyev
 
Python Meetup
iQSpace
 
TDD: когда нужно и, самое главное, когда не нужно / Павел Калашников (SimbirS...
Ontico
 
Nosql and Mongodb
Eduard Antsupov
 
Компонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
MoscowJS
 
09 - Web-технологии. MVC фреймворки
Roman Brovko
 
Дмитрий Долгов
CodeFest
 
ClickHouse как решение для бизнес аналитики. Дмитрий Кузьмин
HOWWEDOIT
 
Повышение качества тестов и автоматическая валидация REST API документации
CEE-SEC(R)
 
FrontTalks: Роман Дворнов (Ostrovok.ru), «Basis.js: почему я не бросил разраб...
Yandex
 
Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)
Roman Dvornov
 
Migrating from PHP/MySQL to Redis/Lua, my talk on High load++ (Russian)
Dmitry Degtyarev
 
Web осень 2013 лекция 6
Technopark
 
MongoDB - About Performance Optimization, Ivan Griga - Smart Gamma
Evgeniy Kuzmin
 
Что, зачем и каким образом следует проверять и тестировать перед запуском сай...
Alexey Kostin
 
2014.12.23 Николай Самохвалов, Ещё раз о JSON(b) в PostgreSQL 9.4
Nikolay Samokhvalov
 
Ad

More from Uladzimir Kryvenka (8)

PPTX
Особенности тестирования NoSql приложений
Uladzimir Kryvenka
 
PPTX
Эмоциональный интеллект: теория и практика
Uladzimir Kryvenka
 
PPT
Тестирование требований и документации
Uladzimir Kryvenka
 
PPT
CQRS. Event Sourcing. Особенности тестирования
Uladzimir Kryvenka
 
PPT
NoSql. Фокус на тестирование
Uladzimir Kryvenka
 
PPT
Continuous Integration для тестировщиков
Uladzimir Kryvenka
 
PPTX
Викторина для тестировщиков
Uladzimir Kryvenka
 
PPT
Руководство по приготовлению бутербродов из Selenium
Uladzimir Kryvenka
 
Особенности тестирования NoSql приложений
Uladzimir Kryvenka
 
Эмоциональный интеллект: теория и практика
Uladzimir Kryvenka
 
Тестирование требований и документации
Uladzimir Kryvenka
 
CQRS. Event Sourcing. Особенности тестирования
Uladzimir Kryvenka
 
NoSql. Фокус на тестирование
Uladzimir Kryvenka
 
Continuous Integration для тестировщиков
Uladzimir Kryvenka
 
Викторина для тестировщиков
Uladzimir Kryvenka
 
Руководство по приготовлению бутербродов из Selenium
Uladzimir Kryvenka
 

MongoDB. Фокус на тестирование